Debugging Dengan Eclipse

12
Proses Debug = untuk mengetahui hasil eksekusi perbaris pernyataan, contoh prosesnya adalah 1. 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 pada baris ke-12 (pada contoh di atas) di header method diklik kanan dan pilih Toggle Breakpoint Array dengan 6 elemen Method bubbleSort

description

debug

Transcript of Debugging Dengan Eclipse

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.