Cara Mengatasi Error Null Pointer Pada Java

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“)

bookmark
Bookmark
Selanjutnya klik kanan pada proyek utama (main project), pilih menu “Debug”.
Pilih Debug
Pilih 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.
Tambahan Toolbar
Toolbar Untuk Debugging
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.
Eksekusi Berhenti Sejenak
Eksekusi Berhenti Sejenak
Jika tombol “step over” di klik satu kali, maka panah hijau akan berpindah ke satu baris kode selanjutnya.
Eksekusi Berlanjut Satu Baris Kode
Eksekusi Berlanjut Satu Baris Kode
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.
Panel Tambahan
Panel Debugging
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.
Variabel "userLogin" Belum Ada
Variabel "userLogin" Belum Ada
Namun ketika baris ke-47 telah dieksekusi, variabel “userInfo” pun muncul beserta nilainya. Ternyata eksekusi baris ini berhasil!
Variabel userInfo Ada dan Bernilai
Variabel userInfo Ada dan Bernilai
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” !!!