Bulan lalu, seorang asisten AI menghasilkan skrip Python untuk sebuah proyek produksi. Outputnya berjalan tanpa error. Datanya terlihat solid. Namun, peninjauan manual mengungkapkan adanya pola kueri N+1 yang tersembunyi di dalam panggilan database. Untuk dataset kecil, kode tersebut berfungsi dengan baik. Namun, jika skalanya ditingkatkan menjadi ribuan rekaman, aplikasi tersebut akan mengeluarkan satu kueri untuk objek induk, lalu ribuan kueri lanjutan untuk data terkait. Hasilnya adalah penurunan performa yang drastis yang tidak akan terdeteksi oleh unit test mana pun.

Inilah realitas pengembangan perangkat lunak modern. Alat AI kini menangani pengodean, debugging, dan saran arsitektur dengan kecepatan yang tidak dapat ditandingi oleh manusia. Kecepatan itu nyata. Namun, hal ini secara fundamental mengubah bentuk pekerjaan Anda. Anda tidak lagi dibayar terutama untuk mengetik sintaks. Anda dibayar untuk mengaudit, merancang arsitektur, dan menangkap jebakan-jebakan tak kasat mata seperti ini.

Bahaya Tersembunyi dari "Logis tapi Salah"

Kode yang dihasilkan AI sering kali terlihat benar karena berhasil dikompilasi, dijalankan, dan mengembalikan nilai yang diharapkan. Logikanya tampak utuh di permukaan. Namun di bawahnya, kode tersebut bisa saja rusak secara diam-diam.

Ambil contoh ekspresi reguler (regex). AI mungkin memberi Anda pola yang mencocokkan alamat email atau pengidentifikasi dengan sempurna dalam bahasa Inggris. Jalankan ekspresi yang sama terhadap umlaut Jerman, aksara Arab, atau kasus tepi normalisasi Unicode, dan ia akan gagal secara diam-diam. Kode tersebut tidak salah dalam artian memicu pengecualian (exception). Ia hanya mengabaikan data dunia nyata yang valid.

Kueri database membawa risiko serupa. AI dapat menulis kueri PostgreSQL yang mengembalikan baris yang tepat selama pengujian, namun tetap membuat tabel Anda membengkak dengan dead tuples, melewatkan pemanfaatan indeks, atau memaksa pemindaian sekuensial (sequential scans) yang melumpuhkan beban kerja produksi. Apa yang berfungsi pada dataset demo dan apa yang berfungsi di bawah beban nyata adalah dua hal yang berbeda. Mesin tidak merasakan latensi. Ia tidak membayar tagihan cloud.

Dari Menulis ke Memverifikasi

Pergeseran esensialnya adalah berpindah dari "bagaimana cara saya menulis ini?" menjadi "bagaimana cara saya memverifikasi ini?". Ketika AI menangani draf pertama, beban kognitif Anda harus berpindah ke tahap selanjutnya. Anda perlu membaca kode seperti seorang auditor keamanan membacanya, bukan seperti penulis yang lelah sekadar membaca sekilas karyanya sendiri.

Ini menuntut disiplin yang berbeda. Bias otomatisasi itu nyata. Ketika sebuah alat menghasilkan output yang lancar dan sintaksisnya sempurna, otak manusia cenderung rileks. Anda berasumsi bahwa itu benar karena presentasinya rapi. Melawan dorongan tersebut adalah keterampilan inti saat ini. Anda harus menganggap setiap saran sebagai hipotesis sampai terbukti sebaliknya.

Bekerja dengan Mesin

Mendapatkan output yang berguna dari asisten pengodean AI bukan tentang mengetik lebih cepat. Ini tentang memperpendek jarak antara data pelatihan mesin dan realitas spesifik Anda. Anda dapat memperkecil jarak tersebut dengan beberapa praktik konkret.

Berikan instruksi (prompt) yang tepat. Ambiguitas tidak menciptakan puisi di sini; ia menciptakan bug. Prompt seperti "optimalkan fungsi ini" hanya akan mengundang saran generik. Sebaliknya, tulislah "refactor loop Python ini untuk menggunakan satu pembaruan database massal (bulk update) alih-alih penyimpanan berulang (iterated saves)." Spesifisitas mempersempit ruang kemungkinan.

Berikan konteks nyata. AI tidak tahu bahwa Anda menjalankan Django 4.2 pada PostgreSQL 15 di dalam klaster Kubernetes dengan batas waktu permintaan (request timeout) yang ketat selama 30 detik kecuali Anda mengatakannya. Berikan versi dependensi Anda, pustaka internal Anda, dan batasan-batasan yang tidak bisa ditawar. Konteks bukanlah dekorasi; ia adalah pagar pengaman.

Dasarkan jawaban dengan dokumen Anda sendiri. Retrieval-Augmented Generation, atau RAG, bukan sekadar kata kunci populer untuk chatbot. Arahkan asisten Anda ke spesifikasi API Anda yang sebenarnya, catatan keputusan arsitektur Anda, dan konvensi basis kode Anda. Ketika model mengambil fakta dari dokumentasi Anda alih-alih menebak dari data pelatihan, celah antara saran generik dan kode yang dapat digunakan akan tertutup secara drastis.

Pecah pekerjaan kompleks menjadi tugas-tugas terpisah. Pola agen bekerja paling baik ketika setiap langkah memiliki cakupan yang sempit. Jangan meminta refactor microservice secara lengkap dalam satu waktu. Mintalah skema datanya terlebih dahulu. Validasi. Kemudian mintalah skrip migrasinya. Validasi itu. Baru kemudian pindah ke lapisan layanan (service layer).