package Kuliah;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
public class AppWarungSederhana {
static Scanner sc = new Scanner(System.in);
static int jumlah[] = new int[15];
static int strukharga[] = new int[5];
static int struk=0, grandTotal=0, uangpembeli=0, kembali=0;
static int totalbeli[] = new int [15];
static int idx = 0;
static String strukmenu[] = new String[15];
static String sellsdat [] = new String [15];
static int porsidat [] = new int [15];
static int pricedat [] = new int [15];
static int subdat [] = new int [15];
static int grandat = 0, data = 0;
static int hari = 1;
static String sellsdat1 [] = new String[15];
static int porsidat1[] = new int [15];
static String[] sort(int count, String [] menu, int [] harga){
for (int i = 0; i < count; i++) {
for (int j = 0; j < count-1; j++) {
if (menu[j].compareToIgnoreCase(menu[j+1])>0){
String t = menu [j];
menu [j] = menu [j+1];
menu [j+1] = t;
int temp1 = harga [j];
harga [j]= harga [j+1];
harga [j+1] = temp1;
}
}
}
return menu;
}
static void subtotal() {
jumlah[struk] = sc.nextInt();
totalbeli[struk]=jumlah[struk]*strukharga[struk];
grandTotal=grandTotal+totalbeli[struk];
sellsdat[data] = strukmenu[struk]; //nama makanan
porsidat[data]= jumlah[struk];// banyak porsi
subdat [data]= totalbeli[struk];
pricedat [data] = strukharga[struk];// harga perporsi
data++;
struk++;
}
static String [][] mCari(int Jmlh, String [] menu, int [] harga, String cari){
String [][] hasil = new String [10][10];
int index = 0;
for (int i = 0; i < Jmlh; i++) {
if (menu[i].indexOf(cari)>=0){
hasil [index][0] = menu [i];
hasil [index][1]= String.valueOf(harga[i]);
index++;
}
}
return hasil;
}
public static void main(String[] args) {
String makanan[] = new String [15];
int harga [] = new int [15];
int plh=0, pilihuser = 0, pilih =0;
String namamenu[] = new String[15];
int namaharga[] = new int [15];
//waktu
DateTimeFormatter formatgl = DateTimeFormatter.ofPattern("HH:mm:ss dd/MM/yyy");
LocalDateTime waktu = LocalDateTime.now();
int pilih2=0, indeks=0, idxharga=0, idxnama=0, pcs = 10;
makanan[0]="Tappoki (Original) "; harga[0]=10000;
makanan[1]="Twigim"+"\t"; harga[1]=8000;
makanan[2]="Odeng\t"; harga[2]=15000;
makanan[3]="Gimbab"; harga[3]=12000;
makanan[4]="Dakkoci";harga[4]=10000;
makanan[5]="Tappoki (Spisy) "; harga[5]=14000;
makanan[6]="Tappoki (Cheese) "; harga[6]=15000;
makanan[7]="Jajangmyeon"; harga[7]=25000;
makanan[8]="Ramyeon (Original)"; harga[8]=20000;
makanan[9]="Ramyeon (Spisy)"; harga[9]=23000;
System.out.println("\tKam's\t"+"\n Korean Street Foods");
System.out.println("=======================");
do { System.out.println("\n------- PILIH USER ------");
System.out.println("1. Kasir");
System.out.println("2. Admin");
System.out.println("3. Owner");
System.out.println("4. Exit");
System.out.print("Pilih = ");
plh = sc.nextInt();
switch(plh){
case 1: //kasir
String rangemenu[] = new String[15];
int rangeharga[] = new int[15];
do{
System.out.println("1. Buat Pesanan");
System.out.println("2. Exit");
System.out.print("Pilih = ");
pilihuser = sc.nextInt();
switch (pilihuser){
case 1 :
do{ System.out.println("\n"+"1. Daftar menu");
System.out.println("2. Pesan berdasarkan daftar menu");
System.out.println("3. Cari makanan berdasarkan nama");
System.out.println("4. Cari makanan berdasarkan harga");
System.out.println("5. Selesai");
System.out.print("pilih: ");
pilih = sc.nextInt();
switch (pilih){
case 1:
System.out.println("--------Daftar menu--------");
String[] urut = sort(pcs, makanan, harga);
for (int i = 0; i < pcs; i++) {
System.out.println((i+1)+". "+urut[i]+"\t"+harga[i]);
}
break;
case 2:
System.out.print("Pilih menu :");
pilih2=sc.nextInt();
strukmenu[struk]=makanan[pilih2-1];
strukharga[struk]=harga[pilih2-1];
System.out.print("Jumlah pesanan :");
subtotal();
break;
case 3:
System.out.print("Cari makanan :");
String cari = sc.next();
String tempmenu = sc.nextLine();
String p = cari+tempmenu;
String search [][]= mCari (pcs, makanan, harga, p);
for (int i = 0; i < pcs; i++) {
if (makanan[i].contains(p)) {
namamenu [idxnama] = makanan[i];
namaharga[idxnama] = harga[i];
idxnama++;
System.out.println(idxnama+"."+makanan[i]+"\t"+harga[i]);
}
} System.out.print("Pilih menu :");
pilih2=sc.nextInt();
strukmenu[struk]=namamenu[pilih2-1];
strukharga[struk]=namaharga[pilih2-1];
System.out.print("Jumlah pesanan :");
subtotal();
break;
case 4:
int cariharga=0;
System.out.print("Harga mulai :");
int hargaawal = sc.nextInt();
System.out.print("Sampai harga :");
int hargaakhir = sc.nextInt();
for (int i = 0; i < harga.length; i++) {
if(hargaawal <= harga[i] && harga[i]<=hargaakhir){
rangemenu[idxharga] = makanan[i];
rangeharga[idxharga] = harga[i];
idxharga++;
System.out.println(idxharga+"."+makanan[i]+"\t"+harga[i]);
}
} System.out.print("Pilih menu :");
pilih2=sc.nextInt();
strukmenu[struk]=rangemenu[pilih2-1];
strukharga[struk]=rangeharga[pilih2-1];
System.out.print("Jumlah pesanan :");
subtotal();
break;
}
}while (pilih!=5);
break;
}
System.out.println("\n----------------------- STRUK PEMBELI -----------------------");
System.out.println("\t\t\t Kam's\t"+"\n \t\t Korean Street Foods");
System.out.println("\t\t "+waktu);
System.out.println(" ");
System.out.println("No. Menu\t\tHarga\t\tJumlah\t\tTotal");
for (int i = 0; i < struk; i++) {
System.out.println((i+1)+". "+strukmenu[i]+" Rp."+strukharga[i]+"\t\t"+jumlah[i]+"\t\t Rp."+totalbeli[i]);
}
System.out.println("---------------------------------------------------------------");
System.out.println("TOTAL : Rp. " +grandTotal);
System.out.print("Bayar : Rp. ");
uangpembeli = sc.nextInt();
if (uangpembeli>grandTotal){
kembali=uangpembeli-grandTotal;
System.out.println("Kembali : Rp. " +kembali);
}
else{
System.out.println("Uang Anda PAS");
}
System.out.println("---------------------------------------------------------------");
System.out.println("kam-sa-ham-ni-da"+"\nTerimakasih :)");
//reset array
struk = 0;
grandTotal = 0;
jumlah[struk] = 0;
strukharga[struk]=0;
totalbeli[struk]= 0;
break;
}while (pilihuser!=2);//keluar dari user kasir
break; //kasir
case 2: //Admin
do{
System.out.println("\n----- HALAMAN ADMIN -----");
System.out.println("1. Tampilkan Menu");
System.out.println("2. Tambah Menu");
System.out.println("3. Hapus Menu");
System.out.println("4. Ganti Menu");
System.out.println("5. Exit");
System.out.print("Pilih = ");
pilihuser = sc.nextInt();
switch (pilihuser) {
case 1: // menu
System.out.println("-------- MENU --------");
String[] urut = sort(pcs, makanan, harga );
for (int i = 0; i < pcs; i++) {
System.out.println((i+1)+". "+urut[i]+"\t"+"["+harga[i]+"]");}
break; //menu
case 2://tambah
System.out.print("Nama = ");
makanan [pcs] = sc.next();
String tempmenu1 = sc.nextLine();
String p = makanan[pcs]+tempmenu1;
makanan [pcs] = p;
System.out.print("Harga = ");
harga [pcs]= sc.nextInt();
System.out.println("Menu "+"'"+makanan[pcs]+"'"+" berhasil ditambahkan");
pcs++;
break; //tambah
case 3://hapus
System.out.print("Nama menu = ");
String hapusmenu = sc.next();
String tempmenu2 = sc.nextLine();
String x = hapusmenu+tempmenu2;
boolean find = false;
int idkmkn = 0;
for (int i = 0; i < pcs; i++) {
if (makanan[i].compareToIgnoreCase(x) ==0 ){
find = true;
idkmkn=i;
System.out.println("Menu "+"'"+x+"'" +" berhasil dihapus");
break;
}
}
if (find==false){
System.out.println("Menu tidak ditemukan.");
} else
for (int i = idkmkn; i < pcs-1; i++) {
makanan[i]=makanan[i+1];
}
pcs--;
break; //hapus
case 4://ganti
System.out.print("Nama makanan yang diganti = ");
String namamakan = sc.next();
String tempmenu3 = sc.nextLine();
String y = namamakan+tempmenu3;
String newmenu;
int newharga;
System.out.print("Masukan nama menu baru = ");
newmenu = sc.next();
String tempmenu4 = sc.nextLine();
String z = newmenu+tempmenu4;
System.out.print("Masukan harganya = ");
newharga= sc.nextInt();
System.out.print("");
boolean ketemu = false;
int idkmenu = 0; for (int i = 0; i < pcs; i++) {
if (makanan[i].compareToIgnoreCase(y)==0){
ketemu = true;
idkmenu=i;
harga[i]=0;
makanan[i]="";
harga[i]=newharga;
makanan [i] = z;
System.out.println("Menu "+"'"+y+"'"+" diganti "+"'"+z+"'");
}
}
break; //ganti
}
} while(pilihuser!=5);
break;//admin
case 3: //owner
System.out.println("\n----- HALAMAN OWNER -----");
System.out.println("1. Total Pemasukan");
System.out.println("2. 5 Menu Terlaris");
System.out.println("3. Exit");
System.out.print("Pilih = ");
pilihuser = sc.nextInt();
switch (pilihuser) {
case 1 :
System.out.println("---------------------------------------------------------------");
System.out.println("[\t\t TOTAL PEMASUKAN\t\t]");
System.out.println("---------------------------------------------------------------");
System.out.println("Hari ke : "+hari);
System.out.println("No. Tanggal Waktu \tMenu \t Harga \t Porsi \t Subtotal");
for (int i = 0; i < data; i++) {
System.out.println((i+1)+". "+ waktu+"\t" +sellsdat[i]+"\t"+pricedat[i]+"\t"+porsidat[i]+"\t"+subdat[i]);
grandat = grandat+subdat[i];
} System.out.println("---------------------------------------------------------------");
System.out.println("Total Pemasukan \t\t : "+grandat);
System.out.println("---------------------------------------------------------------");
hari++;
data++;
break;
case 2 :
sellsdat1 = sellsdat;
porsidat1 = porsidat;
for (int i = 0; i < 4; i++) {
for (int j = i+1 ; j < 5 ; j++) {
if (porsidat1[i] < porsidat[j]) {
int temp = porsidat1[j];
porsidat1[j] = porsidat[i];
porsidat1 [i] = temp;
String top = sellsdat1[j];
sellsdat1 [j] = sellsdat [i];
sellsdat[i] = top;
}
}
}
System.out.println("---------------------------------------------------------------");
System.out.println("* TOP 5 MENU TERLARIS *");
System.out.println("---------------------------------------------------------------");
System.out.println("no. Barang \t\tporsi\t\tProfit");
for (int i = 0; i < 5; i++) {
if(sellsdat1!=null){
System.out.println((i+1)+". "+sellsdat1[i]+"\t\t"+porsidat1[i]+"\t\t"+subdat[i]);
}
}
break;
}
break; //owner
}//percabangan pilih user
} while (plh!=4); //loop awal
System.out.println("Program Selesai");
}//main
}
0 komentar:
Posting Komentar