Untitled
unknown
plain_text
2 years ago
4.6 kB
9
Indexable
// 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);
}
}
Editor is loading...
Leave a Comment