Mendebug Program

| | Comments (1)

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

Categories

1 Comments

rhin said:

CCAR singkatan dari apa Jo? *nyengir*

Leave a comment

About this Entry

This page contains a single entry by Yohanes Nugroho published on November 12, 2003 5:22 PM.

Mencari Jawaban was the previous entry in this blog.

Life goes on is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Powered by Movable Type 4.0