Kesalahan Pada Pemrograman
“ERROR” adalah sebuah kata yang terdengar cukup menakutkan di dunia pemrograman. Programer adalah orang yang akan dilirik dengan alis terangkat jika terjadi kesalahan pada sebuah aplikasi pada saat digunakan. Untuk menghindari hal tersebut, Anda perlu mengenal dan memperbaiki semua jenis kesalahan pada program.
Hampir tidak ada aplikasi yang berjalan
sempurna sebelum melewati berbagai rentetan kesalahan, semakin besar
aplikasi yang dibuat, semakin banyak kesalahan yang dapat timbul. Sukar
dibayangkan jika Anda dapat mengetikkan ratusan baris kode program tanpa
ditemukan kesalahan pada saat dijalankan atau dikompilasi untuk pertama
kalinya.
Syntax Error
Kesalahan yang paling sering ditemukan
pada saat membuat program adalah kesalahan sintaks atau Syntax Error,
dimana perintah atau statemen yang diketikkan menyalahi aturan
pengkodean yang dimiliki oleh bahasa pemrograman yang Anda gunakan.
Sebuah bahasa pemrograman memiliki aturan pengkodean tersendiri yang
harus dipatuhi, sebagai contoh pada bahasa pemrograman Pascal/Delphi,
setiap statemen diwajibkan diakhiri dengan tanda titik koma (;). Jika
Anda tidak menuliskannya, program akan menampilkan pesan Syntax Error
pada saat dijalankan.
Setiap bahasa pemrograman memiliki
keyword, yaitu perintah-perintah baku yang digunakan. Sebagai contoh,
keyword yang umum adalah kondisi if, perulangan for atau while,
penulisan fungsi dan lambang aritmatika seperti modulus, pangkat, dan
lain-lain. Kesalahan penulisan keyword juga merupakan Syntax Error.
Kesalahan penulisan parameter pada sebuah
function/procedure juga termasuk dalam kategori Syntax Error, misalnya
jika function yang Anda gunakan memerlukan parameter sementara Anda lupa
menuliskan parameter tersebut.
Syntax Error merupakan jenis kesalahan
yang paling sering ditemui, tetapi juga pada umumnya paling mudah untuk
ditanggulangi. Syntax Error cukup mudah diketahui dan diperbaiki jika
bahasa pemrograman yang Anda gunakan menunjukkan baris kesalahan dengan
tepat, dan menampilkan pesan kesalahan yang benar.
Pada beberapa bahasa pemrograman,
disediakan fasilitas Auto Syntax Check, dimana muncul sebuah pesan
peringatan ketika Anda mengetikkan sintaks yang salah.
Run-time Error
Jenis kesalahan Run-time Error terjadi
ketika kode program melakukan sesuatu yang tidak dimungkinkan. Contohnya
pada saat sebuah aplikasi mencoba mengakses file yang tidak ada, atau
terjadi kesalahan alokasi memory.
Terkadang Run-time Error terjadi karena
berbagai aspek dan tidak selalu karena kesalahan pemrograman, sebagai
contoh jika Anda sengaja menghapus beberapa file penting yang digunakan
oleh suatu aplikasi, maka terdapat kemungkinan akan terjadi Run-time
Error pada saat aplikasi tersebut dijalankan.
Walaupun demikian, pencegahan semaksimal
mungkin dengan memberikan validasi dan pesan yang user-friendly saat
terjadi kesalahan pada aplikasi, akan sangat membantu untuk mengetahui
mengapa aplikasi tidak berjalan dengan semestinya.
Logical Error
Logical Error merupakan jenis kesalahan
yang cukup sulit untuk ditemukan penyebabnya. Karena aplikasi yang
mengandung Logical Error berjalan tanpa pesan kesalahan, tetapi
mengeluarkan hasil yang tidak diharapkan, misalnya jika aplikasi Anda
menghasilkan perhitungan yang salah.
Logical Error baru dapat diketahui
setelah Anda melakukan testing dan meninjau hasilnya. Logical Error
dapat diperbaiki dengan memeriksa alur program dan nilai variabel yang
dihasilkan.
Programer = Pencari Bug?
Sebuah error pada aplikasi disebut dengan
istilah bug, atau dalam Bahasa Inggris berarti kutu atau binatang
kecil. Konon istilah bug muncul karena ditemukannya binatang kecil yang
menyebabkan kerusakan pada sebuah komputer tabung pada tahun 1945.
Bug aplikasi terdapat pada kode program, yang dapat mengganggu
kenyamanan pengguna aplikasi Anda. Pada tingkat tertentu, keberadaan bug
cukup memberikan efek yang besar.
Anda mungkin belum melupakan saat dimana orang ramai membicarakan
“Y2K Bug” atau bug tahun 2000, atau munculnya istilah “Blue screen of
Death” pada sistem operasi Windows, atau “Kernel Panic” pada sistem
operasi Linux, semua contoh tersebut menunjukkan sebuah bug serius dapat
mengakibatkan dampak negatif yang cukup besar.
Proses mencari penyebab bug disebut dengan debug, yang juga merupakan
tugas programer setelah menerima laporan bug. Walaupun demikian, jangan
menjadikan pekerjaan Anda sebagai pencari bug, Untuk itu hanya ada satu
cara, minimalkan bug pada aplikasi yang Anda buat.
Apa yang harus Anda lakukan untuk
menghindari jenis-jenis kesalahan yang telah disebutkan di atas? Bisa
jadi tidak ada program yang sempurna, tetapi selalu ada cara untuk
mengatasi atau menghindari kesalahan semaksimal mungkin.
Selalu Deklarasikan Variabel
Syntax Error, bahkan Logical Error,
mungkin terjadi jika terdapat penulisan variabel yang salah. Sebaiknya
Anda mendeklarasikan variabel yang Anda gunakan walaupun bisa jadi
bahasa pemrograman yang Anda gunakan mengijinkan untuk tidak melakukan
deklarasi variabel.
Visual Basic merupakan salah satu bahasa pemrograman yang mengijinkan
penggunaan variabel tanpa deklarasi, walaupun demikian disarankan Anda
menggunakan deklarasi variabel. Hal tersebut akan memperkecil kesalahan
penulisan variabel.
Masih dengan contoh Visual Basic, Anda
dapat menambahkan perintah Option Explicit pada program untuk mencegah
kesalahan tulis pada variabel, jika terdapat variabel yang belum
dideklarasikan, maka Visual Basic akan menampilkan pesan kesalahan.
Anda sebaiknya memiliki suatu skema
standard untuk pemberian nama variabel dan konsisten dengan
penggunaannya. Contohnya berikan nama variabel diawali dengan huruf s
jika bertipe data string, misalnya sResult, sTemp, dan lain-lain.
Pada Visual Basic maupun beberapa bahasa
pemrograman lain yang berorientasi object, kita dapat mendeklarasikan
variabel dengan tipe data object. Terdapat berbagai jenis macam object
yang dikenal, dan sebaiknya Anda menuliskannya dengan lengkap object
yang dimaksud. Misalnya object ListBox, Label, dan lain-lain.
Gunakan Variabel Lokal
Sangat disarankan agar Anda selalu
menggunakan variabel lokal. Salah satu manfaatnya adalah jika terjadi
kesalahan program (terutama Logical Error), maka penyebab kesalahan dan
solusinya akan lebih mudah ditemukan. Hal ini dikarenakan variabel lokal
memiliki ruang lingkup penggunaan yang lebih kecil dibandingkan
variabel global, yang dapat diakses oleh procedure yang mana saja.
Penggunaan variabel global, sering menimbulkan kerancuan dan memperbesar kemungkinan terjadinya kesalahan tanpa disadari.
Kenali Jenis Bug
Bug yang timbul pada sebuah aplikasi
memiliki karateristik. Karena itu selalu baca dan perhatikan baik-baik
pesan kesalahan yang timbul. Beberapa jenis bug berdasarkan
karakteristiknya adalah sebagai berikut:
Jika pada sebuah pembagian, pembagi bernilai 0, maka program akan terhenti dan mengalami error.
2. Infinite Loop.
Pengertian loop adalah perulangan, yang sering digunakan dalam teknik
pemrograman. Penggunaan loop yang salah dapat mengakibatkan program
menjalankan sebuah procedure tanpa akhir.
3. Arithmatic overflow or Underflow.
Overflow terjadi saat sebuah perhitungan menghasilkan nilai yang lebih besar daripada nilai yang dapat ditampung oleh media/variabel penyimpan. Sementara underflow merupakan kebalikannya. Pada perhitungan aritmatik, hal ini sering ditemukan dan menjadi masalah.
Overflow terjadi saat sebuah perhitungan menghasilkan nilai yang lebih besar daripada nilai yang dapat ditampung oleh media/variabel penyimpan. Sementara underflow merupakan kebalikannya. Pada perhitungan aritmatik, hal ini sering ditemukan dan menjadi masalah.
4. Exceeding Array Bounds.
Array merupakan variabel berdimensi yang memiliki indeks. Saat program mengakses indeks diluar array yang ditentukan, maka akan mengakibatkan error.
Array merupakan variabel berdimensi yang memiliki indeks. Saat program mengakses indeks diluar array yang ditentukan, maka akan mengakibatkan error.
5. Access Violation.
Hal yang terjadi saat sebuah proses mencoba melewati batas yang diijinkan oleh sistem. Misalnya menulis sebuah nilai pada alamat memory, segmen, atau media yang diproteksi.
Hal yang terjadi saat sebuah proses mencoba melewati batas yang diijinkan oleh sistem. Misalnya menulis sebuah nilai pada alamat memory, segmen, atau media yang diproteksi.
6. Memory Leak.
Penggunaan memory yang tidak diinginkan, dapat terjadi karena program gagal melepaskan memory yang sudah tidak digunakan.
Penggunaan memory yang tidak diinginkan, dapat terjadi karena program gagal melepaskan memory yang sudah tidak digunakan.
7. Stack Overflow or Underflow.
Stack merupakan struktur data dengan prinsip LIFO (Last In First Out), pada program Anda dapat mengimplementasikan logika stack untuk suatu tujuan. Tetapi jika stack melebihi atau dibawah nilai yang diijinkan oleh program, maka akan timbul kesalahan Stack Overflow/Underflow.
Stack merupakan struktur data dengan prinsip LIFO (Last In First Out), pada program Anda dapat mengimplementasikan logika stack untuk suatu tujuan. Tetapi jika stack melebihi atau dibawah nilai yang diijinkan oleh program, maka akan timbul kesalahan Stack Overflow/Underflow.
8. Buffer Overflow.
Buffer merupakan tempat penyimpanan sementara dalam teknik pemrograman. Buffer Overflow terjadi jika Anda menyimpan terlalu banyak data yang tidak dapat ditampung oleh buffer yang disediakan.
Buffer merupakan tempat penyimpanan sementara dalam teknik pemrograman. Buffer Overflow terjadi jika Anda menyimpan terlalu banyak data yang tidak dapat ditampung oleh buffer yang disediakan.
9. Deadlock.
Merupakan suatu kondisi dimana dua atau lebih proses saling menunggu satu sama lain untuk menyelesaikan prosesnya, dan tidak satupun dari proses tersebut yang selesai. Problem deadlock sering ditemukan pada multiprocessing.
Merupakan suatu kondisi dimana dua atau lebih proses saling menunggu satu sama lain untuk menyelesaikan prosesnya, dan tidak satupun dari proses tersebut yang selesai. Problem deadlock sering ditemukan pada multiprocessing.
10. Off By One Error.
Merupakan istilah untuk menggambarkan perulangan yang terlalu banyak atau terlalu sedikit. Misalnya perulangan yang dikehendaki adalah lima kali, tetapi kenyataan yang terjadi aplikasi mengulang proses tersebut sebanyak empat kali atau enam kali. Kesalahan ini pada umumnya terjadi karena kesalahan logika penulisan kode pada proses perulangan.
Merupakan istilah untuk menggambarkan perulangan yang terlalu banyak atau terlalu sedikit. Misalnya perulangan yang dikehendaki adalah lima kali, tetapi kenyataan yang terjadi aplikasi mengulang proses tersebut sebanyak empat kali atau enam kali. Kesalahan ini pada umumnya terjadi karena kesalahan logika penulisan kode pada proses perulangan.
Berikan Komentar
Jangan kuatir kode program Anda dipenuhi oleh komentar. Karena akan
lebih mudah bagi Anda untuk mempelajari lagi kode-kode program yang
pernah Anda buat dengan membaca komentar.
Dengan mengerti kode program dengan baik, maka akan menjadi lebih
mudah jika pada suatu saat terdapat Logical Error yang membutuhkan
analisa ulang kode program.
Gunakan Log File
Informasi proses yang dijalankan aplikasi dan tersimpan pada sebuah
log file (dapat berupa file text atau table) dapat menjadi informasi
yang sangat berguna untuk menganalisa bug yang mungkin terjadi. Terutama
informasi yang menjelaskan apa yang terjadi sebelum, selama, dan
sesudah bug terjadi.
Untuk menghindari log file yang terlalu besar, Anda dapat memisahkan
log file terbagi menjadi log untuk komponen-komponen utama pada
aplikasi. Jangan lupa untuk selalu mencatat waktu (timestamp) pada
setiap record. Anda dapat menghapus atau melakukan backup pada log file
secara periodik.
Validasi
Tidak semua orang mematuhi aturan yang Anda terapkan pada aplikasi,
karena itu Anda harus melakukan validasi untuk data yang dimasukkan oleh
pengguna. Misalnya pada suatu form pendaftaran, Anda sebaiknya
melakukan validasi untuk input yang tidak boleh kosong
(mandatory/required fields), melakukan pembatasan karakter, dan validasi
huruf/angka yang diperlukan.
Mengenal Environment
Saat Anda mengetikkan kode program, menjalankannya, atau melakukan
debug pada program, Anda berada pada environment yang berbeda-beda.
Terdapat 3 environment yang umum dikenal, yaitu:
1. Design Time.
Aplikasi yang Anda kerjakan dilakukan pada saat design time.
Aplikasi yang Anda kerjakan dilakukan pada saat design time.
2. Run Time.
Saat menjalankan aplikasi.
Saat menjalankan aplikasi.
Environment saat Anda melakukan proses debug atau melihat kode program saat program tersebut dijalankan, Anda dapat melihat alur program dan perubahan nilai pada variabel, sehingga Anda dapat menelusuri kesalahan yang terjadi. Break Mode terletak diantara Design Time dan Run Time
Tidak ada komentar:
Posting Komentar