Memakai AI untuk Memahami Kode Lama (Legacy)
Hampir setiap sistem yang sudah berjalan lama punya bagian kode yang tidak ada dokumentasinya. Orang yang menulisnya sudah pindah kerja, tiketnya sudah lama tertutup, dan yang tersisa hanya fungsi ratusan baris dengan nama variabel seperti $flag2 atau $tmpData. Di sistem klinik atau rumah sakit, situasi ini makin sering muncul karena banyak modul dibangun bertahun-tahun lalu untuk memenuhi kebutuhan mendesak, lalu tidak pernah dirapikan. Sebagai developer, saya sering menghadapi kode semacam ini, dan AI ternyata jadi alat bantu yang cukup efektif untuk mempercepat proses memahaminya.
Kenapa bukan sekadar baca kode manual
Membaca kode legacy manual tetap penting, tapi butuh waktu, apalagi kalau logikanya bercabang-cabang dan terkait tabel database yang relasinya tidak jelas. AI tidak menggantikan proses ini, tapi bisa mempercepat tahap awal: mengenali pola, menebak niat penulis kode, dan memberi peta kasar sebelum saya masuk ke detail. Ini paling terasa manfaatnya untuk kode yang sifatnya "menerjemahkan aturan bisnis ke kode" — misalnya perhitungan tarif, validasi data, atau alur status yang berubah-ubah tergantung kondisi tertentu.
Pendekatan yang saya pakai
Alih-alih menempelkan satu file besar dan bertanya "ini kode apa", saya biasanya memecah permintaan jadi beberapa lapis:
- Ringkasan tingkat tinggi — minta AI menjelaskan tujuan fungsi atau class dalam beberapa kalimat, seolah menjelaskan ke rekan baru.
- Alur logika — minta AI menguraikan percabangan kondisi jadi daftar poin, terutama untuk kode dengan banyak
if/elsebersarang. - Efek samping — minta AI menandai bagian yang mengubah data di luar fungsi itu sendiri, seperti menulis ke tabel lain, memanggil API eksternal, atau mengubah state global. Bagian inilah yang paling sering jadi sumber bug tersembunyi.
- Pertanyaan balik — minta AI menuliskan hal-hal yang ambigu atau tidak jelas dari kode itu sendiri, sebagai daftar yang perlu saya verifikasi ke tim atau ke data produksi.
Contoh prompt sederhana yang biasa saya pakai kurang lebih begini: "Jelaskan fungsi ini seolah saya baru bergabung di tim dan belum pernah lihat sistem ini. Sebutkan input, output, efek samping, dan asumsi yang tersirat dari kode ini." Pola ini bisa dipakai berulang untuk file lain, dan hasilnya jadi semacam draft dokumentasi yang bisa saya perbaiki, bukan mulai dari kosong.
Batasan yang perlu diingat
AI membaca kode secara sintaksis, bukan mengetahui niat bisnis di baliknya. Kalau ada aturan yang sebenarnya keliru sejak awal tapi sudah dianggap "normal" karena sistem berjalan lama, AI bisa saja ikut merangkum kekeliruan itu seolah itu memang desain yang benar. Karena itu, ringkasan dari AI sebaiknya diperlakukan sebagai hipotesis awal, bukan kebenaran final — tetap perlu dicek ke log, ke data nyata, atau ke orang yang paham konteks bisnisnya kalau masih ada. Untuk kode yang menyentuh data sensitif, saya juga membatasi apa yang saya tempelkan ke AI: nama variabel dan struktur logika boleh, tapi data nyata pasien atau kredensial tidak pernah ikut disalin.
Cara lain yang saya anggap berguna adalah meminta AI membuat draf unit test dari perilaku yang teramati di kode, bukan dari spesifikasi yang tidak ada. Test ini bukan untuk membuktikan kode itu benar, tapi untuk mengunci perilaku saat ini sebagai baseline, sehingga kalau nanti kode itu direfaktor, saya punya alat untuk mendeteksi kalau ada perubahan perilaku yang tidak disengaja.
Takeaway
AI paling berguna untuk kode legacy sebagai akselerator pemahaman awal, bukan sebagai sumber kebenaran akhir. Pecah permintaan jadi ringkasan, alur logika, efek samping, dan pertanyaan terbuka, lalu verifikasi hasilnya ke data atau orang yang relevan. Dengan pola ini, dokumentasi yang tadinya tidak pernah ada bisa mulai terbentuk secara bertahap, cukup dari proses membaca kode yang memang harus dilakukan.