Pemrogram komputer, seperti orang lain, tidak sempurna. Ini berarti program yang mereka tulis terkadang memiliki kesalahan kecil, yang disebut “bug” di dalamnya. Bug ini bisa kecil, seperti tidak mengenali input pengguna, atau lebih serius, seperti kebocoran memori yang menabrak program. Sebelum merilis perangkat lunak mereka ke publik programmer melakukan “debug” program mereka, menghilangkan kesalahan sebanyak mungkin. Proses debugging ini sering memakan waktu lama, karena memperbaiki beberapa kesalahan mungkin melibatkan yang lain. Debugkan kaca mobil Anda di pom bensin jauh lebih mudah daripada melakukan debug pada program komputer.
Debugging, dalam pemrograman komputer dan rekayasa, adalah proses multistep yang melibatkan identifikasi masalah, mengisolasi sumber masalah, dan kemudian mengoreksi masalah atau menentukan cara untuk mengatasinya. Langkah terakhir debugging adalah menguji koreksi atau pemecahan masalah dan memastikan hasilnya berhasil.
Dalam pengembangan perangkat lunak, debugging melibatkan penempatan dan koreksi kesalahan kode dalam program komputer. Debugging adalah bagian dari proses pengujian perangkat lunak dan merupakan bagian integral dari keseluruhan siklus pengembangan perangkat lunak. Proses debugging dimulai segera setelah kode ditulis dan berlanjut dalam tahap-tahap berturut-turut karena kode digabungkan dengan unit pemrograman lainnya untuk membentuk produk perangkat lunak. Dalam sebuah program besar yang memiliki ribuan bahkan ratusan ribu baris kode, proses debugging dapat dilakukan lebih mudah dengan menggunakan strategi seperti uji unit, review kode dan pemrograman pasangan
Setelah kesalahan telah diidentifikasi, maka perlu untuk benar-benar menemukan eror dalam kode. Pada saat ini, dapat berguna untuk melihat kode yang masuk dan menggunakan alat debugger yang berdiri sendiri atau komponen debugging dari lingkungan pengembangan terpadu (IDE). Bug di dalam fungsi adalah hal yang paling banyak ditemukan dan selalu diperbaiki terlebih dahulu. Dalam beberapa kasus, modul yang menyajikan masalah sudah jelas sedangkan baris kode itu sendiri tidak. Dalam hal ini, unit test seperti JUnit dan xUnit, yang memungkinkan programmer menjalankan fungsi spesifik dengan input tertentu dapat membantu dalam debugging.
Praktik standarnya adalah membuat “breakpoint” dan menjalankan program sampai titik breakpoint saat eksekusi program berhenti. Komponen debugging IDE biasanya menyediakan kemampuan pemrogram untuk melihat memori dan melihat variabel, menjalankan program ke breakpoint berikutnya, mengeksekusi hanya baris kode berikut, dan, dalam beberapa kasus, mengubah nilai variabel atau bahkan mengubah isi baris kode yang akan dieksekusi.
Seorang programmer menulis sebuah program komputer menggunakan bahasa pemrograman tertentu yang biasa disebut kode. kode digabungkan dengan unit pemrograman lainnya untuk membentuk produk perangkat lunak. Dalam sebuah program besar memiliki ribuan bahkan ratusan ribu baris kode. Di dunia ini tidak ada yang sempurna, termasuk juga seorang promrogram yang juga melakukan sebuah kesalahan ketika menulis kode. Kesalahan ini dikenal “bug”. Bug terbagi menjadi dua yakni, Syntax bugs dan Logical bug. Syntax bug adalah sebuah eror yang disebabkan kode yang dituliskan pemrogram, sedangkan logical bug adalah sebuah eror dimana program dapat berjalan tetapi tidak sesuai dengan harapan pemrogram.
Sebuah program yang komplek dibuat menggunakan banyak baris kode dan wajar jika sebuah program terdapat bug. Sala satu bagian terpenting dari pemrograman adalah melakukan tes terhadap program itu sendiri.
Debugging adalah sebuah metode yang dilakukan oleh para pemrogram dan pengembang perangkat lunak untuk mencari dan mengurangi bug, atau kerusakan di dalam sebuah program. Melakukan debugging berfungsi untuk membuat program bekerja sesuai dengan harapan. Debugging merupakan proses yang diperlukan hampir semua proses perangkat lunak, setiap bagian diuji hingga dapat berjalan bersama-sama. Adapun proses debugging akan menghasilkan dua hal, pertama penyebab akan ditemukan, dikoreksi, dan dihilangkan, dan kedua penyebab tidak akan ditemukan.
Jika kita melakukan debugging, berikut kegunaan dan manfaatnya
- Menghindari kesalahan dalam penulisan kode
- Mengetahui fungsi kode yang tidak terpakai
- Menjaga dan meningkatkan keamanan sistem
Definisi Debug:
Debugging adalah proses mendeteksi dan menghapus kesalahan dan potensi error yang ada (disebut juga ‘bug’) dalam kode perangkat lunak yang dapat menyebabkannya berperilaku tidak terduga (error) atau macet dan bahkan crash. Untuk mencegah pengoperasian perangkat lunak atau sistem yang salah, debugging digunakan untuk menemukan dan mengatasi bug atau kesalahan dalam program. Ketika berbagai subsistem atau modul digabungkan dengan erat dan kompleks, debugging menjadi lebih sulit karena setiap perubahan dalam satu modul dapat menyebabkan lebih banyak bug muncul di tempat lain. Terkadang dibutuhkan lebih banyak waktu untuk melakukan debug program daripada membuat kode programnya.
Deskripsi Debug:
Untuk men-debug sebuah program, pengguna harus memulai dengan sebuah masalah, mengisolasi kode program yang bermasalah, dan kemudian memperbaikinya. Pengguna program harus tahu bagaimana memperbaiki masalah karena pengetahuan tentang analisis masalah adalah pengetahuan yang harus dimiliki oleh programmer. Bila bug sudah diperbaiki, maka software tersebut siap digunakan. Alat debugging (disebut debugger) digunakan untuk mengidentifikasi kesalahan pembuatan kode program pada berbagai tahap pengembangan. Debugger digunakan untuk mereproduksi kondisi di mana kesalahan telah terjadi, kemudian memeriksa keadaan program pada saat itu dan menemukan penyebabnya. Programmer dapat melacak pelaksanaan program secara bertahap dengan mengevaluasi nilai variabel dan menghentikan eksekusi dimanapun eksekusi diperlukan untuk mendapatkan nilai variabel atau mengatur ulang variabel program. Beberapa paket bahasa pemrograman menyediakan debugger untuk memeriksa kesalahan kode saat program sedang ditulis atau dibuat.
Proses Debug:
-
Mereproduksi masalah.
-
Jelaskan bugnya. Cobalah untuk mendapatkan masukan sebanyak-banyaknya dari pengguna program untuk mendapatkan alasan yang spesifik dan jelas.
-
Tangkap snapshot program saat bug muncul. Cobalah untuk mendapatkan semua nilai variabel dan keadaan program pada saat itu.
-
Menganalisis snapshot berdasarkan keadaan dan tindakan. Berdasarkan hasil dari analisis itu, coba cari penyebab bugnya.
-
Perbaiki bug yang ada, dan periksa juga apakah ada bug baru yang muncul.
