Di dunia saat ini, semakin banyak pengembang yang menggunakan alat bantu AI seperti ChatGPT untuk menulis kode.
Panduan ini akan membantu Anda memahami tanda-tanda kode yang ditulis oleh AI dan cara memeriksa apakah kode tersebut dibuat oleh ChatGPT atau alat AI serupa.
Berikut ini adalah prompt sederhana yang dapat Anda salin dan gunakan dengan ChatGPT ketika Anda ingin memeriksa apakah suatu kode ditulis oleh AI:
Template Prompt untuk Deteksi Kode AI:
Saya ingin Anda menganalisis potongan kode ini untuk menentukan apakah kemungkinan besar dibuat oleh AI:
[Rekatkan kode di sini]
Silakan evaluasi:
- Struktur dan pola kode
- Konvensi penamaan variabel
- Gaya dan frekuensi komentar
- Pendekatan penanganan kesalahan
- Konsistensi secara keseluruhan
Menyediakan:
- Tingkat kepercayaan generasi AI (persentase)
- Indikator spesifik yang ditemukan
- Penjelasan rinci tentang penalaran
Tanda-tanda Umum Kode yang Dihasilkan AI
1. Nama Variabel yang Terlalu Umum
Model AI sering kali menggunakan nama variabel yang sangat mendasar seperti 'data', 'hasil', atau 'temp'. Pengembang manusia biasanya memilih nama yang lebih spesifik yang mencerminkan apa yang sebenarnya terkandung dalam variabel tersebut. Sebagai contoh:
Kode yang ditulis oleh manusia dapat digunakan:
total_penjualan_bulan = hitung_penjualan(data_januari)Sementara kode yang dihasilkan AI dapat digunakan:
hasil = hitung(data)2. Pola Pemformatan yang Konsisten
ChatGPT cenderung menulis kode dengan format yang sangat konsisten. Meskipun hal ini terlihat bagus, namun sebenarnya ini bisa menjadi petunjuk. Manusia biasanya memiliki variasi kecil dalam gaya pengkodean mereka, bahkan ketika mengikuti panduan gaya. Kode yang dihasilkan oleh AI sering kali terlihat "terlalu sempurna" dalam pemformatannya.
3. Penanganan Kesalahan Dasar
Model AI biasanya mengimplementasikan penanganan kesalahan yang sangat sederhana. Mereka sering menggunakan blok coba-tangkap dasar tanpa jenis kesalahan tertentu atau pesan kesalahan terperinci. Pengembang manusia biasanya menyertakan penanganan kesalahan yang lebih rinci berdasarkan pengalaman mereka dengan masalah dunia nyata.
Contoh penanganan kesalahan yang dihasilkan oleh AI:
mencoba:
# melakukan sesuatu
kecuali:
print("Terjadi kesalahan")Contoh penanganan kesalahan yang ditulis oleh manusia:
mencoba:
# melakukan sesuatu
kecuali FileNotFoundError:
logger.error("File konfigurasi hilang di path: %s", config_path)
raise ConfigurationError("File konfigurasi yang diperlukan hilang")
kecuali PermissionError:
logger.error("Tidak ada izin untuk mengakses berkas: %s", config_path)
raise AccessDeniedError("Tidak dapat mengakses file konfigurasi")4. Solusi Standar
ChatGPT sering kali memberikan solusi yang paling umum atau standar untuk suatu masalah, bahkan ketika ada alternatif yang lebih baik. ChatGPT cenderung menggunakan pola desain yang sudah dikenal dan fungsi pustaka yang umum daripada solusi yang kreatif atau spesifik untuk situasi tertentu.
5. Komentar Terbatas
Kode yang dihasilkan oleh AI biasanya menyertakan komentar yang sangat mendasar atau terlalu banyak komentar yang sudah jelas. Pengembang manusia biasanya menulis komentar yang menjelaskan "mengapa" di balik logika yang rumit, sementara AI cenderung mengomentari "apa" yang sudah jelas dari kode.
Contoh komentar yang dihasilkan AI:
# Perulangan melalui larik
for i in range(len(larik)):
# Tambahkan angka saat ini ke penjumlahan
jumlah += larik [i]Contoh komentar yang ditulis oleh manusia:
# Lewati elemen pertama untuk menghindari penghitungan baris header
# Lihat tiket PROJ-123 untuk latar belakang
for i in range(1, len(array)):
jumlah += larik[i]Pola Umum dalam Kode ChatGPT
1. Pelat Boiler Berat
ChatGPT suka menyertakan banyak kode boilerplate. Ini sering menghasilkan struktur kelas yang lengkap dan pernyataan impor, bahkan untuk contoh-contoh sederhana. Hal ini dapat membuat kode terlihat lebih profesional tetapi juga lebih terstandardisasi dan kurang disesuaikan dengan kebutuhan spesifik.
2. Struktur yang Dapat Diprediksi
Kode yang dihasilkan AI biasanya mengikuti pola yang sangat mudah diprediksi dalam menyusun fungsi dan kelas. Sebagai contoh, kode ini mungkin selalu menempatkan variabel kelas dalam urutan yang sama atau mengatur metode dengan cara tertentu.
3. Penggunaan Fitur Lanjutan yang Terbatas
ChatGPT cenderung berpegang pada fitur bahasa dasar dan menghindari fitur bahasa yang lebih kompleks atau yang lebih baru. Hal ini karena ChatGPT dilatih dengan basis kode yang lebih lama dan pola-pola umum. Sebagai contoh, dalam Python, ia mungkin tidak menggunakan fitur-fitur terbaru seperti operator walrus atau pencocokan pola.
Metode Deteksi Teknis
Sistem deteksi tingkat lanjut menggunakan pengukuran kebingungan untuk mengidentifikasi kode yang dibuat oleh AI. Nilai kebingungan yang lebih rendah sering kali mengindikasikan pembuatan AI, karena model AI cenderung menghasilkan pola kode yang lebih mudah diprediksi.
Efektivitas pendeteksian bervariasi dengan panjang kode. Studi menunjukkan bahwa akurasi deteksi meningkat dengan sampel kode yang lebih panjang, biasanya membutuhkan setidaknya 100 token untuk analisis yang andal.
Praktik Terbaik untuk Deteksi
1. Analisis Komprehensif
Periksa beberapa aspek dari kode tersebut:
- Pengenalan pola
- Analisis sintaksis
- Kesalahan logika dan inkonsistensi
- Gaya dokumentasi
2. Pertimbangan Konteks
Pertimbangkan bahasa pemrograman dan konteks proyek saat menganalisis kode, karena akurasi deteksi dapat bervariasi di berbagai bahasa dan kerangka kerja.
Cara Menguji apakah Kode Dibuat oleh AI
1. Periksa Dokumentasi
Lihatlah bagaimana kode tersebut didokumentasikan. Dokumentasi yang dibuat oleh AI sering kali menyertakan:
- Deskripsi yang sangat umum
- Kehilangan konteks dunia nyata
- Tidak ada referensi ke logika bisnis atau kasus penggunaan tertentu
- Pemformatan yang sempurna namun dangkal
2. Cari Pola Kompleksitas
Kode yang dihasilkan oleh AI biasanya menunjukkan pola-pola ini:
- Solusi yang terlalu disederhanakan untuk masalah yang kompleks
- Penanganan kasus tepi yang hilang
- Pertimbangan keamanan dasar
- Penggunaan pustaka standar alih-alih solusi khusus
3. Kasus Kesalahan Uji
Coba pecahkan kodenya dengan:
- Memberikan masukan yang tidak terduga
- Menguji kasus tepi
- Memeriksa penanganan kesalahan
- Melihat bagaimana ia menangani nilai nol atau tidak terdefinisi
Kode yang dihasilkan AI sering kali gagal dengan cara yang tidak terduga ketika berhadapan dengan situasi ini.
Praktik Terbaik Saat Menggunakan Kode yang Dihasilkan AI
1. Selalu Tinjau dan Modifikasi
Ketika bekerja dengan kode yang dihasilkan AI, jangan pernah menggunakannya tanpa memeriksanya terlebih dahulu. Luangkan waktu untuk membaca kode tersebut dan pahami apa yang dilakukannya.
Mulailah dengan mengubah nama-nama variabel dasar menjadi nama-nama yang masuk akal untuk proyek Anda. Saat meninjau, lihat bagaimana kode menangani kesalahan dan memperbaikinya jika diperlukan - tambahkan pesan kesalahan yang jelas yang akan membantu Anda melacak masalah di kemudian hari.
Komentar yang baik sangat penting - tulislah komentar yang menjelaskan mengapa kode bekerja seperti itu, bukan hanya apa yang dilakukannya.
Ingatlah untuk menguji kode dengan berbagai jenis input untuk memastikan kode tersebut berfungsi di semua situasi. Yang terpenting, sesuaikan kode agar sesuai dengan kebutuhan bisnis spesifik Anda, karena AI tidak mengetahui situasi Anda secara pasti.
2. Gunakan AI sebagai Titik Awal
Pikirkan kode yang dihasilkan AI sebagai draf kasar atau garis besar. Ini memberi Anda tempat yang baik untuk memulai, tetapi Anda perlu mengembangkannya.
Kode dari alat bantu AI sering kali memiliki penanganan kesalahan yang sangat mendasar, jadi Anda perlu meningkatkannya dengan menambahkan pemeriksaan kesalahan spesifik dan pesan kesalahan yang bermanfaat.
Luangkan waktu untuk memperhatikan masalah keamanan dengan cermat dan tambahkan perlindungan ekstra jika diperlukan. Ingatlah bahwa AI memberi Anda kode tujuan umum, tetapi proyek Anda membutuhkan solusi khusus.
Tambahkan pencatatan yang tepat sehingga Anda dapat melacak apa yang terjadi ketika kode berjalan di dunia nyata, dan mengatur cara untuk memantau apakah semuanya bekerja dengan benar.
3. Mendokumentasikan Penggunaan AI
Dokumentasi yang baik adalah kunci ketika bekerja dengan kode yang dihasilkan AI. Tambahkan komentar di awal bagian yang dibuat oleh AI untuk menandainya dengan jelas.
Ketika Anda membuat perubahan, tuliskan apa yang Anda ubah dan alasannya - hal ini akan membantu pengembang lain (atau diri Anda sendiri di masa depan) untuk memahami kode dengan lebih baik.
Lacak bagian mana yang ditulis oleh manusia dan mana yang berasal dari AI. Hal ini akan mempermudah pemeliharaan kode di kemudian hari.
Tuliskan bagaimana Anda menguji kode dan hasil apa yang Anda dapatkan, sehingga semua orang memahami apa yang dilakukan kode tersebut dan seberapa andal kode tersebut.
Ingatlah bahwa AI adalah alat untuk membantu Anda menulis kode dengan lebih cepat, tetapi tidak boleh menggantikan tinjauan dan penyesuaian yang cermat untuk kebutuhan spesifik Anda. Dokumentasi dan pengujian yang baik sama pentingnya dengan kode yang dihasilkan oleh AI seperti halnya dengan kode yang ditulis oleh manusia.
Dengan mengikuti praktik-praktik ini, Anda akan mendapatkan hasil terbaik dari penggunaan AI sambil mempertahankan kode berkualitas tinggi dan andal.



