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:
Buat function formatRupiah(amount) yang mengembalikan 'Rp ' + amount.toLocaleString('id-ID'). Contoh: formatRupiah(200000) mengembalikan 'Rp 200.000', formatRupiah(1500) mengembalikan 'Rp 1.500'.
Ubah showProduct, showCartTotal dan showDiscount supaya memanggil formatRupiah, bukan memformat sendiri.
toLocaleString cuma boleh tertulis sekali di seluruh kode, yaitu di dalam formatRupiah.
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
Cara menulis rupiah adalah satu pengetahuan yang sekarang tertulis empat kali. Pindahkan ke satu fungsi, lalu semua tempat memanggilnya.
formatRupiah menerima angka dan mengembalikan 'Rp ' + angka.toLocaleString('id-ID'). Di showDiscount, kedua angkanya lewat formatRupiah. Setelah itu cari toLocaleString di kode: harus tinggal satu.
function formatRupiah(amount) { return 'Rp ' + amount.toLocaleString('id-ID'); } lalu function showProduct(product) { return product.name + ': ' + formatRupiah(product.price); } dan function showDiscount(original, discounted) { return formatRupiah(original) + ' -> ' + formatRupiah(discounted); }
</>{ }.css=>#idfn()
Versi baru
HyperSheets
bagian dari BelajarWeb.dev
0%
Membuka gerbang…
HyperSheets
Memperbarui Aplikasi
Versi baru tersedia. Halaman akan dimuat ulang otomatis...