Untitled
void scase () { print('=== Program perhitungan restoran ==='); stdout.write('Mau pesan berapa nih? : '); int? jumlahMenu = int.tryParse(stdin.readLineSync()!); if (jumlahMenu == null || jumlahMenu <= 0) { print('Harga makanan tidak valid'); return; } double totalHarga = 0; List<String> rincianPesanan = []; for (int i = 1; i <= jumlahMenu; i++) { stdout.write('\n Masukan nama menu ke-$i : '); String? namaMenu = stdin.readLineSync(); stdout.write('Masukan harga menu : Rp. '); double? harga = double.tryParse(stdin.readLineSync()!); stdout.write('Masukan jumlah pesanan : '); int? jumlahItem = int.tryParse(stdin.readLineSync()!); if (namaMenu == null || harga == null || jumlahItem == null || harga <= 0 || jumlahItem <= 0) { print('inputan tidak valid, silahkan coba lagi'); return; } double subtotal = harga * jumlahItem; rincianPesanan.add('$i., $namaMenu, x$jumlahItem = Rp${subtotal.toStringAsFixed(0)}'); totalHarga += subtotal; } // Hitung diskon double diskon = 0; if (totalHarga > 500000) { diskon = totalHarga * 0.1; } else if (totalHarga > 250000) { diskon = totalHarga * 0.05; } else if (totalHarga > 100000) { diskon = totalHarga * 0.02; } // Hitung pajak double totalSetelahDiskon = totalHarga - diskon; double pajak = totalSetelahDiskon * 0.10; // Hitung total akhir double totalAkhir = totalSetelahDiskon + pajak; // Tampilkan rincian pesanan print("\n=== Rincian Pesanan ==="); rincianPesanan.forEach(print); print("\nTotal harga sebelum diskon: Rp${totalHarga.toStringAsFixed(0)}"); print("Diskon (${diskon > 0 ? (diskon / totalHarga * 100).toStringAsFixed(0) : 0}%): Rp${diskon.toStringAsFixed(0)}"); print("Pajak (10%): Rp${pajak.toStringAsFixed(0)}"); print("Total akhir yang harus dibayar: Rp${totalAkhir.toStringAsFixed(0)}"); }
Leave a Comment