Figure 1. Kode Program (Sumber: https://www.pexels.com/)

Dalam dunia pengembangan perangkat lunak, kualitas kode adalah hal yang sangat krusial. Salah satu indikator rendahnya kualitas kode adalah Code Smell — istilah yang digunakan untuk menyebut gejala pada kode yang terlihat salah, meskipun belum tentu menyebabkan bug secara langsung.

Apa Itu Code Smell?

Istilah Code Smell pertama kali dipopulerkan oleh Kent Beck dalam buku “Refactoring: Improving the Design of Existing Code” oleh Martin Fowler. Code Smell adalah indikasi adanya masalah dalam struktur kode yang bisa menyulitkan pemeliharaan, pengujian, dan pengembangan lanjutan.

Contoh Code Smells Umum dan Cara Menghindarinya

  1. Duplicated Code

Masalah: Blok kode yang sama muncul di beberapa tempat.

Solusi: Refactor dengan membuat method/function reusable. Gunakan prinsip DRY (Don’t Repeat Yourself).

  1. Long Method

Masalah: Fungsi terlalu panjang dan melakukan banyak hal.

Solusi: Pecah menjadi beberapa fungsi yang lebih kecil dan jelas (prinsip SRP – Single Responsibility Principle).

  1. Large Class

Masalah: Kelas menangani terlalu banyak tanggung jawab.

Solusi: Bagi menjadi beberapa kelas sesuai tanggung jawabnya masing-masing.

  1. Primitive Obsession

Masalah: Menggunakan tipe data primitif untuk hal kompleks (misalnya menggunakan string untuk menyimpan email, phone number, dll).

Solusi: Bungkus data tersebut dalam class khusus (value object).

  1. Speculative Generality

Masalah: Menambahkan kode “untuk berjaga-jaga” yang belum diperlukan.

Solusi: Fokus pada kebutuhan sekarang (YAGNI – You Aren’t Gonna Need It).

 

Cara Menghindari dan Mengatasi Code Smells

  • Refactoring Secara Berkala: Lakukan refactor kecil setelah menambahkan fitur untuk menjaga struktur tetap rapi.
  • Code Review dan Pair Programming: Melibatkan orang lain akan membantu menemukan bau yang tidak terdeteksi sendiri.
  • Ikuti Prinsip SOLID dan Clean Code: Panduan desain yang baik dapat mencegah code smell sejak awal.
  • Gunakan Static Code Analysis Tools: Tools seperti SonarQube, PMD, ESLint, dan lainnya bisa mendeteksi code smell secara otomatis.

 

 

Referensi:

  • Martin Fowler. Refactoring: Improving the Design of Existing Code, 2nd Edition, Addison-Wesley, 2018.
  • Kent Beck & Martin Fowler. https://martinfowler.com/bliki/CodeSmell.html
  • Robert C. Martin. Clean Code: A Handbook of Agile Software Craftsmanship, 2008.
  • SonarSource Documentation: https://docs.sonarsource.com