Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package id.ac.ut.tugaspemogramandesktop2;
- import java.text.NumberFormat;
- import java.util.Locale;
- import java.util.Scanner;
- /**
- *
- * @author Zain
- */
- class Menu {
- String nama;
- int harga;
- String kategori;
- Menu(String nama, int harga, String kategori) {
- this.nama = nama;
- this.harga = harga;
- this.kategori = kategori;
- }
- }
- public class TugasPemogramanDesktop2 {
- static Scanner input = new Scanner(System.in);
- static NumberFormat rupiah = NumberFormat.getInstance(new Locale("id", "ID"));
- // ================================================================
- // ARRAY MENU
- // ================================================================
- static Menu[] daftarMenu = new Menu[100];
- // ================================================================
- // ARRAY PESANAN
- // ================================================================
- static int[] pesananMenu = new int[100];
- static int[] jumlahPesanan = new int[100];
- static int jumlahMenu = 8;
- static {
- daftarMenu[0] = new Menu("Nasi Padang", 25000, "Makanan");
- daftarMenu[1] = new Menu("Mie Goreng", 20000, "Makanan");
- daftarMenu[2] = new Menu("Ayam Bakar", 30000, "Makanan");
- daftarMenu[3] = new Menu("Sate Ayam", 28000, "Makanan");
- daftarMenu[4] = new Menu("Es Teh", 5000, "Minuman");
- daftarMenu[5] = new Menu("Jus Jeruk", 10000, "Minuman");
- daftarMenu[6] = new Menu("Kopi", 8000, "Minuman");
- daftarMenu[7] = new Menu("Air Mineral", 4000, "Minuman");
- }
- public static void main(String[] args) {
- int pilihan;
- do {
- System.out.println("\n===================================================");
- System.out.println(" RESTORAN ZAIN SEPAKAT");
- System.out.println("===================================================");
- System.out.println("1. Pesan Menu");
- System.out.println("2. Kelola Menu");
- System.out.println("0. Keluar");
- System.out.println("===================================================");
- System.out.print("Pilih Menu :");
- pilihan = input.nextInt();
- switch (pilihan) {
- case 1:
- pesanMenu();
- break;
- case 2:
- kelolaMenu();
- break;
- case 0:
- System.out.println("Terima Kasih.");
- default:
- System.out.println("Menu tidak valid!");
- }
- } while (pilihan != 0);
- }
- // ================================================================
- // TAMPIL MENU
- // ================================================================
- static void tampilMenu() {
- System.out.println("\n===================================================");
- System.out.println(" DAFTAR MENU");
- System.out.println("===================================================");
- System.out.println("\n---- MAKANAN ----");
- for (int i = 0; i < jumlahMenu; i++) {
- if (daftarMenu[i].kategori.equalsIgnoreCase("Makanan")) {
- System.out.println((i + 1) + ". " + daftarMenu[i].nama + " - Rp. " + rupiah.format(daftarMenu[i].harga));
- }
- }
- System.out.println("\n---- MINUMAN ----");
- for (int i = 0; i < jumlahMenu; i++) {
- if (daftarMenu[i].kategori.equalsIgnoreCase("Minuman")) {
- System.out.println((i + 1) + ". " + daftarMenu[i].nama + " - Rp. " + rupiah.format(daftarMenu[i].harga));
- }
- }
- System.out.println("===================================================");
- }
- // ================================================================
- // PESAN MENU
- // ================================================================
- static void pesanMenu() {
- tampilMenu();
- int indexPesanan = 0;
- while (true) {
- System.out.println("\nInput 0 untuk selesai.");
- System.out.print("Pilih nomor menu: ");
- int pilih = input.nextInt();
- // VALIDASI
- while (pilih < 0 || pilih > jumlahMenu) {
- System.out.println("Nomor menu tidak valid!");
- System.out.print("Masukan ulang: ");
- pilih = input.nextInt();
- }
- if (pilih == 0) {
- break;
- }
- System.out.print("Jumlah Pesanan : ");
- int jumlah = input.nextInt();
- pesananMenu[indexPesanan] = pilih - 1;
- jumlahPesanan[indexPesanan] = jumlah;
- indexPesanan++;
- }
- hitungTotal(indexPesanan);
- }
- // ================================================================
- // HITUNG TOTAL
- // ================================================================
- static void hitungTotal(int totalPesanan) {
- int subtotal = 0;
- int diskonMinuman = 0;
- String bonusMinuman = "";
- System.out.println("\n===================================================");
- System.out.println(" STRUK PEMBAYARAN");
- System.out.println("===================================================");
- for (int i = 0; i < totalPesanan; i++) {
- Menu menu = daftarMenu[pesananMenu[i]];
- int totalHarga = menu.harga * jumlahPesanan[i];
- subtotal += totalHarga;
- System.out.println(menu.nama + " x " + jumlahPesanan[i] + " = Rp. " + rupiah.format(totalHarga));
- // PROMO MINUMAN
- if (menu.kategori.equalsIgnoreCase("Minuman")) {
- int gratis = jumlahPesanan[i] / 2;
- if (subtotal > 50000 && gratis > 0) {
- diskonMinuman += gratis * menu.harga;
- bonusMinuman = menu.nama;
- }
- }
- }
- // DISKON 10%
- int diskon = 0;
- if (subtotal > 100000) {
- diskon = subtotal * 10 / 100;
- }
- // PAJAK
- int setelahDiskon = subtotal - diskon - diskonMinuman;
- int pajak = setelahDiskon * 10 / 100;
- int service = 20000;
- int totalBayar = setelahDiskon + pajak + service;
- // CETAK TOTAL
- System.out.println("---------------------------------------------------");
- System.out.println("Subtotal = Rp. " + rupiah.format(subtotal));
- System.out.println("Diskon 10% = Rp. " + rupiah.format(diskon));
- System.out.println("Promo Minuman = Rp. " + rupiah.format(diskonMinuman));
- if (diskonMinuman > 0) {
- System.out.println("Bonus = " + bonusMinuman + " GRATIS");
- }
- System.out.println("Pajak = Rp. " + rupiah.format(pajak));
- System.out.println("Biaya Service = Rp. " + rupiah.format(service));
- System.out.println("---------------------------------------------------");
- System.out.println("TOTAL BAYAR = Rp. " + rupiah.format(totalBayar));
- System.out.println("===================================================");
- }
- // ================================================================
- // KELOLA MENU
- // ================================================================
- static void kelolaMenu() {
- int pilihan;
- do {
- System.out.println("\n===================================================");
- System.out.println(" KELOLA MENU");
- System.out.println("===================================================");
- System.out.println("1. Tambah Menu");
- System.out.println("2. Ubah Harga Menu");
- System.out.println("3. Hapus Menu");
- System.out.println("4. Lihat Menu");
- System.out.println("0. Keluar");
- System.out.println("===================================================");
- System.out.print("Pilih Menu :");
- pilihan = input.nextInt();
- switch (pilihan) {
- case 1:
- tambahMenu();
- break;
- case 2:
- ubahMenu();
- break;
- case 3:
- hapusMenu();
- break;
- case 4:
- tampilMenu();
- break;
- case 0:
- System.out.println("Kembali ke Menu Utama.");
- default:
- System.out.println("Pilihan tidak valid!");
- }
- } while (pilihan != 0);
- }
- // ================================================================
- // TAMBAH MENU
- // ================================================================
- static void tambahMenu() {
- char tambahLagi;
- do {
- System.out.print("Nama Menu : ");
- String nama = input.next();
- input.nextLine();
- System.out.print("Harga : ");
- int harga = input.nextInt();
- input.nextLine();
- System.out.print("Kategori (Makanan/Minuman) : ");
- String kategori = input.nextLine();
- daftarMenu[jumlahMenu] = new Menu(nama, harga, kategori);
- jumlahMenu++;
- System.out.println("Menu berhasil ditambahkan.");
- System.out.print("Tambah menu lagi ? (Y/T) : ");
- tambahLagi = input.next().charAt(0);
- input.nextLine();
- } while (tambahLagi == 'Y' || tambahLagi == 'y');
- }
- // ================================================================
- // UBAH MENU
- // ================================================================
- static void ubahMenu() {
- tampilMenu();
- System.out.print("Pilih nomor menu yang diubah : ");
- int nomor = input.nextInt();
- while(nomor < 1 || nomor > jumlahMenu) {
- System.out.println("Nomor Menu tidak valid!");
- System.out.print("Masukkan Ulang : ");
- nomor = input.nextInt();
- }
- Menu menu = daftarMenu[nomor - 1];
- System.out.println("Menu dipilih : " + menu.nama);
- System.out.print("Yakin ingin mengubah ? (Ya/Tidak) : ");
- String konfirmasi = input.next();
- if(konfirmasi.equalsIgnoreCase("Ya")) {
- System.out.print("Harga Baru : ");
- int hargaBaru = input.nextInt();
- menu.harga = hargaBaru;
- System.out.println("Harga berhasil diubah.");
- } else {
- System.out.println("Perubahan Dibatalkan.");
- }
- }
- // ================================================================
- // HAPUS MENU
- // ================================================================
- static void hapusMenu() {
- tampilMenu();
- System.out.print("Pilih nomor menu yang dihapus : ");
- int nomor = input.nextInt();
- while (nomor < 1 || nomor > jumlahMenu)
- {
- System.out.println("Nomor menu tidak valid!");
- System.out.print("Masukkan ulang : ");
- nomor = input.nextInt();
- }
- System.out.println("Menu dipilih : " + daftarMenu[nomor - 1].nama);
- System.out.print("Yakin ingin menghapus ? (Ya/Tidak) : ");
- String konfirmasi = input.next();
- if(konfirmasi.equalsIgnoreCase("Ya"))
- {
- for(int i = nomor - 1; i < jumlahMenu - 1; i++)
- {
- daftarMenu[i] = daftarMenu[i +1];
- }
- jumlahMenu--;
- System.out.println("Menu berhasil dihapus.");
- } else {
- System.out.println("Penghapusan dibatalkan.");
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment