Mendebug Program
Mendebug program itu salah satu pekerjaan paling fun, tapi juga paling membosankan. Pekerjaan yang menyebalkan, tapi bisa menimbulkan kegembiraan. Kebanyakan programmer gampang menyerah waktu programnya tidak berjalan.
Jika kebetulan kamu nggak lagi sial, maka kunci untuk mencari kesalahan dalam program biasanya cuma satu: asersi. Kamu lagi sial kalo ternyata kesalahan bukan berada di program kamu, tapi di compiler, atau di library, atau di OS, atau di bagian program yg dibuat oleh temen kamu.
Ketika membuat program
Buat komentar. Kalo rajin, komentarnya yang lengkap. Kalo nggak rajin, komentar ditulis seperlunya, di bagian yang penting. Kalo bisa waktu bikin program jangan dites setelah sudah jadi. Begitu selesai satu modul, teslah modul tersebut. Buat yang rajin, bisa pake unit testing, buat yang gak rajin, test aja sebisanya yang kira2 dianggap penting.Tulis asersi dalam program. Asersi itu suatu statement mengenai suatu kondisi di suatu titik program. Misalnya: dititik ini, nilai a nggak boleh nol, dalam bentuk komentar atau kalo di C, include assert.h, lalu tulis:
assert(a!=0);
Di Java (dgn JDK >=1.4) ada juga fitur asersi. Di bahasa yang kamu pake mungkin juga ada, coba aja baca manualnya. Nanti ketika program berjalan dan asersi itu gak dipenuhi, maka program akan berhenti dengan pesan bahwa asersi tidak dipenuhi.
Mengcompile/Menjalankan program
Untuk program yang perlu dikompilasi, gunakan warning level tertinggi, gunakan juga tools pembantu seperti lint (sebuah program buat mengecek segala macam konstruksi program yang error pada program yang ditulis menggunakan bahasa C) atau yg semacam itu untuk bahasa yang kamu pakai.Untuk PHP, atau bahasa lain yang diinterpretasi, gunakan opsi untuk warning level tertinggi (misalnya di PHP pakailah error_reporting(E_ALL) ). Jika ada warning di waktu kompilasi atau pada runtime, jangan diabaikan, perbaiki segera.
Ketika programnya salah
Jika output program tidak seperti yg diharapkan, lakukan pencetakan di titik-titik tertentu. Ini adalah bentuk debuging sederhana. Kamu juga bisa memakai syslog di Unix atau log4j (atau log4XXX tergantung bahasa Anda) untuk melakukan logging. Oh iya, log4j itu library dari apache yang gunanya buat logging.Biasanya dari log bisa diketahui kesalahan program, tapi jika tidak bisa juga, gunakan debugger. Ingat, jangan membabi buta dalam menggunakan debugger, tentukan dulu titik yang dianggap paling mungkin salah. Khusus untuk pemrograman C di Linux/Unix, gunakan Valgrind, memori debugger yang sangat bagus.
Jika semua sudah dilakukan, dan masih ada kesalahan, maka kemungkinan kesalahan ada di logika program. Pikirkan kembali algoritma yang dipakai. Jika masih salah juga, pulang, tidur, makan, terus coba kembali lagi. Kalo nggak berhasil juga, ditulis ulang aja programnya :)
Tips terakhir
Kalo mrogram, jangan mikir ke mana-mana, ntar programnya salah. Lakukan pekerjaan dengan sepenuh hati :P.PS:
Inilah metode coding yang dipakai olehku di CCAR ITB:
- Buat program sesuai request
- Nevermind testing it
- Wait for complain
- Fix It, but don't test it
- Wait for another complain, fix the program repeat until no more complain

CCAR singkatan dari apa Jo? *nyengir*