Admin
unknown
java
a year ago
4.5 kB
4
Indexable
package assignments.assignment3.systemCLI; import java.util.ArrayList; import java.util.Scanner; import assignments.assignment3.Restaurant; import assignments.assignment3.Menu; //Memungkinkan admin untuk menambah dan menghapus restoran public class AdminSystemCLI extends UserSystemCLI { private ArrayList<Restaurant> restaurants; // Daftar yang menyimpan semua restoran private Scanner scanner; // Scanner untuk membaca input dari pengguna public AdminSystemCLI(ArrayList<Restaurant> restaurants) { this.restaurants = restaurants; this.scanner = new Scanner(System.in); } public void closeScanner() { if (scanner != null) { scanner.close(); scanner = null; // Help GC } } //Menangani menu utama admin berdasarkan perintah yang dimasukkan @Override public boolean handleMenu(int command) { switch (command) { case 1 -> handleTambahRestoran(); case 2 -> handleHapusRestoran(); case 3 -> { closeScanner(); return false; } default -> System.out.println("Perintah tidak diketahui, silakan coba kembali"); } return true; } // Menampilkan menu admin. @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: "); } // Menangani penambahan restoran baru protected void handleTambahRestoran() { System.out.print("Masukkan nama restoran: "); String namaRestoran = scanner.nextLine().trim(); // Validasi panjang nama restoran minimal 4 karakter if (namaRestoran.length() < 4) { System.out.println("Nama Restoran tidak valid! Masukkan nama yang memiliki minimal 4 karakter."); return; // Kembali ke menu utama jika nama tidak valid } // Cek apakah restoran sudah terdaftar if (checkIfRestaurantExists(namaRestoran)) { System.out.println("Restoran dengan nama tersebut sudah terdaftar."); return; } System.out.print("Jumlah Makanan: "); int menuCount = Integer.parseInt(scanner.nextLine()); // Mengambil jumlah item menu ArrayList<Menu> menuList = new ArrayList<>(); for (int i = 0; i < menuCount; i++) { System.out.print("Masukkan nama makanan: "); String namaMakanan = scanner.nextLine(); System.out.print("Masukkan harga: "); double harga; try { harga = Double.parseDouble(scanner.nextLine()); } catch (NumberFormatException e) { System.out.println("Harga harus berupa angka. Silakan masukkan kembali nama dan harga makanan."); i--; // Mengulang input untuk item menu ini continue; } menuList.add(new Menu(namaMakanan, harga)); } // Menambahkan restoran ke daftar dengan lokasi default restaurants.add(new Restaurant(namaRestoran, menuList, "Default Location")); // Menetapkan lokasi default atau modifikasi sesuai kebutuhan System.out.println("Restaurant " + namaRestoran + " berhasil terdaftar."); } // Menangani penghapusan restoran yang ada protected void handleHapusRestoran() { System.out.print("Masukkan nama restoran yang akan dihapus: "); String namaRestoran = scanner.nextLine().trim(); if (removeRestaurant(namaRestoran)) { System.out.println("Restoran berhasil dihapus."); } else { System.out.println("Restoran tidak ditemukan."); } } //Mengecek apakah restoran sudah terdaftar private boolean checkIfRestaurantExists(String namaRestoran) { return restaurants.stream().anyMatch(restaurant -> restaurant.getNama().equalsIgnoreCase(namaRestoran)); } // Menghapus restoran berdasarkan nama private boolean removeRestaurant(String namaRestoran) { return restaurants.removeIf(restaurant -> restaurant.getNama().equalsIgnoreCase(namaRestoran)); } }
Editor is loading...
Leave a Comment