Tips-tips dalam Mencari Bug

Bagus Aji Santoso 14 Januari 2019

Tips-tips dalam Mencari Bug

Menulis program bukan pekerjaan yang mudah. Sangat jarang sebuah aplikasi dapat berhasil dibuat dari 0 hingga selesai tanpa adanya masalah, baik itu masalah dalam kesalahan penulisan maupun kesalahan logika program. Saat terjadi kesalahan yang mengakibatkan aplikasi tidak berjalan dengan seharusnya, saat itu lah kita menemukan sebuah bug.

Ada beberapa jenis bug yang sering ditemui, diantaranya:

  • Kesalahan penulisan sintaks
  • Kesalahan saat runtime
  • Kesalahan logika

Kesalahan penulisan sintaks (syntax error)

Sebagai seorang manusia, kita tentu sangat dengan dengan kesalahan. Kesalahan yang seringkali terjadi adalah salah menulis sintaks pemrograman. Sintaks adalah aturan penulisan kode yang telah distandarkan oleh bahasa atau framework tertentu. Jika kita tidak mengikuti aturan tersebut, maka program yang kita tulis tidak akan berjalan dengan baik.

Kesalahan penulisan sintaks biasanya terjadi saat kita melupakan beberapa atribut seperti tanda petik ("), titik koma (;), tanda kurung ([{<>}]), atau menulis perintah yang kurang lengkap. Meskipun sepintas sederhana, namun kesalahan seperti ini bisa memakan waktu cukup lama untuk mencarinya jika belum terbiasa.

Kesalahan saat runtime (runtime error)

Kesalahan penulisan sintaks biasanya akan langsung muncul begitu aplikasi akan di eksekusi atau saat akan dikompilasi. Ada jenis kesalahan yang tidak muncul saat aplikasi pertama di eksekusi, tapi akan muncul setelah program dijalankan. Kesalahan ini muncul saat aplikasi gagal mengeksekusi sesuatu oleh sistem saat program sedang berjalan.

Kesalahan logika

Jenis kesalahan ini adalah yang paling sulit untuk dicari karena jarang memunculkan pesan error. Konsekuensi dari kesalahan logika adalah kesalahan hasil perhitungan (tidak selalu matematis). Sistem tidak dapat mengenali kesalahan ini karena penulisannya sudah mengikuti aturan-aturan yang benar akan tetapi karena "rumus"-nya salah, maka hasilnya ikut salah.


Tips 1: Sabar

Sabar, adalah tindakan pertama yang perlu dilakukan begitu menemukan bug. Tetap tenang, karena cepat atau lambat bug ini akan ditemukan dan diperbaiki. Saat panik, kita terbiasa untuk terburu-buru dalam melakukan analisis.

Tips 2: Gunakan syntax highlighter

Mayoritas editor teks dan IDE modern telah memiliki syntax highlighter. Fitur ini sangat membantu untuk menemukan kesalahan sintaks. Sintax highlighter akan membuat kode-kode yang ditulis dengan bahasa atau aturan tertentu supaya lebih mudah ditangkap oleh mata. Contohnya, ia akan memberikan warna yang berbeda sesuai dengan jenis variabel, memberitahu variabel mana yang belum pernah dipanggil atau di inisialisasi, memberitahu saat ada pencampuran indentasi spasi dan tab, memberitahu jika nama variabel yang dipanggil belum dideklarasi, dsb.

Sublime Text, Visual Studio Code, atau Atom, sudah otomatis mengaktifkan fitur syntax highlighter untuk bahasa-bahasa yang umum seperti Python, PHP, Javascript, Java, C/C++, dll. Jika menggunakan framework, kita mungkin ingin menambahkan syntax highlighter khusus untuk framework tersebut. Beberapa IDE seperti Eclipse, IntelliJ IDEA, atau Netbeans bahkan bisa langsung memberitahu jika kekurangan titik koma, kelebihan atau kekurangan tanda kurung, dsb.

Tips 3: Gunakan static code analysis

Static code analysis adalah sebuah program yang mengotomatiskan proses analisis kode program. Program seperti ini bisa mendeteksi kesalahan penulisan program (secara sintaks bukan logika), kesalahan penggunaan multithreaded, mendeteksi memory leak, mendeteksi vulnerability (celah keamanan) yang mungkin mengancam aplikasi, dan lain sebagainya.

Static code analysis bisa juga dimanfaatkan untuk menyamakan gaya penulisan di project tertentu dengan membuat aturan penulisan yang bisa di atur sendiri.

Tips 4: Menggunakan debugger

Syntax highlighter maupun static code analysis sangat membantu dalam menemukan kesalahan penulisan sintaks dan kesalahan yang mungkin terjadi saat runtime. Ada saja kesalahaan runtime yang tidak dapat terdeteksi oleh contoh program di atas sehingga kita perlu menggunakan debugger.

Debugger adalah aplikasi khusus yang memungkinkan programmer untuk menghentikan eksekusi program di baris tertentu (breakpoint), memeriksa nilai dari variabel/objek, kemudian melanjutkan eksekusinya baris per baris.

Mayoritas IDE seperti Eclipse, Netbeans, dan IntelliJ IDEA sudah memliki debugger bawaan. Beberapa editor teks macam Visual Studio Code juga memilikinya (editor lain mungkin perlu ditambahkan plugin khusus). Biasanya, setiap bahasa memiliki debugger sendiri-sendiri yang bisa dieksekusi secara terpisah (menggunakan command line), dan editor-editor di atas mengimplementasi debugger yang telah dirilis pengembang bahasa atau framework-nya.

Kesalahan logika hanya bisa ditemukan dengan melihat nilai-nilai yang dihasilkan dari suatu "rumus". Karena kita bisa menganalisis nilai-nilai variabel saat program sedang berjalan serta dapat menghentikan eksekusi dibaris tertentu sesuka hati, maka debugger akan memuluskan pekerjaan mencari kesalahan tersebut.

Tips 5: Bertanya

Walaupun sudah menggunakan banyak tools, tetap memungkinkan bagi kita untuk melewatkan sebuah bug. Mungkin karena kita yang kurang teliti, atau memang bug itu jenis baru yang belum pernah ada orang lain menemukannya. Apabila ternyata tidak bisa menyelesaikannya sendiri, maka cobalah untuk bertanya kepada orang yang kemungkinan bisa membantu mencari tahu sumber kesalahannya.

Dewasa ini, sangat banyak grup-grup pemrograman di platform online seperti Facebook, Telegram, atau WhatsApp. Tempat ini sangat cocok untuk menanyakan hal-hal yang tidak bisa kita selesaikan sendiri. Meskipun begitu, gunakanlah kata-kata yang baik dan sertakan pertanyaan dengan contoh kode atau gambar kesalahan yang muncul.

Tips 6: Istirahat bosque

Kalau masih belum menemukan bug yang dicari, istirahatlah. Coba keluar ruangan, berjalan entah kemana untuk mengambil udara segar dan melancarkan peredaran darah menuju ke otak. Kadang saat sedang istirahat, kita bisa mendapatkan "ilham-ilham dari langit" yang memberi pencerahan bug yang dicari.