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

ChatGPT

membuat daftar referensi, membuat draf pertama, mengatasi persamaan, debugging, dan bimbingan belajar. Menurut kutipan CEO OpenAI Sam Altman oleh The

PlayStation 2

(SIF2), digunakan untuk kompatibilitas mundur dengan permainan PS1 dan debugging Performa titik mengambang: 6,2 GFLOPS (titik mengambang 32-bit presisi

Grace Hopper

sehari-hari. Hopper juga dianggap sebagai tokoh yang memopulerkan istilah "debugging" untuk memperbaiki gangguan pada komputer (terinspirasi dari ngengat yang

Go (bahasa pemrograman)

memanggil kode generator Hal ini juga termasuk profiling dan dukungan debugging, runtime instrumentasi (untuk, misalnya, melacak pengumpulan sampah jeda)

Bahasa pemrograman

eksekusi program dihentikan saat itu juga. Pendekatan ini mempermudah proses debugging, tetapi memiliki kelemahan performa eksekusi yang 10 hingga 100 kali lebih

Menulis

John F. (2017). Software Development, Design and Coding: With Patterns, Debugging, Unit Testing, and Refactoring (Edisi 2nd). Apress. doi:10.1007/978-1-4842-3153-1

Betty Holberton

Holberton merupakan penemu dari breakpoints dalam proses Pengawakutuan (debugging) komputer. Holberton lahir dengan nama Frances Elizabeth Snyder di Philadelphia

Pemrograman

melibatkan: Pembuatan prototipe (Prototyping) Pengodean (Coding) Pendebugan (Debugging) Dokumentasi Integrasi sistem Pemeliharaan Analisis kebutuhan Arsitektur