Untitled

mail@pastecode.io avatar
unknown
plain_text
2 months ago
4.6 kB
3
Indexable
Never
// AdminSystemCLI.java
package assignments.assignment3.systemCLI;

import assignments.assignment2.Menu;
import assignments.assignment2.Restaurant;

import java.util.ArrayList;
import java.util.Scanner;

public class AdminSystemCLI extends UserSystemCLI {
    private Scanner input;
    private ArrayList<Restaurant> restoList;

    public AdminSystemCLI(Scanner input, ArrayList<Restaurant> restoList) {
        this.input = input;
        this.restoList = restoList;
    }

    @Override
    public void displayMenu() {
        System.out.println("\n--------------------------------------------");
        System.out.println("Pilih menu:");
        System.out.println("1. Tambah Restoran");
        System.out.println("2. Hapus Restoran");
        System.out.println("3. Keluar");
        System.out.println("--------------------------------------------");
        System.out.print("Pilihan menu: ");
    }

    @Override
    protected boolean handleMenu(int command){
        switch(command){
            case 1 -> {
                handleTambahRestoran();
                return true;
            }
            case 2 -> {
                handleHapusRestoran();
                return true;
            }
            case 3 -> {
                return false;
            }
            default -> {
                System.out.println("Perintah tidak diketahui, silakan coba kembali");
                return true;
            }
        }
    }

    // Method untuk penambahan restoran baru
    public void handleTambahRestoran(){
        String nama;
        boolean isRestoranExist = false;
        do {
            System.out.println("Tambah Restoran");
            System.out.print("Nama: ");
            nama = input.nextLine();
            // Memeriksa apakah nama restoran vald dan belum terdaftar
            if (nama.length() < 4) {
                System.out.println("Nama restoran tidak valid. Mohon masukkan nama yang memiliki minimal 4 karakter!");
                continue;
            }
            isRestoranExist = false;
            for (Restaurant r : restoList) {
                if (r.getNama().equalsIgnoreCase(nama)) {
                    System.out.println("Restoran dengan nama " + nama + " sudah pernah terdaftar. Mohon masukkan nama yang berbeda!");
                    isRestoranExist = true;
                    break;
                }
            }
        } while (isRestoranExist || nama.length() < 4);
    
        System.out.print("Jumlah Makanan: ");
        int jumlahMakanan = input.nextInt();
        input.nextLine();
        ArrayList<Menu> menu = new ArrayList<>();
        // Meminta pengguna untuk memasukkan item menu yang tersedia di restoran
        for (int i = 0; i < jumlahMakanan; i++) {
            System.out.print("Nama Makanan: ");
            String namaMakanan = input.nextLine();
            double harga;
            do {
                System.out.print("Harga: ");
                while (!input.hasNextDouble()) {
                    System.out.println("Harga menu harus bilangan bulat!");
                    System.out.print("Harga: ");
                    input.next();
                }
                harga = input.nextDouble();
            } while (harga <= 0);
            input.nextLine();
            menu.add(new Menu(namaMakanan, harga));
        }
        // Menambhakan restoran baru ke daftar restoran
        restoList.add(new Restaurant(nama, menu));
        System.out.println("Restaurant " + nama + " berhasil terdaftar.");
    } 

    // Method untuk penghapusan restoran
    public void handleHapusRestoran() {
        Restaurant resto = null;
        do {
            System.out.println("Hapus Restoran");
            System.out.print("Nama Restoran: ");
            String nama = input.nextLine();
            // Mencari restoran berdasarkan nama
            for (Restaurant r : restoList) {
                if (r.getNama().equalsIgnoreCase(nama)) {
                    resto = r;
                    break;
                }
            }
            // Jika restoran tidak ditemukan, kembali ke menu
            if (resto == null) {
                System.out.println("Restoran tidak terdaftar pada sistem. Silakan masukkan lagi.");
            } else {
                // Menghapus restoran dari daftar restoran
                restoList.remove(resto);
                System.out.println("Restoran berhasil dihapus.");
            }
        } while (resto == null);
    }
}
Leave a Comment