AI bisa menulis kode yang terlihat meyakinkan. Nama variabelnya rapi, strukturnya bersih, komentarnya percaya diri, dan sekilas seperti hasil developer yang tahu apa yang dilakukan.
Masalahnya, kode yang terlihat rapi belum tentu benar. Ia bisa salah memahami konteks, mengubah behavior yang tidak diminta, menambah dependency tidak perlu, atau membuat solusi yang jalan di contoh kecil tapi rapuh di production.
Di dunia konten, orang sering menyebut output generik dan dangkal sebagai AI slop. Di coding, bentuknya sedikit berbeda: kode terlihat selesai, tapi kualitasnya tidak tahan ketika dibaca lebih dekat.
Ciri-ciri kode AI yang perlu dicurigai
Beberapa tanda umum:
- perubahan terlalu luas untuk masalah kecil
- ada abstraction baru yang tidak diminta
- error handling terlalu umum
- validasi input dangkal
- test hanya mengecek happy path
- nama fungsi terdengar bagus tapi behavior tidak jelas
- komentar menjelaskan hal yang sudah jelas
- dependency baru muncul tanpa alasan kuat
- pola kode berbeda dari project
- kode mengabaikan edge case yang sudah ada
Tanda-tanda ini bukan berarti output AI pasti buruk. Tapi itu sinyal untuk membaca lebih pelan.
Review behavior, bukan hanya syntax
Lint dan build bisa lolos, tapi behavior tetap salah.
Saat review, tanyakan:
- Apa masalah awalnya?
- Perubahan ini menyelesaikan masalah itu atau hanya menutupi gejala?
- Behavior lama apa yang bisa berubah?
- Input aneh apa yang belum dicoba?
- Kalau fungsi gagal, apa yang terjadi?
- Apakah user mendapat pesan error yang masuk akal?
- Apakah data bisa hilang?
AI sering bagus membuat kode yang valid secara syntax. Bagian yang tetap harus dijaga manusia adalah maksud dan konsekuensi.
Cek scope perubahan
Salah satu masalah output AI adalah scope creep. Kamu minta perbaikan kecil, AI sekalian merapikan struktur, mengganti helper, mengubah nama prop, dan menulis ulang bagian yang sebenarnya tidak bermasalah.
Cara mengeceknya:
- lihat daftar file berubah
- pisahkan perubahan inti dan perubahan tambahan
- hapus perubahan yang tidak perlu
- pastikan tidak ada refactor tersembunyi
- jalankan test setelah scope diperkecil
Kode yang lebih sedikit biasanya lebih mudah dipercaya.
Cek keamanan dasar
Untuk kode web, cek minimal:
- input divalidasi
- output tidak membuka XSS
- query tidak raw tanpa sanitasi
- permission dicek di server
- endpoint admin tidak terbuka
- secret tidak masuk log
- file upload dibatasi
- redirect tidak bebas
- error tidak membocorkan detail internal
AI bisa lupa konteks permission project. Jangan percaya hanya karena ia menulis "secure" di komentar.
Cek test yang dibuat AI
AI bisa membuat test yang tampak lengkap tapi tidak terlalu berguna.
Test yang lemah biasanya:
- hanya mengecek render
- terlalu banyak mock
- mengikuti implementasi, bukan behavior
- tidak punya kasus gagal
- tidak mengecek edge case
- assert terlalu umum
Test yang lebih sehat:
- mengecek input normal
- mengecek input invalid
- mengecek permission
- mengecek error state
- mengecek data yang berubah
- mudah dibaca tanpa memahami implementasi detail
Kalau AI membuat test, minta ia menjelaskan bug apa yang akan tertangkap oleh test tersebut. Kalau jawabannya kabur, test-nya mungkin belum kuat.
Minta AI mereview outputnya sendiri, tapi jangan berhenti di sana
Trik yang lumayan berguna:
Review perubahan yang baru kamu buat.
Cari risiko behavior, keamanan, edge case, dan perubahan yang tidak diminta.
Jangan membela solusi. Fokus mencari masalah.
Sering kali AI bisa menemukan kelemahan outputnya sendiri. Tapi ini hanya lapisan tambahan. Review manusia tetap perlu, terutama untuk bagian yang menyentuh data, auth, billing, atau deploy.
Checklist review kode AI
Sebelum merge, cek:
- tujuan awal masih jelas
- file berubah sesuai scope
- tidak ada dependency baru tanpa alasan
- tidak ada secret/log sensitif
- permission dicek
- edge case penting tertutup
- test tidak hanya happy path
- dokumentasi diperbarui jika perlu
- build/lint/test berjalan
- diff bisa dijelaskan dengan sederhana
Kalau kamu tidak bisa menjelaskan diff, jangan merge dulu.
Sumber dan catatan
- GitHub Docs: responsible use of Copilot. https://docs.github.com/en/copilot/responsible-use-of-github-copilot-features
- OpenAI Codex. https://openai.com/codex/
- Google Search Central: helpful content and quality. https://developers.google.com/search/docs/fundamentals/creating-helpful-content
AI boleh menulis kode. Tapi developer tetap bertanggung jawab atas kode yang masuk ke repository. Perlakukan output AI seperti kontribusi dari orang yang cepat sekali, tapi belum tentu paham seluruh konteks project.