Pendahuluan
Perkembangan Large Language Model (LLM) telah membawa perubahan besar dalam dunia pengembangan perangkat lunak. Salah satu pemanfaatan LLM yang semakin populer adalah code refactoring, yaitu proses memperbaiki struktur kode tanpa mengubah fungsi utamanya. Dengan bantuan AI, pengembang dapat menyederhanakan kode, meningkatkan keterbacaan, mengurangi duplikasi, serta mempercepat proses pemeliharaan aplikasi.
Namun, penggunaan LLM untuk melakukan refactoring juga memiliki kelemahan berupa halusinasi (AI Hallucination). Halusinasi dapat menyebabkan AI menghasilkan perubahan kode yang tampak lebih baik, tetapi sebenarnya menghilangkan mekanisme keamanan, mengubah logika autentikasi, atau memperkenalkan kerentanan baru. Jika hasil refactoring diterapkan tanpa proses verifikasi, aplikasi dapat mengalami penurunan tingkat keamanan meskipun fungsi utamanya tetap berjalan dengan baik.
Apa Itu Code Refactoring Berbasis LLM?
Code refactoring berbasis LLM adalah proses perbaikan atau penyusunan ulang kode sumber menggunakan bantuan AI tanpa mengubah tujuan atau fungsi utama program.
LLM dapat membantu berbagai aktivitas refactoring, seperti:
- Menyederhanakan struktur kode.
- Menghapus kode yang berulang (duplicate code).
- Mengoptimalkan fungsi dan metode.
- Memperbaiki format penulisan kode.
- Mengganti fungsi lama dengan implementasi yang lebih modern.
- Menambahkan komentar atau dokumentasi secara otomatis.
Walaupun bermanfaat, hasil refactoring AI tetap harus diperiksa karena AI tidak selalu memahami seluruh konteks keamanan aplikasi.
Bagaimana Halusinasi Terjadi Saat Refactoring?
LLM menghasilkan saran berdasarkan pola dari data pelatihannya, bukan berdasarkan pemahaman menyeluruh terhadap arsitektur sistem. Akibatnya, AI dapat melakukan perubahan yang tampak benar tetapi justru menghilangkan bagian kode yang penting untuk keamanan.
Beberapa contoh halusinasi saat refactoring antara lain:
- Menghapus proses validasi input karena dianggap tidak diperlukan.
- Menghilangkan pengecekan autentikasi untuk menyederhanakan kode.
- Mengubah konfigurasi keamanan agar terlihat lebih ringkas.
- Mengganti fungsi yang aman dengan implementasi yang kurang aman.
- Menyarankan penggunaan fungsi atau library yang sudah usang.
Perubahan tersebut sering kali tidak langsung terlihat saat pengujian fungsional, tetapi dapat membuka celah keamanan yang serius.
Risiko Keamanan Akibat Refactoring AI
Refactoring yang tidak diverifikasi dapat menyebabkan berbagai risiko, di antaranya:
1. Hilangnya Validasi Input
Kode yang sebelumnya memeriksa data pengguna dapat berubah sehingga aplikasi menjadi rentan terhadap berbagai serangan.
2. Kesalahan Autentikasi dan Otorisasi
AI dapat menghapus atau mengubah mekanisme login maupun pembatasan hak akses sehingga pengguna memperoleh akses yang tidak semestinya.

3. Kebocoran Data Sensitif
Perubahan pada proses pengelolaan data dapat menyebabkan informasi penting seperti password, token, atau API Key terekspos.
4. Penurunan Keamanan Aplikasi
Penghapusan mekanisme enkripsi, logging keamanan, atau pemeriksaan akses dapat mengurangi tingkat perlindungan sistem.
5. Munculnya Kerentanan Baru
Refactoring yang salah dapat memperkenalkan celah keamanan baru meskipun aplikasi masih dapat berjalan dengan normal.
Dampak terhadap Pengembangan Perangkat Lunak
Celah keamanan akibat refactoring berbasis LLM dapat menimbulkan berbagai dampak, seperti:
- Meningkatnya risiko serangan siber.
- Kebocoran data pengguna dan organisasi.
- Gangguan terhadap layanan aplikasi.
- Bertambahnya biaya perbaikan setelah aplikasi dipublikasikan.
- Menurunnya kepercayaan pengguna terhadap perangkat lunak.
- Kerugian finansial dan reputasi organisasi.
Pada aplikasi yang digunakan di sektor perbankan, kesehatan, maupun pemerintahan, dampak tersebut dapat menjadi sangat serius.
Cara Mengatasi Celah Keamanan
Untuk memastikan refactoring berbasis LLM tetap aman, beberapa langkah berikut dapat diterapkan:
- Melakukan code review terhadap seluruh perubahan yang dihasilkan AI.
- Membandingkan hasil refactoring dengan kode asli untuk memastikan mekanisme keamanan tetap tersedia.
- Menggunakan Static Application Security Testing (SAST) untuk mendeteksi kerentanan.
- Melakukan pengujian keamanan setelah proses refactoring selesai.
- Mengikuti pedoman Secure Coding selama proses pengembangan.
- Menggunakan AI sebagai alat bantu, sementara keputusan akhir tetap berada pada pengembang atau tim keamanan.
Pentingnya Human-in-the-Loop
Refactoring berbasis AI sebaiknya tidak dilakukan secara otomatis tanpa pengawasan. Pendekatan human-in-the-loop memastikan setiap perubahan yang disarankan AI diperiksa oleh developer atau security engineer sebelum diterapkan. Dengan cara ini, manfaat AI tetap dapat diperoleh tanpa mengorbankan keamanan aplikasi.
Kesimpulan
LLM mampu membantu proses refactoring kode sehingga pengembangan perangkat lunak menjadi lebih cepat dan efisien. Namun, halusinasi AI dapat menyebabkan perubahan yang menghilangkan mekanisme keamanan atau memperkenalkan kerentanan baru. Oleh karena itu, setiap hasil refactoring harus melalui proses verifikasi, code review, serta pengujian keamanan sebelum digunakan pada aplikasi. Dengan menerapkan praktik pengembangan yang aman dan pengawasan manusia, organisasi dapat memanfaatkan teknologi AI secara optimal tanpa meningkatkan risiko terhadap keamanan perangkat lunak.


