1. Kode Dibaca Jauh Lebih Sering daripada Ditulis
Rasio membaca kode dibanding menulis kode baru di industri adalah sekitar 10 banding 1. Menulis kode yang 'terlalu pintar' (one-liner membingungkan) bukanlah tanda kehebatan; kode terbaik adalah kode yang bahkan orang non-programmer pun bisa menebak tujuannya saat membaca namanya.
4 Prinsip Emas Clean Code
1. **Descriptive Naming**: Nama variabel harus mencerminkan maksud (Intention-Revealing). Hindari `x`, `temp`, `data2`, `arr`.
2. **DRY (Don't Repeat Yourself)**: Jangan salin-tempel (copy-paste) kode yang sama. Ekstrak menjadi fungsi atau modul yang dapat dipakai ulang.
3. **KISS (Keep It Simple, Stupid)**: Pilih solusi paling sederhana yang menyelesaikan masalah secara tuntas tanpa over-engineering.
4. **YAGNI (You Aren't Gonna Need It)**: Jangan bangun fitur rumit untuk skenario masa depan yang belum tentu terjadi sekarang.
Contoh Refactoring Kode Menjadi Bersih
javascript
| 1 | // ❌ KODE KOTOR: Nama variabel membingungkan & magic numbers |
| 2 | function prc(d) { |
| 3 | let t = 0; |
| 4 | for (let i = 0; i < d.length; i++) { |
| 5 | if (d[i].s === 1 && d[i].a > 18) { |
| 6 | t += d[i].p * 0.9; |
| 7 | } |
| 8 | } |
| 9 | return t; |
| 10 | } |
| 11 | |
| 12 | // ✅ CLEAN CODE: Terbaca jelas dan bermakna |
| 13 | const STATUS_AKTIF = 1; |
| 14 | const USIA_MINIMAL_DEWASA = 18; |
| 15 | const DISKON_MEMBER = 0.10; // 10% |
| 16 | |
| 17 | function hitungTotalBelanjaMemberDewasa(daftarPengguna) { |
| 18 | return daftarPengguna |
| 19 | .filter((user) => user.status === STATUS_AKTIF && user.usia > USIA_MINIMAL_DEWASA) |
| 20 | .reduce((total, user) => total + (user.tagihan * (1 - DISKON_MEMBER)), 0); |
| 21 | } |
Kuis Pemahaman
+10 XP
Apa kepanjangan dan arti dari prinsip 'DRY' dalam software engineering?