21 poin oleh GN⁺ 2025-12-26 | 5 komentar | Bagikan ke WhatsApp
  • Hasil analisis 470 PR open source menunjukkan bahwa kode yang ditulis AI mengandung rata-rata 1,7 kali lebih banyak masalah dibanding kode yang ditulis manusia
  • Cacat utama seperti kesalahan logika, penurunan keterbacaan, dan kerentanan keamanan jauh lebih banyak pada kode AI, terutama masalah keterbacaan yang meningkat lebih dari 3 kali lipat
  • Kelalaian penanganan error, kesalahan konkurensi, dan ketidakkonsistenan penamaan pada kode AI sering terjadi, sehingga memperbesar beban review dan risiko operasional
  • Penyebabnya dianalisis meliputi kurangnya pemahaman terhadap logika bisnis, pengejaran akurasi yang dangkal, dan preferensi pada pola yang kurang efisien
  • Laporan menekankan perlunya penguatan sistem pengelolaan kualitas kode AI serta penerapan prosedur review kode, keamanan, dan pengujian yang sadar-AI

Ringkasan AI vs Human Code Generation Report

  • CodeRabbit melakukan penelitian untuk menganalisis secara empiris perbedaan kualitas kode yang ditulis AI dan manusia
    • Meneliti 470 GitHub PR open source, di antaranya 320 ditulis bersama AI dan 150 ditulis sepenuhnya oleh manusia
    • Semua hasil dinormalisasi sebagai jumlah isu per 100 PR, lalu frekuensi tiap jenis masalah diukur melalui perbandingan rasio statistik
  • Hasilnya, AI meningkatkan produktivitas tetapi juga menaikkan tingkat kesalahan
    • Rata-rata 10,83 masalah per PR yang ditulis AI, sedangkan PR buatan manusia 6,45 masalah
    • Terutama, kesalahan dengan tingkat keparahan tinggi lebih sering ditemukan pada kode AI

Keterbatasan penelitian

  • Karena tidak bisa memastikan secara langsung apakah sebuah PR ditulis AI, PR yang memiliki sinyal AI co-authored-by diklasifikasikan sebagai ditulis AI
    • PR tanpa sinyal tersebut dianggap ditulis manusia, tetapi pemisahan sempurna tetap tidak memungkinkan
  • Meski ada keterbatasan ini, perbedaan statistik dalam pola masalah antara dua kelompok tetap tampak signifikan
  • Metodologi lengkap dipublikasikan di bagian akhir laporan

10 temuan utama

  • Tidak semua jenis error hanya muncul pada AI, tetapi di sebagian besar kategori tingkat error kode AI lebih tinggi
    • Manusia dan AI sama-sama melakukan jenis kesalahan yang mirip, tetapi AI melakukannya lebih sering dan dalam skala lebih besar
    Iklan
  • 1. Total jumlah isu naik 1,7 kali

    • Rata-rata 10,83 isu per PR AI, sedangkan PR manusia 6,45 isu
    • PR dengan konsentrasi isu tinggi (outlier) jauh lebih banyak pada kode AI, sehingga menambah beban review
  • 2. Kenaikan error berkeparahan tinggi

    • Masalah besar dan kritis meningkat 1,4~1,7 kali
  • 3. Masalah logika dan akurasi naik 75%

    • Mencakup error logika bisnis, dependensi yang salah, cacat alur kontrol, dan error konfigurasi
    • Biaya perbaikannya tinggi dan berpotensi menyebabkan gangguan operasional
  • 4. Masalah keterbacaan naik lebih dari 3 kali

    • Aturan penamaan, struktur kode, dan konsistensi ekspresi jauh lebih buruk
    • Walau kode terlihat rapi, pelanggaran pola lokal sering terjadi
  • 5. Kelalaian penanganan error dan jalur exception naik 2 kali

    • Pemeriksaan null, kondisi guard, dan logika penanganan exception sering hilang
    • Ini adalah jenis masalah yang langsung terkait dengan gangguan layanan nyata
  • 6. Masalah keamanan naik hingga 2,74 kali

    • Contohnya penanganan kata sandi yang tidak tepat dan kerentanan referensi objek
    • Bukan kerentanan yang unik, tetapi sebagian besar cacat keamanan ikut membesar
  • 7. Masalah penurunan performa lebih sedikit, tetapi terkonsentrasi di AI

    • Pemanggilan I/O berlebihan sekitar 8 kali lebih banyak
    • AI cenderung memilih kode yang berfokus pada kejelasan, sehingga efisiensinya menurun
    Iklan
  • 8. Error konkurensi dan dependensi naik sekitar 2 kali

    • Kesalahan urutan, alur dependensi yang salah, dan penyalahgunaan kontrol konkurensi sering muncul
  • 9. Masalah formatting naik 2,66 kali

    • Banyak error format seperti indentasi, spasi, dan ketidaksesuaian style
    • Bahkan dengan formatter dan linter otomatis, noise pada kode AI tetap meningkat
  • 10. Ketidakkonsistenan penamaan naik 2 kali

    • Banyak nama yang tidak jelas, istilah yang tidak konsisten, dan identifier yang terlalu umum, sehingga beban kognitif reviewer meningkat

Penyebab munculnya masalah

  • AI kurang memahami logika bisnis
    • AI menghasilkan kode berdasarkan pola statistik sehingga sering melewatkan aturan sistem
  • Generasi berfokus pada akurasi permukaan
    • Kode tampak benar di permukaan, tetapi mengandung celah pada perlindungan alur kontrol atau urutan dependensi
  • Tidak mematuhi konvensi spesifik repositori
    • Aturan penamaan, struktur, dan format berubah menjadi bentuk yang terlalu umum
    Iklan
  • Pola keamanan melemah
    • Tanpa instruksi eksplisit, AI dapat mereproduksi pola kode lama atau rentan
  • Lebih memilih kesederhanaan daripada efisiensi
    • Cenderung menggunakan I/O berulang dan struktur yang tidak optimal

Langkah respons untuk tim engineering

  • Adopsi AI tidak hanya soal peningkatan kecepatan, tetapi juga membutuhkan desain ulang sistem jaminan kualitas
  • 1. Berikan konteks yang cukup kepada AI

    • Aturan bisnis, pola konfigurasi, dan batasan arsitektur perlu dijelaskan agar error berkurang
    • Sertakan panduan khusus repositori dan skema di dalam prompt
  • 2. Terapkan style kode berbasis kebijakan

    • Gunakan CI formatter, linter, dan style guide untuk mencegah masalah keterbacaan
  • 3. Tambahkan pengaman akurasi

    • Wajibkan testing, pemeriksaan null/type, standardisasi penanganan exception, dan kondisi guard yang eksplisit
  • 4. Perkuat default keamanan

    • Sentralisasi kredensial, blokir penggunaan kata sandi secara langsung, dan jalankan SAST serta security linter otomatis
    Iklan
  • 5. Arahkan ke pola yang efisien

    • Gunakan pemrosesan batch I/O, pemilihan struktur data yang tepat, dan petunjuk performa
  • 6. Terapkan checklist PR yang sadar-AI

    • Saat review, periksa item berikut:
      • Apakah jalur error sudah tercakup
      • Apakah kontrol konkurensi sudah tepat
      • Apakah nilai konfigurasi sudah divalidasi
      • Bagaimana metode penanganan kata sandi
  • 7. Terapkan otomatisasi review kode AI

    • Untuk mencegah bug terlewat akibat meningkatnya kelelahan review, laporan ini menyarankan penggunaan alat review kode AI (CodeRabbit)
      • Membantu standardisasi kualitas review dan mengurangi waktu pemeriksaan serta beban kognitif

Kesimpulan

  • Alat coding AI adalah akselerator yang kuat, tetapi akselerasi tanpa pengaman itu berbahaya
  • Kode yang dihasilkan AI memiliki volatilitas, tingkat error, dan tingkat keparahan yang semuanya lebih tinggi
  • AI harus digunakan sebagai alat pelengkap, bukan pengganti, dan penguatan sistem kualitas, keamanan, serta pengujian adalah hal wajib
  • Untuk mendapatkan kecepatan sekaligus kualitas, diperlukan pengelolaan engineering yang disengaja
  • Pemanfaatan alat review kode AI dapat memberi bantuan nyata dalam menjaga kualitas

5 komentar

 
cshj55 2025-12-26

Kalau 1,7 kali sih lebih sedikit dari yang saya kira...?

 
ds2ilz 2025-12-26

Saya juga merasakan hal yang mirip saat ngoding dengan AI. Kalau melihat penyebab-penyebab yang dirangkum, sepertinya itu karena saat manusia menulis kode, hal-hal seperti pola yang sudah menjadi pengetahuan dasar, aturan penamaan, penanganan edge case, guard condition, dan sebagainya tidak cukup diberikan sebagai konteks.
Jadi saya membuat satu file aturan yang khusus mengumpulkan hal-hal semacam itu, lalu saat ngoding saya memberi instruksi agar file itu wajib dibaca dan dipatuhi. Dengan begitu, kalau file aturan itu diperbaiki, hasil akhirnya jadi jauh lebih baik.

 
princox 2025-12-26

Khawatir bakal ada yang berpendapat, “sudah bikin banyak banget, kalau cuma 1,7 kali lipat sih bukannya malah gratisan?”...

 
kimjoin2 2025-12-26

Tapi cepat, kan? Jadi teringat meme itu wkwk

 
GN⁺ 2025-12-26
Komentar Hacker News
  • Saya rasa ‘vibe coding’ sudah ada bahkan sebelum AI

    • Saya sering melihat banyak pengembang tidak memikirkan kenapa sebuah objek bernilai null, lalu asal menempelkan null check di mana-mana
    • Pendekatan seperti ini berguna di beberapa area, tapi kalau seluruh sistem dibangun seperti ini, pemeliharaannya jadi mimpi buruk
    • Vibe coding berbasis AI terasa seperti mempercepat gaya “tidak tahu kenapa ini bekerja, yang penting hasil yang diinginkan muncul di layar”
    • Saya pernah bekerja di perusahaan seperti ini, dan exception sering tertelan oleh null check sehingga error diam-diam terkubur
      • Timnya memuji diri sendiri seolah mereka hebat, padahal sebenarnya sistem itu berjalan dengan kode hasil copy-paste dari StackOverflow dan struktur MVP yang sudah usang
      • Di lingkungan seperti itu, hampir mustahil berpikir secara mandiri
      • Meski begitu, alat seperti Claude Code tetap sangat meningkatkan produktivitas di atas codebase yang dirancang dengan baik
    • Menyalin-tempel dari StackOverflow lalu berhenti di level “asal jalan sudah cukup” itulah vibe coding
      • AI hanya mengotomatiskan proses itu
    • Ungkapan yang lebih tepat bukan “melihat apa yang ingin dilihat”, melainkan “menampilkan apa saja di layar”
      • Null-check yang dimasukkan tanpa pikir panjang nantinya bisa memicu kesalahan data yang halus, sehingga akar masalahnya sangat sulit dilacak
    • Saya juga setuju, tetapi vibe coding membuat pengembang yang bergantung pada StackOverflow menjadi lebih cepat
      • Jumlah tipe pengembang yang tidak menyelesaikan masalah sendiri jadi makin banyak
      • Selain itu, keandalannya juga lebih rendah dibanding dulu
    • Hal yang paling membuat frustrasi saat memakai AI adalah ia cenderung mengikuti gaya kode kelas menengah untuk tiap bahasa apa adanya
      • Saya mengikuti prinsip “kalau tidak membuat data yang salah, maka tidak ada yang perlu diproses”, tetapi AI terus melanggarnya
      • AI hampir tidak pernah membuat definisi tipe atau menjaga invariant, dan selalu ingin menangani semuanya hanya dengan string dan integer
      • Karena itu saya memakai AI secara terputus-putus berbasis tab-complete sambil memperbaiki sendiri kesalahan strukturalnya
      • Setelah diperbaiki, AI juga akan mengikuti arah yang benar, jadi kalau integrasi IDE dan LSP membaik, rasanya akan jauh lebih berguna
  • Kritik terhadap vibe coding memang masuk akal, tetapi sebenarnya sebelum AI pun kualitas kode sudah buruk

    • Sebagian besar kode dirilis lambat dan kualitasnya juga rendah
    • Jika rilis cepat bisa mempercepat validasi ide, ada juga yang menganggap tingkat error tertentu masih layak ditoleransi
    • Belakangan ini makin sering manajemen bertanya, “kenapa fitur segini saja butuh berbulan-bulan?”
    • Namun alasan “fitur kecil butuh waktu lama” bukan karena algoritma, melainkan infrastruktur dan struktur kolaborasi
      • AI tidak bisa menyelesaikan masalah mendasar seperti ini
    • Biaya pemeliharaan dan kompleksitas akan menumpuk seperti bunga majemuk seiring waktu
      • Untuk proyek jangka pendek, vibe coding mungkin oke, tetapi tidak cocok untuk sistem jangka panjang
    • Menurut saya, keseimbangan antara pengembang yang disengaja dan pengembang vibe itu penting
      • AI terlalu memperkuat sisi vibe sehingga merusak keseimbangan sistem
    • Yang lebih penting daripada kualitas kode adalah pemahaman bersama antara masalah bisnis dan solusi teknis
      • Walaupun kualitasnya rendah, yang lebih penting adalah tahu dengan jelas alasan dan trade-off di baliknya
    • Namun sulit menganggap positif jika orang yang tidak paham software berkata kepada pengembang bahwa mereka “melakukannya dengan salah”
  • Pernyataan “kode AI menghasilkan masalah 1,7 kali lebih banyak” hanyalah jumlah bug yang ditemukan

    • Dalam praktiknya, karena review PR sering tidak dilakukan dengan baik, banyak masalah pada kode AI juga terlewat
    • Ada juga riset yang menyebut code review seharusnya lebih berfokus pada memahami dan membagikan struktur daripada sekadar mencari bug
    • Sebaliknya, ada pendapat bahwa kode AI justru diberi review lebih teliti karena komentarnya banyak dan lebih mudah dibaca
      • Pada kode buatan manusia, justru lebih banyak komentar seperti “tidak tahu ini apa, tapi kalau dihapus bakal rusak”
  • Belum lama ini di .NET, Copilot menyarankan implementasi IComparable dan itu menghemat beberapa menit kerja saya

    • Tapi karena nama variabelnya tertukar jadi x dan y, saya malah menghabiskan satu jam untuk debugging
    • Kalau saya menulisnya sendiri, kesalahan seperti itu tidak akan terjadi
    • Meski begitu, hasil akhirnya hampir sama dengan kode yang akan saya tulis sendiri
  • Dulu juga pernah ada situasi serupa

    • Jika error handling dan edge case diabaikan, rilis memang bisa jauh lebih cepat, tapi akhirnya berubah jadi bom bug
    • AI terasa seperti mendorong ini sampai ke titik ekstrem
    • Bahkan muncul candaan, “kalau begitu bukannya lebih baik pindah ke Erlang atau Elixir?”
  • Menarik melihat perusahaan berbasis LLM mengklaim bahwa “AI ternyata tidak seburuk yang diduga”

    • Tapi Coderabbit adalah perusahaan code review berbasis LLM, jadi justru punya insentif untuk berkata “AI berantakan, maka AI perlu dipakai untuk mereview AI”
    • Saya juga memakai Copilot sebagai alat review, dan review AI hampir selalu akurat, jadi sangat membantu sebelum review oleh manusia
  • Saya cukup sering memakai CodeRabbit, tetapi masih ada banyak false positive

    • Kadang alat itu menegur “tidak ada validasi data” meskipun kodenya sebenarnya sudah tervalidasi
    • Meski begitu, kalau kita memberi tahu bahwa itu “salah”, alatnya akan mempelajari hal tersebut dan menerimanya
  • “1,7 kali lebih banyak” dan “meningkat 1,7 kali” bukanlah hal yang sama

    • Namun perdebatan angka seperti ini pada akhirnya terasa seperti pertengkaran yang tidak berarti
  • Agentic AI coding hanyalah alat; jika dipakai dengan salah, tentu hasilnya juga salah

    • Sebagai contoh penerapan yang berhasil, ada yang merekomendasikan contoh justhtml di Python
    • Namun logika hitam-putih seperti “kalau tidak bisa memakainya berarti tidak kompeten” jelas bermasalah
      • Entah seseorang merasa AI berguna atau tidak, itu semata-mata hanya perbedaan pengalaman
  • Frasa pada judul artikel, “kode AI menghasilkan masalah 1,7 kali lebih banyak”, tidak akurat

    • Yang dimaksud sebenarnya adalah “masalah” yang juga mencakup formatting dan penamaan, bukan hanya bug
    • Angka jumlah bug itu sendiri tidak dijelaskan secara eksplisit dalam artikel