Untitled
import 'dart:io'; void main() { List<Map<String, dynamic>> menu = [ {"nama": "Nasi Goreng", "harga": 20000}, {"nama": "Mie Ayam", "harga": 15000}, {"nama": "Ayam Geprek", "harga": 18000}, {"nama": "Es Teh", "harga": 5000}, {"nama": "Jus Jeruk", "harga": 10000} ]; List<Map<String, dynamic>> keranjang = []; int totalHarga = 0; while (true) { print("\n========== MENU UTAMA =========="); print("1. Lihat Menu"); print("2. Pesan Makanan/Minuman"); print("3. Lihat Keranjang"); print("4. Keluar"); stdout.write("Pilih menu (1-4): "); String? pilihan = stdin.readLineSync(); switch (pilihan) { case '1': tampilkanMenu(menu); break; case '2': pesanMenu(menu, keranjang); totalHarga = hitungTotal(keranjang); break; case '3': tampilkanKeranjang(keranjang, totalHarga); break; case '4': print("\nTerima kasih telah memesan. Sampai jumpa!"); exit(0); default: print("Pilihan tidak valid! Silakan pilih kembali."); } } } void tampilkanMenu(List<Map<String, dynamic>> menu) { print("\n========== DAFTAR MENU =========="); for (int i = 0; i < menu.length; i++) { print("${i + 1}. ${menu[i]['nama']} - Rp${menu[i]['harga']}"); } } void pesanMenu(List<Map<String, dynamic>> menu, List<Map<String, dynamic>> keranjang) { tampilkanMenu(menu); stdout.write("\nMasukkan nomor menu yang ingin dipesan: "); String? input = stdin.readLineSync(); int? nomorMenu = int.tryParse(input ?? ''); if (nomorMenu != null && nomorMenu > 0 && nomorMenu <= menu.length) { stdout.write("Masukkan jumlah pesanan: "); String? jumlahInput = stdin.readLineSync(); int? jumlah = int.tryParse(jumlahInput ?? ''); if (jumlah != null && jumlah > 0) { Map<String, dynamic> item = { "nama": menu[nomorMenu - 1]['nama'], "harga": menu[nomorMenu - 1]['harga'], "jumlah": jumlah }; keranjang.add(item); print("\nā ${item['nama']} (${item['jumlah']}x) berhasil ditambahkan ke keranjang!"); } else { print("Jumlah pesanan harus berupa angka positif!"); } } else { print("Nomor menu tidak valid!"); } } void tampilkanKeranjang(List<Map<String, dynamic>> keranjang, int totalHarga) { if (keranjang.isEmpty) { print("\nš Keranjang masih kosong."); return; } print("\n========== KERANJANG =========="); for (var item in keranjang) { print("${item['nama']} - ${item['jumlah']}x - Rp${item['harga'] * item['jumlah']}"); } print("Total Harga: Rp$totalHarga"); } int hitungTotal(List<Map<String, dynamic>> keranjang) { int total = 0; for (var item in keranjang) { total += item['harga'] * item['jumlah']; } return total; }
Leave a Comment