Senin, 12 Desember 2011

JAVA IX. Membuat Kode, Menguji, dan Mencari Kesalahan (debugging)


Akan sangat sederhana dan indah apabila program yang kita tulis akan berjalan 100% tanpa kesalahan sama sekali. Kita tinggal memencet tombol run, dan semuanya berjalan sesuai rencana.
Nyatanya tidak demikian.
Coba ganti salah satu dari beberapa contoh yang sudah diberikan dengan mengganti salah satu kurung { menjadi (. Kemudian pada Eclipse, jalankan dengan "Run -> Run". Lihat apa yang terjadi.
Eclipse akan menampilkan pesan kesalahan, itu artinya secara sintaks, atau format penulisan program ada memiliki kesalahan, dan Anda harus memperbaikinya sebelum program bisa dijalankan.
Sintaks adalah salah satu cara menentukan bagaimana komputer harus bekerja. Manusia tidak membutuhkan sintaks untuk berbicara karena manusia bisa menentukan mana subjek, predikat, atau objek dengan mudah, bahkan untuk kalimat yang belum pernah dibaca atau didengar sekalipun.
Bagi komputer, sintaks membantu komputer mengelola logika, mana yang merupakan variabel, mana yang berupa subrutin, mana perulangan, mana percabangan dan lain-lain. Dalam bahasa Java, yang merupakan bahasa dengan sintaks ketat, perbedaan sintaks sedikit saja membuat Java tidak mengerti apa yang dimaksud dalam program.
Bagi beberapa programmer, ketidakluwesan Java mungkin menghambat, tetapi perlu diingat bahwa kesalahan hanya datang dari manusia. Ketidakluwesan Java membantu programmer harus menggunakan logika yang benar, dan tidak boleh salah dalam menggunakan variabel. Variabel yang sudah ditentukan tipenya tidak dapat diubah ditengah jalan, kecuali dengan membuat variabel baru dengan tipe yang berbeda.
Debugging
Ketika program Anda tidak menunjukkan kesalahan sintaks, bukan berarti program Anda bebas dari kesalahan. Program harus diuji apakah ia berjalan sesuai dengan yang diharapkan. Idealya apabila program menerima input yang tidak sesuai dengan yang diharapkan, program akan memberikan pesan kepada penggunanya tentang kesalahan tersebut, bukan tiba-tiba keluar tanpa pesan.
Kita mungkin harus melakukan testing secara lebih perlahan-lahan. Apabila jumlah baris dalam program kita kecil, mungkin kesalahan tersebut dengan mudah akan kita temui. Tetapi apabila program tersebut sangat besar, maka mencari kesalahan yang kelihatannya sederhana tidaklah mudah.
Pencarian kesalahan ini dalam bahasa pemrograman disebut dengan "debugging", yang jika diterjemahkan ke dalam bahasa Indonesia berarti membersihkan kutu, karena kesalahan kecil dianggap sebagai kutu yang mengganggu jalannya program.
Eclipse menyediakan peralatan untuk melakukan debugging, yaitu dengan menekan tombol "Run -> Debug". Dalam Eclipse, debugging yang bisa dilakukan antara lain: membuat breakpoint (tempat berhenti program), mengeksekusi satu demi satu perintah, mengeksekusi satu subrutin, melihat isi variabel saat ini, dan bahkan mengganti variabel pada saat program dijalankan.
Untuk mendemonstrasikan debugging ini, mari kita gunakan program menghitung rata-rata pada bagian terdahulu.
Membuat breakpoint
Kita bisa menjalankan program baris demi baris, tetapi sebelum kita melakukannya, kita harus memberhentikan program tersebut di satu tempat terlebih dahulu. Tempat pemberhentian program sementara ini disebut breakpoint. Untuk mengeset breakpoint, double klik bagian paling kiri dari baris di mana Anda ingin program tersebut berhenti.
Misalnya pada tampilan berikut, program berhenti di baris double x=0;. Perhatikan juga bahwa baris yang diberi breakpoint memiliki tanda bulat di sampingnya.
Untuk menghapus breakpoint, double click lagi tanda bulat di baris yang sudah diberi breakpoint tadi.
Menjalankan program hingga breakpoint
Coba tekan tombol F11 atau "Run -> Debug". Pada saat Anda memulai debugging, Eclipse akan memberikan pertanyaan bahwa perspective (atau tampilan Eclipse) Anda akan diubah ke debugging perspective. Tekan Yes untuk mengubah perspective tersebut.
Berikut ini adalah perspektif dalam mode debugging.
Perhatikan bahwa di samping tanda bulat tadi, ada tanda panah (->) yang menunjukkan saat ini komputer telah melaksanakan program hingga pada baris ini. Di samping kanan adalah daftar variabel yang dideklarasikan dalam program ini. Karena baris yang kita pilih adalah baris pertama setelah deklarasi pada subrutin main, maka hanya satu variabel yang tersedia, yaitu yang berasal dari arg.
Menjalankan program langkah per langkah
Apabila Anda sudah berada dalam mode debugging, Anda bisa melakukan navigasi untuk melakukan eksekusi sesuka Anda. Ada beberapa pilhan yang disediakan oleh Eclipse, semuanya terdapat dalam menu Run yaitu :
  • Resume melanjutkan eksekusi program yang berhenti.
  • Suspend menghentikan sementara program yang sedang jalan.
  • Terminate menghentikan sesi debugging saat ini.
  • Step Into mengeksekusi SATU perintah atau masuk ke dalam subrutin.
  • Step Over mengeksekusi SATU perintah. Jika perintah tersebut merupakan perintah panggilan subrutin, maka subrutin tersebut akan dieksekusi tanpa masuk ke dalam subrutin yang dipanggil tersebut.
  • Step Return mengeksekusi seluruh perintah pada subrutin ini kemudian kembali kepada pemanggilnya.
  • Run to Line menjalankan program dari baris tempat berhentinya program sekarang hingga baris yang Anda tentukan. Atau jika di antaranya terdapat breakpoint lagi, maka program akan berhenti di breakpoint tersebut.
  • Mari kita coba untuk menjalankan progam satu langkah dengan menggunakan "Run -> Step Over" atau tombol F6.
    Berikut ini adalah screen shot setelah program maju satu langkah. Perhatikan bahwa tanda panah maju satu langkah. Dan juga karena instruksi pada baris ini adalah mendeklarasikan variabel x bertipe double, dan kemudian mengisinya dengan 0, variabel ini akan muncul di kanan atas perspektif Debug.
    Lakukan terus Step Over hingga program berakhir, dan Anda akan melihat langkah demi langkah bagaimana program dijalankan secara bertahap. Perlu diingat, pada saat program sampai pada instruksi untuk mengambil input Anda, klik bagian bawah (tab yang bernama Console), dan masukkan angka sebagai input kemudian tekan Enter. Lihat bagaimana variabel di kanan atas berubah sesuai dengan input yang Anda berikan.
    Melihat dan mengubah isi variabel
    Di sini saya jalankan program setiap baris hingga a = a + 1 seperti pada gambar berikut.
    Kemudian, saya ingin memperpanjang perulangan, sehingga bukan melakukan 5 kali perulangan, tetapi 6 kali, yaitu dengan mengubah nilai a menjadi -1. Ini bisa dilakukan yaitu dengan mengklik nilai dari a, yang semula 0, kemudian diganti menjadi -1, seperti pada screen shot berikut.
    Setelah diganti coba jalankan program hingga selesai, misalnya dengan "Run -> Resume". Jangan lupa untuk memasukkan inputnya di bagian Console. Lihat sekarang bilangan ke-0 ditanyakan 2 kali, yang artinya user diperintahkan untuk memasukkan 6 bilangan. Tentunya hasil rata-ratanya salah, karena perhitungan rata-rata dilakukan dengan rumus x = x/5, dalam hal ini seharusnya adalah 6.
    Setelah selesai melakukan debugging, Anda mungkin ingin mengubah perspektif kembali seperti semula. Caranya, di bagian paling kanan (lihat gambar dibawah), klik tanda >> kemudian pilihan akan muncul. Klik perspektif Java untuk mengubahnya menjadi tampilan semula.

Tidak ada komentar:

Posting Komentar