├── 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 |
--------------------------------------------------------------------------------