Di episode kemarin kita belajar menangkap celah keamanan sebelum terlambat. Sekarang kita masuk ke aktivitas yang paling sering kamu lakukan sebagai programmer: debugging. Bedanya, kamu tidak sendirian. Kamu punya AI yang bisa membantu, tapi hanya kalau kamu tahu cara memakainya dengan benar. Episode 16 ini tentang debugging yang sistematis, supaya kamu berhenti menebak dan mulai menemukan.
Lima Langkah Debugging Sistematis
Debugging yang baik bukan bakat, melainkan urutan kerja. Lima langkah ini dipakai programmer profesional di mana-mana, dan AI justru paling membantu kalau kamu mengikutinya berurutan. Pertama, reproduksi: buat bug-nya muncul lagi dengan langkah yang jelas dan bisa diulang. Bug yang tidak bisa direproduksi tidak bisa diverifikasi perbaikannya. Kedua, isolasi: perkecil area masalah sampai kamu tahu bagian mana yang rusak dan bagian mana yang sehat. Ketiga, hipotesis: tebak penyebabnya berdasarkan bukti, satu tebakan dalam satu waktu. Keempat, perbaiki: ubah satu hal saja, lalu uji. Kelima, verifikasi: pastikan bug-nya hilang dan tidak ada yang ikut rusak.
Kebanyakan pemula melompat langsung ke langkah keempat: mengubah kode sambil berharap. AI membuat godaan ini sepuluh kali lebih besar, karena ia selalu siap menebak perbaikan dalam tiga detik. Disiplin lima langkah inilah yang membedakan programmer yang menyelesaikan bug dalam 15 menit dengan yang berkutat tiga jam untuk bug yang sama.
Memberi AI Laporan Bug yang Bagus
Kualitas jawaban AI ditentukan oleh kualitas laporan bug yang kamu berikan. Laporan yang buruk berbunyi: "error nih benerin". AI tidak bisa berbuat banyak dengan itu selain menebak, dan tebakannya sering salah sasaran. Laporan yang bagus berisi empat bahan.
Pertama, pesan error lengkap, disalin utuh jangan dipotong, karena baris yang kamu anggap tidak penting sering kali justru petunjuknya. Kedua, langkah reproduksi: "klik X, isi Y, tekan Z, lalu muncul error", supaya AI paham konteks kejadiannya. Ketiga, kode yang relevan: file dan fungsi yang terlibat, bukan seluruh project. Keempat, yang sudah kamu coba: supaya AI tidak mengulang jalan buntu yang sama. Empat bahan ini mengubah AI dari penebak menjadi detektif yang bekerja dengan bukti.
Berhenti dan tebak dulu! Kamu dapat error "undefined is not a function" dan langsung menempelkannya ke AI tanpa membaca. AI menjawab dengan perbaikan yang salah total. Apa kesalahan pertamamu?
Contoh Sesi Debugging Nyata
Bayangkan bug umum ini: data produk tidak muncul di halaman, padahal API-nya jalan saat dicoba manual. Berikut cara melaporkannya ke AI dengan empat bahan yang benar. Perhatikan strukturnya sebelum meniru.
Bantu saya debug dengan sistematis, satu hipotesis dalam satu waktu.
Bug: daftar produk tidak muncul di halaman /produk (kosong melompong),
padahal API /api/produk mengembalikan data normal saat dicoba manual.
Langkah reproduksi:
1. Buka halaman /produk, tunggu 5 detik, daftar tetap kosong.
2. Tidak ada error merah di console, hanya warning biasa.
Kode yang relevan:
[fungsi fetchProduk() dan komponen DaftarProduk ditempel di sini]
Yang sudah saya coba:
- Mengecek network tab: request ke /api/produk status 200 dan ada datanya.
- Jadi masalahnya kemungkinan di sisi tampilan, bukan di API.
Mulai dari hipotesis yang paling mungkin menurut data di atas.
Lihat apa yang terjadi di prompt itu. Kamu sudah melakukan separuh debugging sendiri: memastikan API sehat lewat network tab. AI tidak perlu menebak-nebak apakah backend-nya rusak. Ia bisa langsung fokus ke hipotesis tampilan: salah nama properti, state tidak ter-update, atau komponen tidak me-render ulang. Semakin banyak bukti yang kamu bawa, semakin sempit ruang tebak AI, dan semakin cepat bug selesai.
Dan jangan lupa langkah kelima: verifikasi. Setelah AI memberikan perbaikan, uji lagi dengan langkah reproduksi yang sama persis dari awal. Kalau bug-nya hilang, uji juga hal di sekitarnya: apakah daftar produk muncul tapi tombol hapusnya ikut rusak? Perbaikan yang merusak hal lain bukanlah perbaikan, melainkan bug baru yang dibungkus rapi. Verifikasi dua arah inilah yang membuat debugging sistematis benar-benar tuntas, bukan sekadar "kayaknya sudah benar".
Teknik Isolasi: Perkecil Area Masalah
Isolasi adalah langkah yang paling sering dilewatkan tapi paling menghemat waktu. Idenya sederhana: belah masalah jadi dua, buang separuh yang sehat, ulangi. Praktiknya ada tiga teknik yang gampang. Pertama, console.log strategis: cetak data di titik-titik kunci untuk melihat di mana datanya masih benar dan di mana mulai rusak. Kedua, matikan sementara: nonaktifkan bagian kode yang dicurigai dengan komentar, lalu lihat apakah bug-nya hilang. Kalau hilang, pelakunya ada di bagian itu. Ketiga, reproduksi minimal: buat versi super kecil dari masalahnya di file terpisah. Kalau bug-nya muncul di versi kecil itu, kamu tahu masalahnya bukan di kerumitan project-mu.
Teknik ini juga melindungimu dari jebakan paling mahal: memperbaiki yang tidak rusak. Tanpa isolasi, AI bisa meyakinkanmu untuk merombak file yang sehat sementara pelaku sebenarnya duduk tenang di file lain. Setiap kali AI mengusulkan perubahan besar, tanya dulu: "bukti apa yang menunjukkan bagian inilah penyebabnya?" Kalau ia tidak bisa menjawab, kembali ke isolasi.
Contoh isolasi yang konkret: tombol "Simpan" tidak menyimpan data. Daripada langsung bertanya ke AI, cetak dulu datanya tepat sebelum dikirim dengan console.log(data). Kalau datanya benar, masalahnya ada di pengiriman atau backend. Kalau datanya kosong atau salah, masalahnya ada di form atau state. Satu baris console.log itu membelah masalah jadi dua dalam sepuluh detik, dan separuh tebakan AI langsung gugur. Debugging yang cepat hampir selalu dimulai dari keberanian membuang separuh kemungkinan.
Kuis: Mana laporan bug yang paling membantu AI menyelesaikan masalah?
Jebakan: Membiarkan AI Menebak Tanpa Data
Jebakan terbesar debugging bareng AI bukanlah AI yang salah, melainkan kamu yang memberinya izin menebak. Polanya selalu sama: error muncul, kamu panik, kamu tempel error mentah-mentah, AI menjawab dengan percaya diri, kamu terapkan, error-nya berubah jadi error lain, ulangi lima kali sampai kodenya berantakan dan bug aslinya terkubur di bawah tumpukan "perbaikan". Programmer menyebutnya debugging sambil lalu, dan ia menghabiskan waktu lebih banyak daripada debugging beneran.
Ada tiga rambu untuk menghindarinya. Pertama, jangan pernah menerapkan perbaikan AI tanpa memahami kenapa ia mengusulkan itu. Minta dia menjelaskan logikanya dalam dua kalimat. Kedua, satu perubahan dalam satu waktu. Kalau AI mengusulkan tiga perubahan sekaligus, uji satu per satu supaya kamu tahu mana yang benar-benar menyelesaikan. Ketiga, kalau sudah dua putaran AI salah tebak, berhenti. Kembali ke langkah isolasi dan kumpulkan bukti baru, jangan memaksa putaran ketiga dengan data yang sama. AI yang hebat pun tidak bisa menemukan apa yang tidak kamu berikan.
Latihan Minggu Ini
Latihanmu minggu ini tiga langkah. Pertama, cari satu bug asli di aplikasimu, yang kecil pun tidak apa-apa. Kedua, tulis laporan bug empat bahan di atas di catatanmu sebelum bertanya ke AI: error lengkap, langkah reproduksi, kode relevan, yang sudah dicoba. Ketiga, lakukan isolasi dulu sendiri minimal 10 menit dengan teknik belah dua, baru libatkan AI dengan prompt yang strukturnya seperti contoh. Catat berapa putaran yang dibutuhkan sampai selesai, lalu bandingkan dengan kebiasaan lamamu yang langsung tempel error. Selisihnya adalah harga sebuah laporan yang bagus.
Di episode 17 kita membahas hal yang diam-diam menguras kantong dan kuota: token, dengan judul "Optimasi Token: Biar Nggak Boncos". Karena debugging yang sistematis itu hebat, tapi akan lebih hebat kalau tidak menghabiskan jatah AI-mu dalam seminggu. Sampai jumpa besok jam 21:00. Bakar semangat kodingmu seperti api kompor.
Diskusi & Komentar 0
Punya tanggapan, pertanyaan, atau tips seputar tutorial ini? Tulis komentar kamu di bawah!
Jadilah yang pertama membuka obrolan dan berbagi pandangan seputar tutorial resep kode ini.
Tulis Komentar
Komentar menggunakan akun Google. Harap berkomentar dengan santun dan berbobot.