Switch Case
package pkg.switchcase;
import java.util.Scanner;
public class SwitchCase {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int totalSemuaBiaya = 0; // Variabel untuk mengakumulasi total biaya dari semua pembelian
boolean ulangi = true;
System.out.println("=== PROGRAM PEMESANAN WARUNG SEDERHANA ===");
// Loop do-while untuk mengulang pembelian
do {
int harga = 0;
String namaMenu = "";
double diskon = 0;
// --- Menu Utama ---
System.out.println("\n=== MENU UTAMA ===");
System.out.println("1. Sate");
System.out.println("2. Pecel");
System.out.println("3. Penyetan");
System.out.println("4. Selesai Memesan & Hitung Total");
System.out.print("Pilih menu (1-4): ");
if (!sc.hasNextInt()) {
System.out.println("Input tidak valid. Silakan masukkan angka.");
sc.next(); // Membersihkan input yang salah
continue; // Lanjut ke iterasi loop berikutnya
}
int menuUtama = sc.nextInt();
if (menuUtama == 4) {
ulangi = false; // Keluar dari loop
break;
}
// --- Logika Submenu (Switch Case Utama) ---
switch (menuUtama) {
case 1: // Sate - 2 pilihan, gunakan if-else
System.out.println("Submenu Sate:");
System.out.println("1. Ayam (Rp 1.500/tusuk)");
System.out.println("2. Kambing (Rp 3.000/tusuk)");
System.out.print("Pilih submenu (1-2): ");
int submenuSate = sc.nextInt();
if (submenuSate == 1) {
harga = 1500;
namaMenu = "Sate Ayam";
} else if (submenuSate == 2) {
harga = 3000;
namaMenu = "Sate Kambing";
} else {
System.out.println("Pilihan submenu tidak valid. Mulai pemesanan baru.");
continue; // Lanjut ke iterasi loop berikutnya
}
break;
case 2: // Pecel - 2 pilihan, gunakan if-else
System.out.println("Submenu Pecel:");
System.out.println("1. Lauk Ayam (Rp 13.000/porsi)");
System.out.println("2. Lauk Empal (Rp 15.000/porsi)");
System.out.print("Pilih submenu (1-2): ");
int submenuPecel = sc.nextInt();
if (submenuPecel == 1) {
harga = 13000;
namaMenu = "Pecel Lauk Ayam";
} else if (submenuPecel == 2) {
harga = 15000;
namaMenu = "Pecel Lauk Empal";
} else {
System.out.println("Pilihan submenu tidak valid. Mulai pemesanan baru.");
continue;
}
break;
case 3: // Penyetan - 3 pilihan, gunakan switch-case
System.out.println("Submenu Penyetan:");
System.out.println("1. Lauk Tahu/Tempe (Rp 5.000/porsi)");
System.out.println("2. Lauk Telur (Rp 7.000/porsi)");
System.out.println("3. Lauk Ayam (Rp 10.000/porsi)");
System.out.print("Pilih submenu (1-3): ");
int submenuPenyetan = sc.nextInt();
switch (submenuPenyetan) {
case 1:
harga = 5000;
namaMenu = "Penyetan Lauk Tahu/Tempe";
break;
case 2:
harga = 7000;
namaMenu = "Penyetan Lauk Telur";
break;
case 3:
harga = 10000;
namaMenu = "Penyetan Lauk Ayam";
break;
default:
System.out.println("Pilihan submenu tidak valid. Mulai pemesanan baru.");
continue;
}
break;
default:
System.out.println("Pilihan menu tidak valid. Silakan pilih menu yang tersedia.");
continue; // Lanjut ke iterasi loop berikutnya
}
// Input jumlah yang dibeli
System.out.print("Masukkan jumlah yang dibeli untuk " + namaMenu + ": ");
int jumlah = sc.nextInt();
// Hitung total biaya sebelum diskon
int totalBiaya = harga * jumlah;
// Tanya kartu member
System.out.print("Apakah pembelian " + namaMenu + " ini memiliki kartu member? (y/t): ");
String member = sc.next().toLowerCase();
if (member.equals("y")) {
diskon = 0.05; // 5%
System.out.println("Anda mendapatkan diskon 5% sebagai member untuk pembelian ini.");
} else {
System.out.println("Tidak ada diskon untuk pembelian ini.");
}
// Hitung biaya akhir
double biayaAkhirBeliIni = totalBiaya - (totalBiaya * diskon);
// Akumulasi total biaya
totalSemuaBiaya += (int) biayaAkhirBeliIni;
// Tampilkan hasil pembelian saat ini
System.out.println("\n=== STRUK PEMBELIAN SAAT INI ===");
System.out.println("Menu: " + namaMenu + " (" + jumlah + " porsi/tusuk)");
System.out.println("Harga Satuan: Rp " + harga);
System.out.println("Total Biaya Sebelum Diskon: Rp " + totalBiaya);
if (diskon > 0) {
System.out.println("Diskon Member (5%): Rp " + (totalBiaya * diskon));
}
System.out.println("**Biaya Akhir Pembelian Ini: Rp " + (int) biayaAkhirBeliIni + "**");
System.out.println("Total Akumulasi Biaya Sementara: Rp " + totalSemuaBiaya);
} while (ulangi); // Lanjutkan selama ulangi masih true
// --- Tampilkan Total Biaya Keseluruhan ---
System.out.println("\n===============================");
System.out.println("=== RINGKASAN SELURUH PEMBELIAN ===");
System.out.println("Total Biaya dari Seluruh Pembelian (Setelah Diskon): **Rp " + totalSemuaBiaya + "**");
System.out.println("===============================");
sc.close();
}
}
Comments
Post a Comment