Cara Review dan Perbaiki Kode Buatan AI Meski Bukan Programmer
8 menit baca · Diperbarui 2026-07-22
Agent-nya bilang selesai. Kodenya jalan, nggak ada error merah, tampilannya sesuai. Gampang banget buat langsung bilang 'oke, lanjut'. Masalahnya, 'jalan' dan 'benar' itu dua hal beda. Kode bisa jalan mulus di skenario yang kebetulan kamu coba, lalu diam-diam ngerusak data begitu ada input yang nggak kamu duga.
Kabar baiknya: kamu nggak perlu jago nulis kode buat me-review kode. Review itu soal ngecek maksud dan alur, bukan hafal sintaks. Panduan ini ngasih langkah konkret buat berhenti asal-terima, dari baca alur sampai lapor bug ke agent dengan konteks yang bener. Kalau kamu masih baru banget, pengantar Apps Script untuk pemula ngasih fondasinya dulu.
Kenapa 'jalan' belum berarti 'benar'
AI coding agent dioptimalkan buat bikin sesuatu yang kelihatan selesai. Kamu yang harus mastiin itu selesai buat kasus kamu. Beberapa hal yang lolos dari 'kelihatan jalan':
- Data rusak diam-diam. Angka kesimpan jadi teks, tanggal ke-parse salah, baris ketimpa. Nggak ada error, tapi laporanmu ngaco.
- Ambruk di edge case. Jalan buat 1 baris, mati buat 5.000 baris atau input kosong.
- Lambat sampai kena batas. Di Google Apps Script ada batas eksekusi sekitar 6 menit di akun gratis; kode boros bakal mentok.
- Lubang yang nggak kelihatan. Web App di-deploy akses 'Anyone' tanpa mikir siapa yang boleh nulis data.
1. Baca alur, bukan tiap baris
Kamu nggak harus paham tiap baris. Yang perlu kamu jawab cuma tiga: apa yang masuk (input), apa yang keluar (output), dan apa yang berubah. Buat aplikasi Sheet, 'apa yang berubah' biasanya berarti baris mana yang ditulis dan kolom mana yang diubah.
Telusuri satu skenario paling normal dari awal sampai akhir. Misal 'user isi form, klik Simpan'. Ikuti: datanya ditangkap di mana, dikirim ke fungsi apa, ditulis ke tab mana. Kalau kamu nggak bisa nyeritain alurnya dalam satu kalimat, itu sinyal kamu belum ngerti kodenya, dan itu wajar. Minta agent jelasin (langkah 3).
2. Cek edge case
Happy path hampir selalu jalan. Bug ngumpet di pinggiran. Buat tiap fungsi yang nyentuh data, tanya: gimana kalau...
- Input kosong. User klik Simpan tanpa isi apa-apa.
- Angka dianggap teks. '007' atau '1.000' bisa berubah makna waktu masuk Sheet.
- Data dobel. NIK atau kode yang sama diinput dua kali, ke-detect nggak?
- Dua orang barengan. Dua user klik Simpan di detik yang sama, datanya tabrakan nggak? Di GAS, penulisan bareng harus dibungkus LockService biar nggak saling timpa.
- Data banyak. Jalan buat 10 baris, tapi 10.000 baris mentok batas 6 menit? Lihat langit-langitnya di [batas kuota Apps Script](/panduan/batas-kuota-google-apps-script). Kalau prosesnya berat, sering solusinya dipecah pakai [trigger terjadwal](/panduan/jadwalkan-script-google-apps-script-trigger).
- Diakses anonim. Web App yang di-deploy 'Anyone' bikin Session.getActiveUser() balik kosong. Kalau kodenya ngandelin email user buat nyimpen data, bakal kosong semua.
Kamu nggak perlu ngetes semua sekaligus. Ambil 2-3 edge case yang paling mungkin kejadian di aplikasimu, lalu uji itu dulu (langkah 4).
3. Minta AI jelaskan kodenya
Ini senjata paling ampuh buat non-programmer. Agent yang nulis kode juga bisa jelasin kode. Bedanya, sekarang kamu nge-judge penjelasannya, bukan kodenya. Pakai pertanyaan yang maksa dia spesifik:
- "Jelaskan fungsi ini pakai bahasa awam, per langkah. Anggap aku nggak bisa coding."
- "Kalau input-nya kosong, apa yang terjadi baris per baris?"
- "Di mana kode ini paling mungkin gagal? Sebutin 3 skenario konkret."
- "Apa yang terjadi kalau dua user Simpan di waktu yang sama?"
- "Kode ini baca data per sel di dalam loop nggak? Kalau iya, kenapa itu masalah?"
Jawaban yang bagus bakal cocok sama maksudmu. Jawaban yang muter atau ngeles ('secara umum sudah aman') itu sinyal. Jangan puas sama 'sudah benar'; minta dia buktiin dengan skenario konkret.
4. Uji manual, coba bikin rusak
Baca doang nggak cukup. Jalanin. Dan jangan cuma uji yang gampang; coba jebol sendiri sebelum user beneran nemu bug-nya.
- Uji happy path dulu. Isi data normal, Simpan, cek hasilnya langsung di Sheet. Bener nggak baris & kolomnya?
- Uji edge case dari langkah 2. Kosongin input, masukin data dobel, tempel teks aneh. Lihat apa yang beneran tersimpan.
- Uji sebagai orang lain. Buat Web App, buka di jendela incognito (nggak login). Ini niru user anonim, tempat Session.getActiveUser() kosong.
- Uji dari HP kalau targetnya HP. Form yang mulus di laptop bisa berantakan di layar kecil.
Selalu cek hasil akhirnya di Sheet, bukan cuma percaya notifikasi 'Berhasil disimpan'. Notifikasi cuma bilang kode selesai jalan, bukan bilang datanya bener. Makna akses 'Anyone' pas deploy dibahas di cara membuat Web App dari Spreadsheet; kalau input-nya dari HP, form input dari HP ngebahas polanya.
5. Lapor bug ke agent dengan konteks
Nemu yang salah? Cara kamu ngelapor nentuin seberapa cepat itu kebenerin. Lapor 'error, tolong betulin' bikin agent nebak-nebak dan sering malah ngerusak bagian lain. Kasih dia konteks biar dia nggak usah nebak.
Bug report yang bagus punya empat bagian:
- Apa yang kamu lakukan. Langkah persisnya: 'isi form, kolom Nama dibiarkan kosong, klik Simpan'.
- Apa yang kamu harapkan. 'Harusnya muncul peringatan Nama wajib diisi'.
- Apa yang terjadi. 'Malah tersimpan baris kosong di tab Data'.
- Bukti. Pesan error lengkap (jangan cuma 'ada error'), plus nama fungsi atau potongan kode yang kamu curigai.
Contoh: sinyal 'loop lambat' yang gampang dikenali
Salah satu pola yang paling sering diproduksi AI di GAS adalah baca-tulis Sheet per sel di dalam loop. Ini jalan buat data kecil, lalu mentok batas 6 menit begitu datanya banyak. Kamu nggak perlu bisa nulisnya buat ngenalinnya: cari getValue() atau setValue() yang ada di dalam for.
function prosesData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
var lastRow = sheet.getLastRow();
// LAMBAT: satu panggilan ke Sheet tiap putaran loop
for (var i = 2; i <= lastRow; i++) {
var nama = sheet.getRange(i, 1).getValue();
// ... proses nama
}
}Minta agent ubah jadi baca borongan sekali pakai getValues(), proses di memori, lalu (kalau perlu nulis balik) tulis sekali pakai setValues():
function prosesData() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
var lastRow = sheet.getLastRow();
if (lastRow < 2) return; // belum ada data di bawah header
// CEPAT: baca borongan sekali ke memori
var data = sheet.getRange(2, 1, lastRow - 1, 1).getValues();
for (var i = 0; i < data.length; i++) {
var nama = data[i][0];
// ... proses nama
}
}Perhatiin baris if (lastRow < 2) return; di versi cepat. Itu penjaga edge case 'Sheet masih kosong' yang kalau nggak ada bakal bikin error. Pola baca-tulis borongan lengkapnya ada di baca & tulis data Sheet. Dan buat penulisan yang bisa dipicu banyak user bareng, minta agent bungkus pakai LockService:
function simpanData(baris) {
var lock = LockService.getScriptLock();
lock.waitLock(30000); // antre maks 30 detik kalau ada yang lagi nulis
try {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Data');
sheet.appendRow(baris);
} finally {
lock.releaseLock(); // selalu dilepas, sukses atau gagal
}
}Review terbaik: cegah dari hulu
Semua langkah di atas itu jaring pengaman. Jaring paling efektif dipasang sebelum agent nulis satu baris pun: kasih dia PRD yang jelas. Agent bikin bug paling banyak waktu dia harus nebak, yaitu tab apa, kolom apa, aturan validasi apa, dan batasan GAS apa yang harus dipatuhi. PRD ngilangin tebakan itu.
Kalau kamu bikin aplikasi Google Apps Script, PRD mode Web GAS ngatur strukturnya di depan: tab Spreadsheet sebagai skema data, daftar fungsi server, dan konvensi sadar-batasan GAS (baca-tulis borongan, LockService, google.script.run, batas 6 menit). Agent yang dikasih konteks ini jauh lebih jarang naruh getValue() di dalam loop, jadi kerjaan review-mu ikut menyusut.
Baru ke PRD? Mulai dari apa itu PRD, lalu cara membuat PRD untuk aplikasi dan cara menjelaskan ide aplikasi ke AI.
Buat PRD Web GAS gratis di Skematik →Checklist singkat
- 'Jalan' bukan 'benar'. Selalu cek hasil di Sheet, bukan cuma notifikasi.
- Baca alur: apa input, apa output, apa yang berubah.
- Uji 2-3 edge case paling mungkin: kosong, dobel, banyak, anonim, barengan.
- Minta agent jelasin dan buktiin; jangan terima 'sudah aman' mentah-mentah.
- Lapor bug pakai 4 bagian: aksi, harapan, kenyataan, bukti.
Mau ngukur seberapa jauh hasil kamu dibanding yang udah rapi? Intip kumpulan contoh aplikasi jadi di bawah ini sebagai patokan.
Lihat contoh PRD yang sudah jadi →