Latar Belakang
Code search adalah kemampuan kritis dalam pengembangan perangkat lunak modern yang mendukung penggunaan ulang kode, pemahaman, dan pemeliharaan sistem. Metode pencarian berbasis leksikal seperti BM25 telah terbukti menjadi baseline yang kuat dalam berbagai tugas code search. Namun, pipeline pencarian hibrid jarang memasukkan faktor keterbacaan kode (code readability), padahal keterbacaan sangat mempengaruhi cara pengembang menilai relevansi hasil pencarian.
Membaca kode adalah salah satu aktivitas yang paling sering dilakukan oleh pengembang perangkat lunak. Semakin mudah kode dibaca, semakin baik kualitas perangkat lunak yang dikembangkan, termasuk proses pemeliharaannya. Survei oleh Sadowski et al. menunjukkan bahwa 26% pemrogram menggunakan layanan code search di repositori proyek lokal untuk praktik penggunaan ulang kode. Oleh karena itu, faktor keterbacaan berpotensi menjadi sinyal tambahan yang bermakna dalam perankingan hasil code search.
Tujuan Penelitian
Penelitian ini bertujuan memahami sejauh mana perankingan dari model tradisional berbasis pencocokan leksikal, vektor padat, dan sinyal keterbacaan kode dapat berkontribusi pada efektivitas code search. Secara spesifik, studi ini mengevaluasi sejauh mana BM25 murni dapat menghasilkan retrieval yang efektif, apakah integrasi skor keterbacaan melalui teknik boosting dan re-scoring dapat meningkatkan efektivitas perankingan dibanding baseline BM25, dan apakah model hibrid yang menggabungkan BM25 dengan vektor padat memberikan peningkatan performa lebih lanjut.
Dataset dan Komponen Sistem
Dataset yang digunakan adalah CodeSearchNet (CSN) Java dari Hugging Face melalui paket ir-datasets, yang menggabungkan semua snippet kode Java dari bagian training, validation, dan testing sebagai korpus pencarian. Setelah proses validasi dan pembersihan data, termasuk deduplication dan koreksi 463 snippet yang tidak lengkap, total 497.144 dokumen Java siap digunakan. Dari 99 query yang tersedia, 6 query dieksklusikan karena seluruh nilai relevansinya bernilai 0, sehingga evaluasi dilakukan terhadap 93 query.
Sistem pencarian dibangun menggunakan Apache SOLR versi 9.10 untuk retrieval leksikal BM25 sekaligus pencarian vektor padat dengan indeks HNSW. Untuk menghasilkan vektor padat, penelitian menggunakan model CodeSearch-ModernBERT-Owl-Plus yang merupakan turunan domain-adapted dari ModernBERT, dilatih dengan pendekatan dual-tower (docstring dan kode) serta hard negative mining, menghasilkan dimensi vektor 768.
Skor keterbacaan kode dihitung menggunakan model yang dikembangkan sendiri oleh peneliti bernama KERTA. Model ini menghasilkan 56 fitur metrik dari snippet kode Java yang dikelompokkan ke dalam 5 dimensi konseptual keterbacaan, yaitu Visual Clarity, Structural Simplicity, Documentation Support, Naming Transparency, dan Cognitive Load. Skor keterbacaan global yang dihasilkan KERTA berada dalam rentang [0,1] sehingga tidak memerlukan normalisasi tambahan.
Metrik evaluasi yang digunakan adalah MRR@10 (Mean Reciprocal Rank) untuk mengukur seberapa cepat sistem menemukan hasil paling relevan, dan nDCG@10 (Normalized Discounted Cumulative Gain) untuk menilai kualitas perankingan keseluruhan di antara 10 hasil teratas.
Strategi yang Diuji
Penelitian ini menguji tiga kelompok strategi perankingan. Kelompok pertama adalah baseline BM25 murni dengan berbagai kombinasi field query (code text, code tokens, docstring text) dan parameter BM25. Kelompok kedua adalah BM25 dengan boosting berbasis KERTA, menggunakan berbagai fungsi boosting yaitu linear (scale), square root, logaritma, dan pangkat (pow). Kelompok ketiga adalah re-scoring berbasis KERTA dengan tiga varian: additive (penjumlahan linier skor BM25 dan skor KERTA), multiplicative (perkalian proporsional), dan alpha-fusion (normalisasi min-max diikuti kombinasi linier berbobot).
Hasil terbaik dari pendekatan leksikal kemudian digunakan dalam model hibrid yang menggabungkan BM25 dengan dense retrieval melalui weighted-sum fusion.
Hasil: BM25 Baseline
Konfigurasi BM25 terbaik tanpa keterbacaan menggunakan kombinasi field code text (bobot 5), docstring str (bobot 1), dan code tokens (bobot 6), menghasilkan MRR@10 sebesar 0,457 dan nDCG@10 sebesar 0,217. Temuan penting dari pengujian baseline ini adalah bahwa pencarian yang hanya mengandalkan code text saja menghasilkan skor MRR dan nDCG terendah, sementara penambahan code tokens memberikan peningkatan substansial. Keberadaan docstring text menunjukkan pengaruh terbatas karena docstring dalam dataset tidak selalu selaras dengan konten fungsional kode yang dijelaskan.
Hasil: Boosting dan Re-Scoring dengan KERTA
Penambahan boosting berbasis KERTA dengan fungsi linear (scale) menghasilkan MRR@10 sebesar 0,481 dan nDCG@10 sebesar 0,224, meningkat sekitar 5,15% dibanding baseline BM25 terbaik. Fungsi boosting non-linear seperti square root, logaritma, dan pangkat tidak memberikan peningkatan yang signifikan dibanding fungsi linear.
Di antara strategi re-scoring, multiplicative re-scoring menghasilkan performa terbaik dengan MRR@10 sebesar 0,492 dan nDCG@10 sebesar 0,227, meningkat sekitar 7,44% dibanding baseline. Kombinasi optimal yang menghasilkan performa ini menggunakan konfigurasi code text bobot 6, docstring str bobot 1, code tokens bobot 8, dengan lambda = 0,15 untuk multiplicative re-scoring.
Hasil: Model Hibrid (BM25 + Dense Vector + KERTA)
Pengujian model hibrid dilakukan dengan menggabungkan dense retrieval berbasis vektor dengan BM25 yang telah di-rescore menggunakan KERTA melalui metode weighted-sum fusion. Dengan parameter alpha = 0,35 dan normalisasi min-max, model hibrid mencapai MRR@10 sebesar 0,507 dan nDCG@10 sebesar 0,281. Dibanding baseline BM25, ini merupakan peningkatan sekitar 10,87% untuk MRR@10 dan 29,54% untuk nDCG@10.
Meskipun margin antara model hibrid dan pendekatan multiplicative re-scoring saja hanya sekitar 3%, model hibrid tetap lebih unggul karena dense vector menangkap kesamaan semantik antara query dan kode bahkan tanpa kecocokan istilah langsung, sementara BM25 mempertahankan keunggulannya dalam menangkap kecocokan terminologis yang eksplisit. Normalisasi skor dengan pendekatan min-max memainkan peran krusial dalam membuat skor dense dan BM25 sebanding sebelum fusion.
Arsitektur akhir sistem ini dapat diinterpretasikan sebagai tiga lapisan: retrieval leksikal BM25 untuk menangkap kecocokan istilah langsung, quality-aware rescoring menggunakan KERTA untuk memprioritaskan kode yang mudah dibaca dan terstruktur dengan baik, serta semantic retrieval menggunakan dense KNN yang menambahkan konteks semantik dari embedding yang dilatih dengan keselarasan kode–teks.
Kesimpulan
BM25 dengan konfigurasi field dan parameter yang dioptimalkan berfungsi sebagai baseline leksikal yang kuat untuk code retrieval. Integrasi skor keterbacaan KERTA, baik melalui boosting maupun re-scoring, terbukti meningkatkan efektivitas perankingan. Boosting memberikan peningkatan moderat, sementara strategi re-scoring menawarkan kombinasi skor yang lebih presisi. Model berbasis vektor padat secara individual tidak mengungguli BM25, namun berperan komplementer. Ketika digabungkan dengan BM25 dan skor KERTA dalam skema hybrid re-scoring, pendekatan ini menghasilkan performa terbaik di antara semua konfigurasi yang diuji. Dengan demikian, kombinasi relevansi sparse dan dense yang diperkuat sinyal keterbacaan adalah strategi paling efektif untuk meningkatkan kualitas code retrieval.
Paper ini cocok disitasi oleh peneliti yang tengah mencari penelitian yang:
- Mengkaji strategi perankingan berbasis keterbacaan kode (code readability) dalam sistem code search
- Membandingkan efektivitas metode BM25, boosting, re-scoring, dan hybrid retrieval untuk pencarian kode sumber
- Meneliti integrasi sinyal kualitas kode intrinsik ke dalam pipeline information retrieval leksikal maupun semantik
- Mengeksplorasi kombinasi sparse dan dense retrieval untuk meningkatkan akurasi pencarian kode di repositori berskala besar
- Membutuhkan benchmark komprehensif tentang strategi perankingan readability-aware pada dataset CodeSearchNet Java
- Mengembangkan sistem code search yang mempertimbangkan tidak hanya relevansi semantik tetapi juga kualitas dan keterbacaan kode yang dikembalikan
Judul: Benchmarking Readability-Aware Boosting and Re-Scoring Techniques for Hybrid Lexical–Dense Code Search
Penulis: Budi Susanto, Ridi Ferdiana, Teguh Bharata Adji (Departemen Teknik Elektro dan Teknologi Informasi, Universitas Gadjah Mada, Yogyakarta)
Unduh Paper di : https://doi.org/10.1109/ICAIIC68212.2026.11454352