Debugging: Pengertian, Sejarah, Fungsi, Jenis Bug, Langkah, dan Perbedaannya dengan Testing

Table of Contents
Pengertian Debugging
Debugging

Pengertian Debugging

Debugging adalah suatu proses mengidentifikasi dan menghapus bug atau potential error di dalam kode yang menyebabkan suatu program atau sistem tidak berjalan dengan semestinya. Suatu program biasanya dibuat dengan penulisan kode yang sangat rumit dan kompleks, sehingga satu kesalahan kecil saja akan berpengaruh besar pada keseluruhan program.

Bug biasanya muncul karena adanya kesalahan yang dibuat dari desain program dan source code yang digunakan oleh programmer. Dengan proses debugging ini, maka programmer atau developer akan memastikan bahwa sistem terbebas dari bug sehingga dapat berjalan sesuai dengan spesifikasi yang sudah ditetapkan atau diinginkan.

Sejarah Kata Debugging

Kata debugging ini berasal dari kata “bug” yang berarti serangga. Kata tersebut diambil dari kejadian yang cukup unik. Pada tanggal 9 September 1947 seorang ilmuwan komputer asal Amerika yang bernama Grace Brewster Murray Hopper, menemukan serangga yang terjebak di dalam relay komputer. Hal itu menyebabkan operasi dari komputer tersebut terhambat.

Setelah kejadian tersebut kata debugging menjadi kata yang sering digunakan. Pada tahun 1945 kata debugging digunakan dalam istilah penerbangan yang dapat diartikan menjadi pengujian mesin pesawat. Lalu pada tahun 1963 istilah debugging menjadi umum digunakan di kalangan programmer untuk mengistilahkan proses pencarian dan perbaikan kesalahan pada program atau sistem.

Fungsi Debugging

Berdasarkan proses yang dilakukan para programer saat melakukan Debugging, terdapat beberapa fungsi yang bisa dilakukan di antaranya,
1. Menghindarkan dari Kesalahan Penulisan Kode
Debugging yang pertama adalah untuk bisa menghindari terjadinya kesalahan saat penulisan kode suatu program. Contoh-contoh kesalahan penulisan itu seperti kode yang belum ditutup, kode yang salah ketik dan menyebabkan tidak berfungsi dan lain-lain.

2. Mengevaluasi Fungsi Program
Fungsi selanjutnya adalah untuk bisa melakukan evaluasi fungsi program mana yang tidak berjalan dengan baik. Bahkan bisa juga salah satu fungsi itu akan menerima pembaruan setelah melewati proses Debugging.

3. Meningkatkan Keamanan Pada Sistem
Dengan melakukan Debugging pada suatu program, maka bisa diketahui kelemahan-kelemahan kode yang dijalankan. Jika kelemahan itu tidak diketahui dengan segera maka bisa menurunkan tingkat keamanan. Sehingga Debugging akan mampu mengidentifikasi masalah itu dan kemudian meningkatkan keamanannya.

Jenis Bug

Bug pada perangkat lunak dapat berbentuk macam-macam. Sesuai karakteristiknya, berikut jenis-jenis bug menurut Jurnal Ilmiah Teknologi Informasi (JUTI) Volume 11 Nomor 2 yang ditulis Sugiyanto.
1. Infinite Loop
Loop bisa diartikan sebagai perulangan. Istilah tersebut sering kali digunakan dalam pemrograman. Penggunaan loop yang salah akan menyebabkan sebuah program menjalankan sebuah prosedur tanpa akhir (infinite).

2. Arithmatic Overflow atau Underflow
Overflow akan terjadi jika sebuah nilai hasil perhitungan lebih besar daripada nilai yang dapat ditampung oleh variabel penyimpanan. Sebaliknya, underflow akan terjadi jika proses kalkulasi menghasilkan nilai lebih kecil daripada nilai yang dapat ditampung oleh variabel penyimpanan.

3. Exceeding Array Bounds
Array merupakan variabel berdimensi yang memiliki indeks. Program dapat menjadi saat mengakses indeks di luar array yang ditentukan.

4. Access Violation
Access violation terjadi saat sebuah proses mencoba melewati batas yang diinginkan sistem. Misalnya, menulis sebuah nilai pada alamat memori, media, atau segmen yang diproteksi.

5. Memory Leak
Memory leak adalah penggunaan memori yang tidak diinginkan. Hal ini dapat terjadi karena program gagal melepaskan memori yang sudah tidak digunakan.

6. Stack Overflow atau Underflow
Stack merupakan struktur data yang menggunakan pendekatan Last in First Out (LIFO). Sebuah program dapat ditanamkan logika stack untuk suatu tujuan. Stack overflow atau underflow terjadi bila stack melebihi atau berada di bawah nilai yang diizinkan oleh program.

Langkah Debugging

Berikut langkah-langkah yang dapat diikuti untuk melakukan debugging di antaranya,
1. Melakukan identifikasi error
Hal yang pertama dilakukan adalah mengidentifikasi kesalahan atau error yang terjadi pada program. Hal ini dilakukan agar tidak membuang banyak waktu dan perbaikan tepat sasaran.

2. Menemukan sumber bug
Setelah identifikasi dilakukan dengan baik, selanjutnya adalah menemukan sumber atau lokasi dari kode yang error.

3. Menganalisis bug
Pada tahap ini, debugger harus menganalisis baris kode yang menimbulkan error atau kesalahan. Hal tersebut dilakukan untuk memastikan apakah bug tersebut akan mempengaruhi fungsi yang lain. Selain itu, analisis ini diperlukan untuk mengantisipasi meningkatnya jumlah bug.

4. Membuktikan hasil analisis
Setelah analisis selesai, seorang debugger perlu menemukan kemungkinan error yang lain pada program. Tahap ini dapat dilakukan secara otomatis menggunakan automated testing.

5. Memperbaiki bug
Tahap terakhir adalah memperbaiki bug yang sudah ditemukan. Setelah perbaikan selesai, program akan diperiksa kembali untuk memastikan tidak ada error yang terjadi setelah perbaikan.

Perbedaan Debugging dan Testing

Debugging menjadi proses lanjutan ketika suatu program sudah berjalan. Tapi sebenarnya ada juga salah satu proses yang sangat penting dalam pemrograman yaitu Testing. Ini juga memiliki kemiripan dengan Debugging meski sebenarnya berbeda.

Sebenarnya Testing dan Debugging merupakan kegiatan para programer yang sering dilakukan dan memiliki keterkaitan. Testing adalah proses yang dibentuk seperti keinginan programer untuk melakukan identifikasi masalah ketidakcocokan antara sistem informasi dengan hasil yang diinginkan.

Tujuan utama Testing yaitu untuk bisa memastikan kualitas dari suatu program dan mengujinya. Kemudian dinilai apakah hasil yang dicapai tersebut sesuai dengan keinginan dan apakah kualitasnya baik atau tidak.

Berikut perbedaan Debugging dengan Testing
1. Testing berangkat dari kondisi yang sudah diketahui dengan dibandingkan hasil yang diinginkan. Pelaksanaannya didasarkan jenis pengujian yang dibutuhkan. Tapi Debugging yaitu proses manual yang bertahap dan didasarkan pada jenis bug tertentu.
2. Testing menjadi proses yang bisa direncanakan sebelumnya dan mengidentifikasi kode yang gagal. Sementara itu Debugging merupakan proses yang tidak bisa direncanakan atau dipaksakan, dan merupakan proses untuk menemukan sebuah solusi dari kegagalan kode.
3. Testing tidak membutuhkan ilmu desain ketika menguji sistem. Sementara itu Debugging mewajibkan programer memiliki ilmu desain yang rinci ketika sedang melakukan Debugging.
4. Testing memungkinkan proses pengujian secara otomatis. Tapi pada Debugging pengujian tidak bisa dilakukan otomatis.

Dari berbagai sumber

Download

Aletheia Rabbani
Aletheia Rabbani “Barang siapa yang tidak mampu menahan lelahnya belajar, maka ia harus mampu menahan perihnya kebodohan” _ Imam As-Syafi’i

Post a Comment