Debugging adalah sebuah metode
yang dilakukan oleh para pemrogram
dan pengembang perangkat lunak
untuk mencari dan mengurangi bug,
atau kerusakan di dalam
sebuah program
komputer atau perangkat
keras sehingga perangkat tersebut
bekerja sesuai dengan harapan.
Memperbaiki error yang ditemukan
pada saat testing (yang sukses).
Kaidah dasar sebelum debug:
Apakah penyebab bug dihasilkan kembali
oleh bagian program yang lain?
Apakah bug selanjutnya yang mungkin
muncul jika bug diperbaiki?
Apa yang bisa dilakukan untuk mencegah
bug terjadi untuk pertama kalinya?
Kenapa dinamakan bug?
Tahun 1945 sewaktu
ukuran komputer masih sebesar kamar,
pihak militer Amerika Serikat menggunakan
komputer yang bernama “Mark 1”. Suatu
hari komputer ini tidak berfungsi dengan
semestinya, setelah komputer itu diperiksa
ternyata ada suatu bagian perangkat keras
di mana terdapat serangga yang
tersangkut. Setelah serangga itu diangkat
dari perangkat keras, komputer dapat
berfungsi dengan baik. Maka sejak saat itu
kata bug lekat dengan masalah-masalah
pada komputer. Debugging adalah proses
menghilangkan bug dari suatu program.
Debugging terjadi sebagai akibat dari
pengujian yang berhasil. Jika test case
mengungkap kesalahan, maka debugging
adalah proses yang menghasilkan
penghilangan kesalahan. Perekayasa
perangkat lunak yang mengevaluasi hasil
suatu pengujian sering dihadapkan pada
indikasi “simtomatis” dari suatu masalah
pernagkat lunak, yaitu bahwa manisfestasi
eksternaldari kesalahan dan penyebab
internal kesalahan dapat tidak memiliki
hubungan yang jelas satu dengan lainnya.
Proses mental yang dipahami secara buruk
yang menghubungkan sebuah symptom
dengan suatu penyebab disebut debugging.
Proses Debugging
Debugging bukan merupakan
pengujian, tetapi selalu terjadi
sebagai bagian akibat dari
pengujian. Proses debungging
dimulai dengan eksekusi terhadap
suatu test case. Hasilnya dinilai, dan
ditemukan kurangnya hubungan
antara harapan dan yang
sesungguhnya. Dalam banyak kasus,
data yang tidak berkaitan
merupakan gejala dari suatu
penyebab pokok tetapi masih
tersembunyi, sehingga perlu ada
koreksi kesalahan.
Proses debugging akan
selalu memiliki salah satu
dari dua hasil akhir
berikut:
Penyebab akan
ditemukan, dikoreksi, dan
dihilangkan, atau
Penyebab tidak akan
ditemukan.
Berikut beberapa contoh kesalahan
atau error yang biasa ditemukan
dalam pembuatan kode, yaitu
seperti :
Syntax error
Logic Errors
Runtime Errors
Menggunakan variabel name yang
salah di tempat yang salah
Memanggil fungsi yang salah, dan
lain-lain.
Langkah-langkah dalam Debugging
Untuk mengetahui lebih dalam
mengenai apa itu debugging, berikut
beberapa tahap atau langkah yang perlu
dilakukan. Secara garis besar, berikut
langkah-langkah yang akan dilakukan
programmer untuk melakukan
debugging.
1. Mengidentifikasi error
Programmer akan mengidentifikasi kesalahan yang ada
pada sistem yang dikembangkan. Programmer harus bisa
menemukan actual error agar perbaikan dapat dilakukan
dengan tetap sasaran.
2. Menemukan lokasi error
Setelah mengidentifikasi kesalahan dengan benar, maka
tahap selanjutnya adalah memeriksa kode untuk
menemukan lokasi dimana error tersebut muncul atau
berada.
3. Menganalisis error
Pada tahap ini, programmer akan menganalisis kode yang
menimbulkan error. Tahap ini dilakukan untuk mengetahui
apakah error yang ada dapat menimbulkan kesalahan di
tempat yang lain, serta memastikan apakah ada resiko
kerusakan yang muncul saat dilakukan perbaikan.
4. Membuktikan hasil analisis
Setelah menganalisis actual error,
programmer perlu menemukan
kemungkinan error yang muncul dalam
aplikasi. Pada tahap ini, programmer
akan melakukan automated testing.
[Link] perbaikan
Tahap terakhir adalah memperbaiki
semua error dan memeriksa apakah
semuanya berjalan dengan baik.
Proses debugging perlu dilakukan karena
beberapa alasan, yaitu :
Dapat segera melaporkan error sehingga
pendeteksian kesalahan dapat dilakukan lebih
awal.
Memberikan informasi mengenai struktur data
dan interpretasi yang mudah
Debugging dapat membantu pihak
pengembang untuk bisa menghindari
penggunaan kode pengujian sekali pakai yang
kompleks untuk menghemat waktu dan energi
dalam pengembangan perangkat lunak.