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

ABSTRAK Jundan Haris
Terbatas  Esha Mustika Dewi
» Gedung UPT Perpustakaan

Seiring meningkatnya adopsi paradigma berorientasi objek dalam proyek JavaScript, masalah desain seperti ketergantungan antar kelas yang berlebihan (high coupling) menjadi tantangan signifikan. Kakas analisis statis yang ada saat ini kurang memiliki fokus untuk mendeteksi code smells kategori "Couplers", yang merupakan akar dari masalah ini. Penelitian ini bertujuan untuk menjembatani celah tersebut dengan merancang dan mengembangkan sebuah plugin ESLint yang didedikasikan untuk mendeteksi empat code smells Couplers: Feature Envy, Inappropriate Intimacy, Message Chains, dan Middle Man. Dengan menggunakan pendekatan berbasis aturan melalui analisis Abstract Syntax Tree (AST), penelitian ini merumuskan serangkaian heuristik spesifik untuk setiap smell. Heuristik ini didefinisikan berdasarkan definisi code smells serta metrik kuantitatif seperti rasio akses fitur, kedalaman rantai pemanggilan, dan deteksi pola nama privat. Hasilnya adalah sebuah plugin ESLint fungsional bernama eslint-plugin-couplers yang divalidasi melalui pengujian unit serta studi kasus pada proyek open-source Axios. Pengujian unit berhasil memverifikasi fungsionalitas setiap aturan dan pengujian pada Axios berhasil mengidentifikasi 25 potensi code smells, yang membuktikan efektivitas plugin dalam skenario dunia nyata, namun juga menunjukkan adanya keterbatasan dari analisis berbasis sintaksis murni dalam memahami konteks desain yang kompleks, yaitu tidak bisa membedakan pola fluent interface dari message chains, melacak alias variabel untuk inappropriate intimacy, dan menganalisis aliran variabel untuk feature envy.