debugging dengan eclipse
DESCRIPTION
debugTRANSCRIPT
Proses Debug = untuk mengetahui hasil eksekusi perbaris pernyataan, contoh prosesnyaadalah1. Misal ada sebuah array dengan 6 elemen yang belum terurut akan diurutkan secara
berikut :int[] contoh = {84,69,76,86,94,91}
2. Misalkan kita akan melihat proses eksekusi tahap demi tahap pada method bubbleSort, maka padabaris ke-12 (pada contoh di atas) di header method diklik kanan dan pilih Toggle Breakpoint
Array dengan 6 elemen
Method bubbleSort
3. Maka pada baris ke-4 pada header method bubbleSort akan ada bulatan berwarna biru
4. Pada menu Run di atas pilih Debug As dan Java Application
5. Maka tampilan Eclipse akan berubah menjadi
6. Untuk melakukan eksekusi perbaris statement, pada deretan menu di atas tekan tahap demi tahantombol step into
Array yang belum terurut
Statement yang akan dieksekusi perbaris
7. Selama menekan tombol step into, perhatikan perubahan pada data array dan isi variablepada bagian yang ditunjuk tanda panah berikut
8. Sekarang tekan tombol step into dan perhatikan hasilnya
booleanbooleanbooleanboolean flag = truetruetruetrue;
Ada pendeklarasian variable flag bertipe boolean dan diisi true.
9. Tekan step into kembali dan perhatikan hasil eksekusi baris berikut
while(flag)
Looping dilakukan dan kemudian melalui perintah
flag = false
Isi variable flag diubah menjadi false
10. Sekarang kita mulai dari k = 0
11. Perhatikan baris statement yang diberi highlight
ifififif (data[k] < data[k+1])
Dilakukan perbandingan apakah data[k]data[k]data[k]data[k] <<<< data[k+1]data[k+1]data[k+1]data[k+1], jika k = 0 maka perbandingannyaadalah data[0]data[0]data[0]data[0] <<<< data[1]data[1]data[1]data[1] yakni apakah 84848484 <<<< 69?69?69?69?
Hasilnya adalah false, sehingga proses pertukaran tidak terjadi(blok statement if tidakdieksekusi-tidak terjadi pertukaran tempat antara 84 dan 69), maka looping akan dilanjutkanuntuk k = 1
Perbandingan berikutnya adalah apakah 69696969 <<<< 76?76?76?76? Karena hasilnya true maka blok statementif dieksekusi untuk dilakukan pertukaran antara 69 dan 76, berikut prosesnya
data[k] yakni 69 akan dicopykan ke variable temp
69 < 76 ? Hasilnya true, blok if dieskeskusi
Selanjutnya melalui data[k] = data[k+1], untuk k = 1, maka data[1] = data[2] yakni 76 akandisalin ke data[1] atau menggantikan angka 69
Kemudian angka 69 yang sudah disalin ke variable temp, akan disalinkan ke data[2] yaknimengganti angka 76 melalu perintah data[k+1] = temp. Perhatikan:
Sekarang antara 76 dan 69 telah terjadi pertukaran tempat. Proses ini terus dilakukansampai k = 5. Kalau dibuatkan tabel akan tampak sebagai berikut :
PutaranPutaranPutaranPutaran kkkk 84848484 69696969 76767676 86868686 94949494 91919191
I
0 84848484 69696969 76767676 86868686 94949494 91919191
1 84848484 76767676 69696969 86868686 94949494 91919191
2 84848484 76767676 86868686 69696969 94949494 91919191
3 84848484 76767676 86868686 94949494 69696969 91919191
4 84848484 76767676 86868686 94949494 91919191 69696969
5 LoopLoopLoopLoop forforforfor berhentiberhentiberhentiberhenti karenakarenakarenakarena maksimalmaksimalmaksimalmaksimal kkkk ==== 4444
forforforfor( k=0;k<data.length-1;k++)
data.length=6
II
0 84848484 76767676 86868686 94949494 91919191 69696969
1 84848484 86868686 76767676 94949494 91919191 69696969
2 84848484 86868686 94949494 76767676 91919191 69696969
3 84848484 86868686 94949494 91919191 76767676 69696969
4 84848484 86868686 94949494 91919191 76767676 69696969
5 LoopLoopLoopLoop forforforfor berhentiberhentiberhentiberhenti karenakarenakarenakarena maksimalmaksimalmaksimalmaksimal kkkk ==== 4444
forforforfor( k=0;k<data.length-1;k++)
data.length=6
III 0 86868686 84848484 94949494 91919191 76767676 69696969
1 86868686 94949494 84848484 91919191 76767676 69696969
2 86868686 94949494 91919191 84848484 76767676 69696969
3 86868686 94949494 91919191 84848484 76767676 69696969
4 86868686 94949494 91919191 84848484 76767676 69696969
5 LoopLoopLoopLoop forforforfor berhentiberhentiberhentiberhenti karenakarenakarenakarena maksimalmaksimalmaksimalmaksimal kkkk ==== 4444
forforforfor( k=0;k<data.length-1;k++)
data.length=6
IV
0 94949494 86868686 91919191 84848484 76767676 69696969
1 94949494 91919191 86868686 84848484 76767676 69696969
2 94949494 91919191 86868686 84848484 76767676 69696969
3 94949494 91919191 86868686 84848484 76767676 69696969
4 94949494 91919191 86868686 84848484 76767676 69696969
5 LoopLoopLoopLoop forforforfor berhentiberhentiberhentiberhenti karenakarenakarenakarena maksimalmaksimalmaksimalmaksimal kkkk ==== 4444
forforforfor( k=0;k<data.length-1;k++)
data.length=6
V
0 94949494 91919191 86868686 84848484 76767676 69696969
1 94949494 91919191 86868686 84848484 76767676 69696969
2 94949494 91919191 86868686 84848484 76767676 69696969
3 94949494 91919191 86868686 84848484 76767676 69696969
4 94949494 91919191 86868686 84848484 76767676 69696969
SelesaiSelesaiSelesaiSelesai
Hasil Putaran Pertama
Hasil Putaran Kedua
Hasil Putaran Ketiga
Hasil Putaran Keempat
Hasil Putaran Kelima
Untuk metode bubble sort, meskipun pada akhir putaran keempat data sudah terurut, namunkarena jumlah elemen arraynya adalah 6, maka proses perbandingan tetap dilakukan sampaiputaran 6 - 1 = 5. Disetiap metode pengurutan dan pencarian, selalu ada dua looping yakni outerloop (yang pertama muncul, kalau pada kasus bubble sort di atas adalah while) dan inner loop yangmuncul sesudah outer loop. Setiap putaran adalah saat inner loop selesai dilakukan(untuk kasusbubble sort di atas, satu putaran berlangsung pada loop for dari k = 0 sampai k = 4).
Lakukan hal yang sama untuk metode pengurutan yang lain serta pencarian, hasil pengisian tabel diatas dapat dibawa saat ujian untuk membantu mengisi soal UAS.