RAHASIA
DEBUGGING
PEMROGRAMAN DASAR
S YA H I D A H H U M A I R O H , S . P D
PENGERTIAN DEBUGGING
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.
TAHAP MELAKUKAN DEBUGGING
1. JALANKAN PROGRAM
2. MELIHAT LOG KESALAHAN
3. PAHAMI CARA KERJA PROGRAM YANG SEDANG DILAKUKAN DEBUGGING (FLOW,
VARIABEL YANG DIBUTUHKAN, INPUT, SERTA OUTPUT YANG DIHARAPKAN)
4. BANDINGKAN ANTARA OUTPUT YANG DIHARAPKAN DENGAN OUTPUT YANG
TAMPIL
5. PERIKSA VARIABEL-VARIABEL DAN BARIS DIMANA PROGRAM TIDAK BERJALAN
DENGAN BENAR
6. PERBAIKI
CARA 1 - MANUAL WALKTROUGH
#include <iostream>
return hasil;
}
DENGAN METODE PRINT STATEMENT MAKA KITA AKAN
MENCETAK NILAI NILAI DARI TIAP VARIABLE SAAT
MELAKUKAN PERULANGAN/LOOPING
int jumlahdigit(int a){ a = 1257
a= (a-(a%10))/10
int hasil=0; a=(1257-(1257%10))/10
while(a>=0){ a=(1257-7)/10
a=(1250)/10 a = 125
a=(a-(a%10))/10; a=(125) a= (a-(a%10))/10
cout <<"a ="<<a << endl; hasil = 1 a=(125-(125%10))/10
a=(125-5)/10
hasil++; A= 120/10
A = 12
cout <<"hasil ="<<hasil << endl;
Hasil = 2
}
return hasil; Kita menambahkan print
statement SETELAH
} variable terisi dengan sebuah
……… nilai.
TAMBAHKAN MAIN CLASS UNTUK MELAKUKAN
PENGECEKAN.
…………
………
……… ANGKA 1257 HANYA
SEBAGAI
int main(){
PERUMPAMAAN, KITA
cout<<jumlahdigit(1257); MENGGUNAKANNYA
UNTUK MEMPERMUDAH
} PENGECEKAN.
MAKA ….. OUTPUT MENJADI…
SEKARANG KITA TELAAH.
• CARA KERJA PROGRAM ADALAH
a=(a-(a%10))/10;
hasil++;
• YANG MANA JIKA a DIISI ANGKA 1257 AKAN MENJADI :
a = (1257-(1257%10))/10
a = (1257-(7))/10
a = 1250 / 10
a = 125 -> LIHAT!!! ANGKA 7 TERHAPUS !!
hasil++ mengartikan ketika kita “hapus” angka dari belakang satu persatu, saat itulah variable
hasil menghitung digit yang terhapus.
Ketika a = 125, hasil = 1
Dst.
Tidak kunjung HAL INI TERUS DI LOOP HINGGA a= 0.
henti
KITA MENEMUKAN KETIDAK
COCOKAN !!
HAL INI TERUS DI LOOP HINGGA a= 0.
while(a>=0){
PROGRAM TERUS MENERUS
MENGULANG TANPA HENTI KARENA
a=(a-(a%10))/10; PROGRAM TERUS BERJALAN BAHKAN
hasil++; KETIKA a=0
}
PADAHAL LOOP HANYA DIHARAPKAN
SAMPAI MENEMUKAN NILAI 0.
MAKA.. PROGRAM SEHARUSNYA
MENJADI
HAL INI TERUS DI LOOP HINGGA a= 0.
PROGRAM AKAN
BERHENTI
SEKIAN
TERIMAKASIH