Dalam ilmu komputer dan rekayasa perangkat lunak, pengawakutuan (bahasa Inggris: debugging) adalah metode sistematis yang dilakukan oleh para pemrogram dan pengembang untuk menganalisis alur kerja program, melacak, menemukan, dan mengurangi kutu (bug) atau cacat di dalam sebuah perangkat lunak maupun perangkat keras komputer agar dapat beroperasi sesuai dengan spesifikasi yang diharapkan.[1]

Pengawakutuan merupakan proses yang dinamis dan cenderung rumit ketika beberapa subsistem di dalam arsitektur perangkat keras atau perangkat lunak terikat secara ketat (tightly coupled). Dalam kondisi tersebut, sebuah perubahan kecil di satu sisi memicu munculnya kutu baru atau efek samping tak terduga di subsistem lainnya. Selain pada aplikasi komputer, pengawakutuan juga sangat krusial dalam pengembangan sistem tertanam (embedded systems) untuk mendeteksi kesalahan sinkronisasi sinyal, interupsi, atau kegagalan protokol komunikasi perangkat keras.

Tahapan pengawakutuan

sunting

Proses pengawakutuan umumnya melibatkan beberapa tahapan terstruktur berikut:

  1. Identifikasi Galat: Menemukan atau menerima laporan mengenai perilaku program yang tidak normal atau tidak sesuai dengan spesifikasi.
  2. Isolasi dan Lokalisasi: Memisahkan kode atau subsistem yang bermasalah dari keseluruhan sistem untuk menentukan lokasi persis di mana kutu tersebut berada.
  3. Analisis Penyebab Akar (Root Cause Analysis): Memeriksa nilai variabel, logika algoritme, atau status memori untuk memahami mengapa galat tersebut dapat terjadi.
  4. Penerapan Perbaikan: Mengubah kode program atau konfigurasi perangkat keras untuk menyelesaikan masalah tanpa merusak fungsi yang sudah berjalan.
  5. Pengujian Regresi: Melakukan pengujian perangkat lunak ulang untuk memastikan bahwa perbaikan yang diterapkan telah berhasil dan tidak menimbulkan kutu baru di tempat lain.

Teknik dan strategi

sunting

Terdapat berbagai teknik yang sering digunakan oleh pengembang untuk melakukan pengawakutuan, bergantung pada kompleksitas masalah yang dihadapi:

  • Pengawakutuan Cetak (Print debugging): Teknik paling mendasar dengan menyisipkan perintah cetak teks (seperti fungsi cetak log atau keluaran serial) di titik-titik tertentu untuk memantau aliran eksekusi dan nilai variabel secara langsung saat program berjalan.
  • Pengawakutuan Jarak Jauh (Remote debugging): Proses memeriksa jalannya program yang dieksekusi pada sistem atau perangkat eksternal yang berbeda (misalnya dari komputer pengembangan ke papan mikrokontroler atau peladen jarak jauh).
  • Analisis Pascakematian (Post-mortem debugging): Pengawakutuan yang dilakukan setelah program mengalami kegagalan fatal (crash) dengan menganalisis berkas log atau salinan memori core (core dump) yang ditinggalkan oleh sistem.

Peralatan

sunting

Alat bantu pengawakutuan bervariasi dalam hal kompleksitas, mulai dari pelacakan manual hingga penggunaan perangkat lunak dan perangkat keras khusus.

Pengawakutu (Debugger)

sunting

Kebanyakan bahasa pemrograman dan lingkungan pengembangan terpadu (IDE) modern telah menyediakan pengawakutu (debugger) internal. Alat ini memungkinkan pemrogram mengendalikan eksekusi program secara interaktif melalui fitur-fitur seperti:

  • Titik henti (Breakpoint): Menghentikan jalannya program secara sementara pada baris kode tertentu agar pemrogram dapat memeriksa kondisi memori saat itu.
  • Eksekusi bertahap (Stepping): Menjalankan kode baris demi baris (baik melompati fungsi atau masuk ke dalam fungsi) untuk melihat alur kerja algoritme secara mendetail.
  • Pemantau variabel (Watch expression): Mengamati perubahan nilai dari suatu variabel atau ekspresi secara langsung selama program berjalan.

Peralatan Perangkat Keras

sunting

Untuk pengawakutuan sistem tingkat rendah, perangkat keras komputer, dan sistem tertanam, pengembang memerlukan bantuan alat fisik untuk memeriksa sinyal elektris dan data biner pada jalur bus komunikasi data:

Peralatan Perangkat Keras Fungsi Utama dalam Pengawakutuan
Penganalisis logika (Logic analyzer) Menangkap dan menampilkan sinyal digital dari sirkuit elektronik untuk menganalisis kebenaran protokol komunikasi data.
Oskiloskop Mengukur dan menampilkan grafik tegangan sinyal listrik untuk mendeteksi adanya derau, penurunan daya, atau cacat fisik pada sirkuit hardware.
Emulator Di-Dalam-Sirkuit (In-Circuit Emulator / ICE) Perangkat keras pembantu yang menjembatani mikroprosesor target dengan komputer pengembang untuk mensimulasikan dan mengendalikan perilaku prosesor secara langsung.

Lihat pula

sunting

Referensi

sunting
  1. ^ (Indonesia) Glosarium Pusat Bahasa Departemen Pendidikan Nasional Republik Indonesia "Entri lema pengawakutuan". Diakses tanggal 2020-03-27.

📚 Artikel Terkait di Wikipedia

Politeknik Negeri Bandung

Tinggi Lab Komunikasi Radio alat-alat lain: Spectrum Analyzer, Wave Analyzer. Impedance Analyzer, Scale Network, Signal Generator, dll Jurusan Administrasi

Protokol kriptografi

Protokol kriptografi bentuk Analyzer (CPSA) [10] Pengetahuan dalam protokol keamanan (ciuman) [11] Maude-NRL Protocol Analyzer (Maude-NPA) [12] ProVerif

Germanium

(1970). Principles and practice of X-ray spectrometric analysis, Bab 5.4 – Analyzer crystals, Tabel 5.1, hlm. 123; Plenum Press Shen, C.; Trypiniotis, T.;