Fitur “Debug” Pada NetBeans Untuk Mengatasi “Null Pointer Exception Error”
Null Pointer Exception Error!
Programer mana pun (insyaallah) pernah mengalami error macam ini. Kadang gara-gara kesalahan konyol seperti teledor tidak menginisiasi instans dari objek. Sering juga karena kesalahan yang suliiiiittt sekali ditemukan. Bagai mencari jarum dalam jerami. Kesalahan kecil yang bikin S.T.R.E.S.S seharian !!!
Lalu bagaimana mengatasinya?
Dahulu kala saya melakukan “System.out.println(isi dari variabel)” pada baris-baris yang dicurigai sebagai penyebab kesalahan. Agak repot, karena terkadang kesalahan muncul pada titik yang tidak terduga. Seperti kata bang Napi, kesalahan itu ada jika ada kesempatan. (MODE maksa : ON )
Kini, ketika mulai menggali “daleman” NetBeans, ternyata ada satu fitur yang amat membantu, yaitu Debug. Ini bukanlah sejenis makanan khas Yogyakarta, itu mah “gudeg”. Dan bukan pula bunyi orang jatuh, itu mah “gedebuk!”. (duh.. becanda lagi nih..)
Debug adalah fitur untuk menjalankan aplikasi tahap-per-tahap, baris-per-baris. Mudah untuk dipelajari. Dan berdasarkan pengalaman pribadi, fitur ini amat membantu “pencarian jarum yang hilang”.
Bagaimana cara menggunakannya? Yuk kita pelajari bersama. (Saya menggunakan NetBeans 6.5)
Secara umum, debug dapat dikatakan sebagai proses eksekusi program per baris code. Nah, karena dieksekusi per baris code maka dapat dilihat perkembangan yang terjadi pada aplikasi setiap kali suatu baris (perintah) dijalankan. User dapat memperhatikan objek yang muncul, objek yang terhapus, hingga perubahan nilai dari suatu objek.
Kalau baris code-nya ratusan bahkan ribuan, gimana? Berarti dijalankannya pelan-pelan banget donk!! Yuk rame-rame bilang :
Tenang, pemirsa. NetBeans punya cara untuk langsung mengarahkan debug pada baris yang kita tuju. Yaitu dengan menggunakan bookmark breakpoint (penanda) sebagai line breakpoint (baris penghentian eksekusi program terjadi).
Nah, sepertinya sudah cukup “pendahuluan” untuk prosesi debug ini. Sekarang kita lanjut ke praktiknya.
Pertama, pada baris yang ingin dianalisa, berikan bookmarkbreakpoint dengan melakukan klik. Sehingga nanti pada titik yang di-klik akan muncul kotak merah dan latar belakang baris itu menjadi ikutan berwarna merah. Saya contohkan, pada baris ke-47. Misalkan saya ingin mengetahui apakah perintah pada baris ini sukses? (Tandanya dengan adanya nilai untuk atribut “userInfo“)
Selanjutnya klik kanan pada proyek utama (main project), pilih menu “Debug”.
Tunggu beberapa saat. NetBeans sedang berusaha menjalankan debug. Perhatikan panel “output” pada NetBeans. Jika tidak ada masalah maka aplikasi akan berjalan seperti biasa. Namun ada hal yang berbeda pada toolbar NetBeans. Ada penambahan icon-icon baru yang akan menjalankan fungsinya sebagai debugger.
Langkah selanjutnya, lakukanlah aktifitas pada aplikasi yang akan membuat program mengeksekusi baris yang dicurigai itu.
Voila! Eksekusi program akan berhenti pada titik bookmarkbreakpoint. Di tempat “line number“, akan ada panah berwarna hijau. Dan baris yang segaris dengan panah itu pun akan turut berwarna hijau pada latarnya. Ini menandakan titik dimana ekseskusi program berhenti.
Jika tombol “step over” di klik satu kali, maka panah hijau akan berpindah ke satu baris kode selanjutnya.
Ini menandakan eksekusi baris sebelumnya telah dilakukan. Untuk melihat perubahan yang terjadi tiap kali eksekusi baris, lihat panel tambahan untuk Debug yang ada di dekat panel Output.
Ada beberapa pilihan disana. Untuk menganalisa objek gunakan panel local variables. Pada panel ini saya dapat melihat variabel-variabel yang aktif, tipe kelas, dan nilainya.
Misalnya pada contoh, ketika baris ke-47 belum dieksekusi, variabel “userInfo” belum terdaftar.
Namun ketika baris ke-47 telah dieksekusi, variabel “userInfo” pun muncul beserta nilainya. Ternyata eksekusi baris ini berhasil!
Gimana, sederhana kan!
Tapi ingat! Apa yang saya jelaskan disini baru “kail”nya saja, bukan “ikan”nya. Untuk bisa mahir menggunakan debug, perlu iseng-iseng ngutak-atik fungsi khusus debugging.
Sederhana! Tapi manfaatnya besar.
Hore!!! Selamat tinggal “Null Pointer Exception” !!!
0 Comments
Mamanya Putri
Bagaimana sederhana Put. Bisa sederhana kalau sudah belajar se abrek-abrek. Selamat balajar terus ya.
agni199
hi putri.. nice to know there’s a woman who has interest and passion in IT.. especially in programming.
mirkenken
Btw, Fitur Debugging udah ada sejak kita Turbo C++ layar biru loh put, cuma mgk karena gak pernah diulas ama asistennya aj waktu dulu kita belajar C, padahal proses men-debug ini penting banget.
Skg Fitur Debugging ud ada disetiap IDE modern seperti Visual Studio, Eclipse, dan Netbeans yang baru aja Putri bahas…
Nice post Put… π
putrichairina
Iya, Mir. Fitur Debugging memang ada di setiap IDE dan fitur ini sangat penting! Terutama jika menghadapi error yang tidak diketahui sebab-musababnya. Makasi sudah berkomentar, Mir.
Sekarang sibuk apa,nih?
Sudah tercapai cita-citanya menjadi guru pemrograman?^^
Rachman
Mbak,
Udah mencoba memodifikasi Nilai dari Variabel dengan memasukkan nilai baru di “Variabel” panel.
Ini berguna untuk memodifikasi perilaku dari suatu program, tanpa mengubah kode sumber dan mengkompilasi ulang.
Kalo di VB kita merubahnya lewat window immediate
putrichairina
Hm.. Ini pertanyaan atau pernyataan ya?
Sudah saya coba, tapi tidak bisa, euy. π
Rachman
Bukan pernyataan ataupun pertanyaan tapi saran agar lebih komplit.
caranya kan sudah saya sebutkan di atas yaitu dengan memasukkan nilai baru di βVariabelβ panel. untuk contoh diatas lakukan dobel klik “jabrix” ubah menjadi “jambul” maka username sudah berubah dengan nilai menjadi “jambul”
Bila perlu tambahkan lagi cara melakukan customize breakpoint, menambahkan new watch dll
Selamat mencoba
putrichairina
Sip-sip.
Makasi untuk tambahan ilmunya, man.^^
ayip.eiger
kayaknya ada yang salah, untuk memberikan tanda merah pada baris yang akan dihentikan debugnya, adalah memberikan breakpoint bukan bookmark..
Putri Chairina
Terima kasih atas koreksinya.^^
afif Xenesis
mantap sesuai dgn tgs saya
XD
Mhd Jack
makasiii…
sepertinya menjadi bahan dari tugasku…
ayip.eiger
Bener2 ini yang sedang aku cari2. Dari kemaren selalu bingung soal null pointer exception. Thx buat pencerahannya put..
Putri Chairina
OK. Senang bisa membantu. π