├── index.html └── main.js /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | System - Kasir 7 | 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /main.js: -------------------------------------------------------------------------------- 1 | let keranjangBelanja = []; 2 | 3 | function main() { 4 | alert("Selamat datang di Sistem Kasir!"); 5 | 6 | while (true) { 7 | let pilihan = prompt( 8 | "Pilih menu:\n1. Tambahkan barang\n2. Hitung total\n3. Keluar\nMasukkan nomor pilihan:" 9 | ); 10 | 11 | if (pilihan === "1") { 12 | let namaBarang = prompt("Masukkan nama barang:"); 13 | let hargaBarang = parseFloat(prompt("Masukkan harga barang:")); 14 | 15 | if (!isNaN(hargaBarang)) { 16 | tambahBarang(namaBarang, hargaBarang); 17 | alert(`Barang ${namaBarang} berhasil ditambahkan.`); 18 | } else { 19 | alert("Harga barang tidak valid!"); 20 | } 21 | } else if (pilihan === "2") { 22 | let total = hitungTotal(); 23 | alert("Total harga semua barang: Rp" + total); 24 | tampilkanKeranjang(0); 25 | } else if (pilihan === "3") { 26 | keluar(); 27 | break; 28 | } else { 29 | alert("Pilihan tidak valid, coba lagi."); 30 | } 31 | } 32 | } 33 | 34 | function tambahBarang(nama, harga) { 35 | keranjangBelanja.push({ nama: nama, harga: harga }); 36 | } 37 | 38 | function hitungTotal() { 39 | let total = 0; 40 | for (let item of keranjangBelanja) { 41 | total += item.harga; 42 | } 43 | return total; 44 | } 45 | 46 | function tampilkanKeranjang(index) { 47 | if (index >= keranjangBelanja.length) return; 48 | alert( 49 | `${index + 1}. ${keranjangBelanja[index].nama} - Rp${ 50 | keranjangBelanja[index].harga 51 | }` 52 | ); 53 | tampilkanKeranjang(index + 1); 54 | } 55 | 56 | const keluar = function () { 57 | let confir = confirm("Apakah Anda yakin ingin keluar?"); 58 | if(!confir) { 59 | main(); 60 | } else { 61 | alert("Terima kasih telah belanja!"); 62 | } 63 | }; 64 | 65 | main(); 66 | --------------------------------------------------------------------------------