Cara Pakai AI untuk Debug Kode Lebih Cepat

Developer fokus men-debug kode dengan melihat error di layar

Written by

in

Debugging adalah aktivitas yang ironisnya paling banyak memakan waktu seorang developer, tapi paling sedikit dibahas secara serius. Kebanyakan tutorial fokus ke “cara menulis kode yang baru” dan skip ke bagian “oke, kalau ada error bagaimana?”

Di era AI, debugging punya dimensi baru. Bukan karena AI bisa solve semua bug — karena tidak bisa. Tapi AI bisa jadi sparring partner yang sangat efektif kalau kamu tau cara menggunakannya dengan benar.

Artikel ini adalah tentang teknik yang konkret dan bisa langsung kamu coba.


Kenapa Debugging dengan AI Sering Tidak Efektif

Sebelum bahas teknik yang bagus, saya mau bahas dulu kenapa banyak orang gagal dapat manfaat maksimal dari AI saat debugging.

Masalah utama: Prompt yang terlalu generik.

“Kode ini error, tolong fix” adalah prompt yang hampir selalu menghasilkan output yang tidak useful atau bahkan menyesatkan.

AI butuh konteks. Tanpa konteks yang cukup, AI akan guess — dan guessing-nya bisa sangat confident tapi salah.


Framework Debugging dengan AI: CERA

Saya pakai framework sederhana yang saya sebut CERA untuk debugging session dengan AI:

  • Context — apa yang kamu build, stack apa yang dipakai
  • Error — error message lengkap, bukan cuma ringkasan
  • Reproduce — langkah atau kondisi yang membuat error muncul
  • Attempt — apa yang sudah kamu coba

Kalau prompt kamu mencakup keempat elemen ini, response AI akan jauh lebih tepat sasaran.

Contoh Prompt yang Buruk vs Bagus

Buruk:

> “Kenapa function saya error?”

Bagus:

> “Saya building REST API dengan Express.js dan MongoDB. Function getUserById ini melempar error ketika id yang dikirim adalah string yang valid tapi tidak ada di database. Error message: TypeError: Cannot read properties of null (reading 'email'). Saya sudah coba check apakah req.params.id valid dan formatnya benar. Ini kodenya: [kode]. Apa yang salah dan bagaimana fix yang tepat?”

Perbedaannya bukan hanya panjang prompt — tapi informasi yang relevan yang kamu sertakan.


Teknik 1: Paste Error Message Lengkap, Bukan Ringkasan

Ini yang paling sering dilakukan salah. Orang sering ringkas error message karena merasa “panjang dan tidak relevan”.

Jangan lakukan itu. Stack trace yang panjang justru punya informasi yang sangat berharga — AI bisa pinpoint baris kode mana yang jadi sumber masalah dari stack trace yang lengkap.

Kalau error message-nya dalam bahasa yang kamu tidak familiar (misal kamu pakai Rust tapi tidak terlalu dalam), AI bisa translate makna error-nya ke dalam bahasa yang lebih mudah dipahami.

Ini error yang saya dapat:

TypeError: Cannot read properties of null (reading 'email')

at getUserProfile (src/controllers/userController.js:45:28)

at Layer.handle [as handle_request] (node_modules/express/lib/router/layer.js:95:5)

at next (node_modules/express/lib/router/route.js:137:13)

...

Kode di line 45:

const email = user.email; // user ternyata null

Dengan konteks ini, AI bisa langsung identifikasi bahwa masalahnya adalah kurangnya null check sebelum akses property.


Teknik 2: Minta AI Jelaskan, Bukan Cuma Fix

Ini penting banget kalau kamu mau belajar, bukan cuma “kode jalan lagi”.

Setelah dapat fix dari AI, selalu tanya: “Tolong jelaskan kenapa fix ini benar dan apa yang menyebabkan bug ini.”

Ini mengubah debugging session dari “tukang servis” menjadi “sesi belajar”. Dan kamu jadi lebih prepared untuk tidak membuat bug yang sama lagi.

Contoh follow-up prompt:

> “Okay, fix-nya masuk akal. Tapi bisa kamu jelaskan secara lebih dalam kenapa kondisi null ini bisa terjadi? Apakah ini perilaku normal MongoDB ketika document tidak ditemukan, atau ada sesuatu yang salah di query-nya?”


Teknik 3: Pakai AI sebagai “Rubber Duck” yang Bisa Balas

Rubber duck debugging adalah teknik klasik: jelaskan masalahmu ke bebek karet (atau objek apapun), dan sering kali dalam proses menjelaskan, kamu sendiri nemuin jawabannya.

AI adalah rubber duck versi upgrade — yang bisa balas dan ajukan pertanyaan.

Cara pakainya:

  1. Jelaskan problemmu ke AI seolah AI adalah teman yang tidak tau konteksnya
  2. Dalam proses mengetik penjelasan, sering kali kamu sudah menemukan bug-nya sebelum AI jawab
  3. Kalau belum ketemu, jawaban AI bisa jadi petunjuk berikutnya

Ini teknik yang sounds simple tapi sangat efektif, terutama untuk bug yang complex dan tidak obvious.


Teknik 4: Minta AI Review Asumsi Kamu

Debugging yang lama sering terjadi karena kita terjebak dalam asumsi yang salah. Kita yakin bahwa bagian A sudah benar, padahal justru di sanalah bug-nya.

AI bisa bantu break asumsi ini dengan tanya hal yang kita tidak tanya ke diri sendiri.

Prompt yang berguna:

> “Saya sudah debug selama 2 jam dan yakin masalahnya ada di layer database query. Tapi tetap tidak ketemu. Berdasarkan deskripsi berikut [deskripsi], asumsi apa yang mungkin salah dari cara saya framing masalahnya?”

AI mungkin akan suggest: “Pernahkah kamu periksa apakah data yang masuk ke function sudah dalam format yang benar sebelum query dijalankan?” — dan itu bisa jadi eureka moment.


Teknik 5: Binary Search dengan Bantuan AI

Untuk bug yang susah di-isolate di codebase yang besar, binary search adalah teknik yang efektif: kurangi scope masalah terus sampai nemuin titik spesifiknya.

AI bisa bantu di sini dengan cara:

  1. Kamu ceritakan symptom-nya
  2. AI suggest “component mana yang paling mungkin jadi sumber masalah”
  3. Kamu isolate component itu dan test
  4. Laporan hasilnya ke AI
  5. Repeat sampai nemuin bug

Ini jauh lebih efektif dari review kode baris per baris secara acak.


Teknik 6: Pakai AI untuk Generate Test Cases

Satu cara terbaik untuk debug adalah: tulis test yang reproduce bug-nya. Kalau kamu bisa reproduce secara reliable, setengah pekerjaan debugging sudah selesai.

Tapi menulis test cases itu kadang butuh waktu, terutama untuk edge cases yang tidak obvious.

Minta AI:

> “Berdasarkan fungsi ini [kode] dan bug yang terjadi ketika input-nya [kondisi], tolong generate test cases yang akan reproduce bug ini dan juga test cases untuk edge cases yang mungkin tidak ketahuan.”

AI sangat bagus untuk generate test cases — ini salah satu penggunaannya yang paling underrated.


Hal yang AI Tidak Bisa Lakukan dalam Debugging

Biar seimbang, ini batasan AI yang perlu kamu tau:

AI tidak bisa akses sistem kamu secara langsung. Dia tidak bisa lihat log production, tidak bisa inspect memori runtime, tidak bisa check state database kamu. Semua konteks harus kamu bawa ke AI, bukan sebaliknya.

AI bisa confident tapi salah. Terutama untuk bug yang melibatkan race condition, timing issue, atau behavior yang sangat environment-specific — AI mungkin suggest solusi yang kedengarannya masuk akal tapi tidak nyentuh root cause-nya. Selalu verify fix-nya sebelum commit.

AI tidak tau business context kamu. Bug yang berhubungan dengan logic bisnis yang spesifik butuh kamu yang jelaskan “kenapa seharusnya begini, bukan begitu.” AI tidak punya pengetahuan itu kecuali kamu provide.


Quick Reference: Template Prompt Debugging

Simpan ini:

Context: [Saya sedang membangun ___. Stack yang dipakai: ___]

Problem: [Deskripsi singkat masalah]

Error message (lengkap):

[paste error message dan stack trace lengkap]

Kode yang relevan:

[paste kode]

Yang sudah saya coba:

  • [Attempt 1]
  • [Attempt 2]

Pertanyaan: [Apa yang ingin kamu tau?]

Template ini mungkin terasa berlebihan untuk bug kecil. Tapi untuk bug yang membuat kamu stuck lebih dari 15 menit, ini akan menghemat lebih banyak waktu dari yang kamu bayangkan.


Stuck di bug yang tidak ketemu-ketemu? Atau mau ngobrol soal strategi debugging yang lebih sistematis untuk project kamu? Hubungi mafadev — dua kepala lebih baik dari satu, apalagi kalau salah satunya suka debugging.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *