package main;
import [Link];
import [Link];
class Menu {
String nama;
double harga;
String kategori;
public Menu (String nama, double harga, String kategori) {
[Link] = nama;
[Link] = harga;
[Link] = kategori;
//List Menu Makanan dan Minuman
public class Main {
private static final Menu [] menuList = {
new Menu("Nasi Padang", 25000, "Makanan"),
new Menu("Sate Madura", 20000, "Makanan"),
new Menu("Ayam Bakar", 15000, "Makanan"),
new Menu("Soto Bogor", 20000, "Makanan"),
new Menu("Seblak Bandung", 15000, "Makanan"),
new Menu("Air Mineral", 3000, "Minuman"),
new Menu("Es Teh", 5000, "Minuman"),
new Menu("Es Jeruk", 8000, "Minuman"),
new Menu("Es Kelapa", 10000, "Minuman"),
new Menu("Jus Apel", 12000, "Minuman")
};
private static final DecimalFormat format = new DecimalFormat("###,###");
//Menampilkan Menu Makanan da Minuman
public static void tampilkanMenu () {
[Link]("=== Daftar Menu ===");
[Link]("\nMakanan: ");
for (Menu menu : menuList) {
if ([Link]("Makanan")) {
[Link]([Link] + " - Rp " + [Link]([Link]));
[Link]("\nMinuman: ");
for (Menu menu : menuList) {
if ([Link]("Minuman")) {
[Link]([Link] + " - Rp " + [Link]([Link]));
//Menghitung Total item yang dibeli
public static double calculateTotalCost(String[] orderedItems, int[] quantities) {
double totalCost = 0;
for (int i = 0; i < [Link]; i++) {
for (Menu menu : menuList) {
if ([Link](orderedItems[i])) {
totalCost += [Link] * quantities[i];
}
return totalCost;
//Menghitung Diskon
public static double applyDiscount(double totalCost) {
if (totalCost > 100000) {
return totalCost * 0.9; //Diskon 10%
return totalCost;
//Menghitung Total Belanja
public static void printReceipt(String[] orderedItems, int[] quantities, double totalCost) {
double tax = 0.1 * applyDiscount(totalCost);
double serviceCharge = 20000;
double totalBill = applyDiscount(totalCost) + tax + serviceCharge;
//Menampilkan Struk Pesanan
[Link]("\n=== Struk Pesanan ===");
for (int i = 0; i < [Link]; i++) {
for (Menu menu : menuList) {
if ([Link](orderedItems[i])) {
double itemCost = [Link] * quantities[i];
[Link](quantities[i] + "x " + [Link] + " - Rp " +
[Link]([Link]) + " = Rp " + [Link](itemCost));
//Menampilkan Total Biaya Pemesanan
[Link]("\nTotal Biaya Pemesanan : Rp " + [Link](totalCost));
//Penawaran beli satu gratis satu untuk minuman
if (totalCost >= 50000) {
[Link]("Anda mendapatkan penawaran beli satu gratis satu untuk minuman!");
double discountedTotal = applyDiscount(totalCost);
//Menampilkan Struk Pembelian
[Link]("Diskon 10%: Rp " + [Link](totalCost - discountedTotal));
[Link]("Total Biaya Setelah Diskon: Rp " + [Link](discountedTotal));
[Link]("Pajak (10%): Rp " + [Link](tax));
[Link]("Biaya Pelayanan: Rp " + [Link](serviceCharge));
[Link]("Total Tagihan: Rp " + [Link](totalBill));
//Menampilkan item yang akan dibeli
public static void main(String[] args) {
try (Scanner scanner = new Scanner([Link])) {
tampilkanMenu();
[Link]("\nMasukan pesanan And (max 4 item). Kosongkan untuk menyelesaikan
pesanan");
String[] orderedItems = new String[4];
int[] quantities = new int[4];
int itemCount = 0;
while (true) {
[Link]("Pesanan " + (itemCount + 1) + ": ");
String itemNama = [Link]();
if ([Link]()) {
break;
boolean itemFound = false;
for (Menu menu : menuList) {
if ([Link](itemNama)) {
itemFound = true;
orderedItems[itemCount] = [Link];
[Link]("Jumlah: ");
quantities[itemCount] = [Link]();
[Link](); //Clear the newline character
itemCount++;
break;
//Jika item tidak ada
if (!itemFound) {
[Link]("Menu tidak valid!");
//Menalpilkan maksimal pembelian
if (itemCount >= 4) {
[Link]("\nAnda telah mencapai maksimal pembelian");
break;
}
}
double totalCost = calculateTotalCost(orderedItems, quantities);
printReceipt(orderedItems, quantities, totalCost);