Materi
Kasir Toko Nusantara menyetor rekap harian dalam dua bentuk: baris mentah yang tertulis sebagai teks dari mesin kasir, dan daftar objek yang sudah rapi dari aplikasi stok. Empat latihan berikut menyatukan seluruh isi modul ini: tuple untuk baris yang posisinya tetap, array objek untuk daftar yang panjangnya berubah-ubah, dan anotasi nilai kembali supaya bentuk hasilnya ikut dijaga kompiler.
Angka di sini memakai Rupiah tanpa titik pemisah, sama seperti yang dikirim mesin kasir. Setiap fungsi dipanggil test dengan lebih dari satu kasus, termasuk daftar kosong, karena rekap di hari libur memang bisa tidak berisi apa-apa.
Urutan kerjanya sama di keempat latihan: tetapkan dulu bentuk data di anotasi, baru tulis badan fungsinya. Selama anotasinya masih longgar, misalnya string[] untuk baris yang berisi angka, kompiler menolak perhitungan yang sebenarnya benar, dan pesan error itulah penunjuk bagian yang perlu diubah lebih dulu.
// Dua bentuk data yang dipakai empat latihan berikut.
const dariMesinKasir = "Kopi Gayo:3";
const satuBaris = ["Kopi Gayo", 3, 85000];
const dariAplikasiStok = [
{ nama: "Kopi Gayo", jumlah: 3, harga: 85000 },
{ nama: "Gula Pasir", jumlah: 2, harga: 15000 },
];