digilib@itb.ac.id +62 812 2508 8800

Abstrak - Vanson Kurnialim
Terbatas  Irwan Sofiyan
» Gedung UPT Perpustakaan

Code smell merupakan indikasi desain kode yang buruk atau praktik implementasi tidak efisien yang dapat menurunkan keterpeliharaan perangkat lunak. Meskipun berbagai pendekatan deteksi berbasis machine learning telah dikembangkan, masih terdapat dua tantangan yang belum terjawab: (1) kesenjangan representasi antara dataset akademis dengan persepsi praktisi industri, dan (2) minimnya keterangan atas keputusan deteksi yang mudah dipahami pengembang. Penelitian ini mengembangkan sistem deteksi code smells yang memadukan dataset akademis Fontana dkk. (2016) dan dataset industri ImprovMLCQ (Carneiro dkk., 2025), dengan smell God Class, Data Class, Long Method, dan Feature Envy pada kode sumber Java. Berbagai strategi pelatihan dan evaluasi dieksplorasi untuk mengatasi kesenjangan domain, meliputi cross-domain generalization, pembobotan model, rekayasa fitur, penyelarasan fitur, dan stacked ensemble. Sistem juga dilengkapi rule-based explainability module yang menghasilkan keterangan tekstual berbasis aturan metrik formal, seluruhnya diintegrasikan dalam kakas berbasis CLI. Evaluasi menunjukkan kesenjangan domain yang signifikan dengan selisih MCC tertinggi pada Long Method (0,78) dan terendah pada Feature Envy (0,39). Ditemukan strategi optimal yang berbeda untuk tiap smell. Pengujian end-to-end pada JFreeChart 2.0.0 berhasil mendeteksi 503 kelas dan 1.166 metode smelly dengan tingkat konsistensi rule-based mencapai 100% untuk tiga smell. Penelitian ini berkontribusi pada usaha pemaduan dataset lintas domain dan mekanisme penjelasan hasil deteksi ringan untuk mendukung pengambilan keputusan refactoring.