Istilah debugging dalam programming, artinya adalah mencari kesalahan algoritma dalam program yang sedang dibuat. Lho… bagaimana kita tahu ada algoritma yang salah? Algoritma yang salah ini akan mengakibatkan hasil atau output yang salah atau tidak seperti yang diharapkan. Istilah kesalahan ini sering disebut ‘algoritmic error’.
Contoh sederhana dari algoritmic error ini adalah, misalkan kita akan membuat program untuk menjumlahkan dua buah bilangan bulat, katakanlah A dan B. Dan program yang dibuat adalah sebagai berikut (dalam Pascal):
01.
program
jumlahkan;
02.
var
a, b, hasil :
integer
;
03.
begin
04.
write
(
'Masukkan nilai A : '
);
05.
readln(a);
06.
write
(
'Masukkan nilai B : '
);
07.
readln(b);
08.
hasil := a - b;
09.
write
(
'Hasil penjumlahannya adalah : '
,hasil);
10.
end
.
Contoh sederhana lain, tapi hal ini tidak ada kaitannya dengan program, yaitu tentang algoritma merebus mie instan wah jadi laper nih…
Misalkan, diberikan algoritma untuk merebus mie instan sbb:
- Buka bungkus mie
- Siapkan panci dan taruh panci di atas kompor
- Masukkan mie ke dalam panci
- Nyalakan api kompor kira-kira 3 menit
- Masukkan air mentah 2 gelas
- Matikan kompor
- Taruh mie ke dalam mangkuk
So… saya harap Anda sudah tahu maksud algoritmic error. Sekarang, bila Anda mendapatkan program yang Anda buat mengalami algoritmic error, apa yang harus dilakukan? Ya… langkah satu-satunya adalah mencari letak proses yang salah dalam algoritmanya. Nah… proses pencarian ini dinamakan debugging.
Mengapa disebut debugging? Konon istilah tersebut muncul karena si penemu kata ini pada waktu itu juga sedang mencari kesalahan program, namun saking jengkelnya karena gak ketemu-ketemu, trus dia menyebutnya si ‘kutu’ atau ‘bug’. Kemudian istilah mencari si kutu program ini, sering disebut ‘debugging’.
Kalau kita mendapati syntax error, maka dapat dengan mudah dan cepat kita akan menemukannya. Hal ini karena biasanya akan muncul warning adanya penulisan yang salah dan biasanya akan disertai dengan nomor baris yang salah tersebut. Nah… kalau algoritmic error, proses pencariannya tidak mudah.
So… bagi para mahasiswaku atau pengunjung setia blog ini, bila program Anda dicompile tidak ada error, jangan bersenang-senang dahulu, karena tujuan proses compile itu hanya mencari ada tidaknya syntax error. Siapa tahu program Anda menyimpan si kutu
OK… kita kembali ke laptop, eh salah… kembali ke teknik debugging
Trus… sekarang bagaimana langkah debugging, bila program sudah jadi namun hasilnya salah? Ya… untuk proses ini, Anda harus mengeceknya step by step sesuai alur algoritma program yang Anda buat. Bagaimana cara mengeceknya? Kalau saya pribadi, atau yang sering saya lakukan adalah menampilkan output di setiap proses. Sedangkan proses setelah bagian yang sedang saya cek tersebut, saya nonaktifkan atau saya buat menjadi komentar.
Perhatikan contoh berikut ini. Contoh ini baru saja saya gunakan untuk menjelaskan teknik debugging ketika perkuliahan.
01.
program
cariKombinasi;
02.
var
n, m :
integer
;
03.
kombinasi :
real
;
04.
05.
function
faktorial(x :
integer
) :
real
;
06.
var
i :
integer
;
07.
hasil :
real
;
08.
begin
09.
hasil :=
1
;
10.
for
i:=
1
to
x
do
11.
begin
12.
hasil := hasil * i;
13.
end
;
14.
faktorial := hasil;
15.
end
;
16.
17.
begin
18.
n :=
3
;
19.
m :=
2
;
20.
kombinasi := faktorial(n)/faktorial(n-m)*faktorial(m);
21.
write
(kombinasi);
22.
end
.
Lantas… bagaimana mengetahui letak kesalahannya? Ya… untuk melakukan hal ini, kita harus mengecek terlebih dahulu apakah function faktorial() sudah berfungsi dengan baik atau belum. Untuk mengeceknya, ya… kita tambahkan saja perintah write(faktorial(n));
1.
begin
2.
n :=
3
;
3.
m :=
2
;
4.
write
(faktorial(n));
5.
{ kombinasi := faktorial(n)/faktorial(n-m)*faktorial(m);
6.
write(kombinasi);}
7.
end
.
Selanjutnya akan kita cek untuk menghitung kombinasinya sendiri atau pada baris
1.
kombinasi := faktorial(n)/faktorial(n-m)*faktorial(m);
1.
kombinasi := faktorial(n)/(faktorial(n-m)*faktorial(m));
1.
begin
2.
n :=
3
;
3.
m :=
2
;
4.
kombinasi := faktorial(n)/(faktorial(n-m)*faktorial(m));
5.
write
(kombinasi);
6.
end
.
Sehingga kesimpulan dari teknik debug ini adalah ceklah output untuk setiap langkah proses dengan menampilkannya ke layar. Untuk menghindari interfensi dari baris program yang lain, hendaknya baris program di bawahnya atau selanjutnya, dibuat komentar (jangan dihapus) terlebih dahulu. Teknik ini bisa diterapkan untuk bahasa pemrograman yang lain.
Tidak ada komentar:
Posting Komentar
ada saran ??