Latihan 1: DRY (Don't Repeat Yourself) — Clean Code

Latihan 1 dari materi DRY (Don't Repeat Yourself) di Clean Code — praktek dengan editor kode interaktif, test case otomatis, dan hint terpandu. Langsung jalan di browser.

Tiga fungsi di editor masing-masing memformat rupiah sendiri dengan 'Rp ' + angka.toLocaleString('id-ID'). Hilangkan duplikasinya:

  1. Buat function formatRupiah(amount) yang mengembalikan 'Rp ' + amount.toLocaleString('id-ID'). Contoh: formatRupiah(200000) mengembalikan 'Rp 200.000', formatRupiah(1500) mengembalikan 'Rp 1.500'.
  2. Ubah showProduct, showCartTotal dan showDiscount supaya memanggil formatRupiah, bukan memformat sendiri.
  3. toLocaleString cuma boleh tertulis sekali di seluruh kode, yaitu di dalam formatRupiah.
  4. Tiga console.log di bawah tetap seperti semula. Output-nya harus tetap persis:
Laptop: Rp 15.000.000
Total: Rp 400.000
Rp 200.000 -> Rp 150.000

Ketiga fungsi juga diuji dengan data lain: showProduct({ name: 'Meja', price: 250000 }) harus 'Meja: Rp 250.000', showCartTotal([{ price: 1000, qty: 2 }]) harus 'Total: Rp 2.000', dan showDiscount(1000, 500) harus 'Rp 1.000 -> Rp 500'.

Hint