Array Multi Dimensi
Calista Donna 'Aaqilah
25082010133
Pararel C
package pkg.arraymultidimensi;
import java.util.Scanner;
public class ArrayMultiDimensi {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean programBerjalan = true;
System.out.println("=== SISTEM KASIR WARUNG MAKAN SEDERHANA ===");
System.out.println("=== MULTI-PEMBELI ===");
// Loop utama untuk multiple pembeli
while (programBerjalan) {
// Array untuk menyimpan data pembelian pembeli saat ini
String[] namaMakanan = new String[10];
int[] hargaSatuan = new int[10];
int[] jumlahPorsi = new int[10];
int[] totalBiaya = new int[10];
int grandTotal = 0;
int jumlahPembelian = 0;
boolean transaksiBerjalan = true;
// Daftar menu makanan yang tersedia
String[] menuMakanan = {
"Sate Ayam", "Sate Kambing",
"Pecel Ayam", "Pecel Lele",
"Ayam Goreng", "Bebek Goreng",
"Nasi Goreng", "Mie Goreng",
"Gado-gado", "Soto Ayam",
"Es Teh", "Es Jeruk"
};
int[] hargaMenu = {
1500, 3000, // Sate
12000, 8000, // Pecel
10000, 16000, // Gorengan
12000, 10000, // Nasi/Mie Goreng
8000, 10000, // Gado-gado & Soto
3000, 4000 // Minuman
};
System.out.println("\n=== TRANSAKSI PEMBELI BARU ===");
System.out.print("Masukkan nama pembeli: ");
sc.nextLine(); // Membersihkan buffer
String namaPembeli = sc.nextLine();
System.out.println("\nSelamat datang, " + namaPembeli + "!");
System.out.println("=== DAFTAR MENU ===");
System.out.println("============================================");
System.out.println("No | Nama Menu\t\t| Harga");
System.out.println("============================================");
for (int i = 0; i < menuMakanan.length; i++) {
System.out.printf("%-3d | %-18s | Rp %-8d\n",
(i + 1), menuMakanan[i], hargaMenu[i]);
}
System.out.println("============================================");
// Loop transaksi untuk pembeli saat ini
while (transaksiBerjalan && jumlahPembelian < 10) {
System.out.println("\n--- Pembelian ke-" + (jumlahPembelian + 1) + " ---");
// Pilih dari menu yang tersedia
System.out.print("Pilih nomor menu (1-" + menuMakanan.length + "): ");
int pilihanMenu = sc.nextInt();
// Validasi pilihan menu
if (pilihanMenu < 1 || pilihanMenu > menuMakanan.length) {
System.out.println("Nomor menu tidak valid! Silakan pilih 1-" + menuMakanan.length);
continue;
}
// Ambil data dari menu yang dipilih
int indexMenu = pilihanMenu - 1;
namaMakanan[jumlahPembelian] = menuMakanan[indexMenu];
hargaSatuan[jumlahPembelian] = hargaMenu[indexMenu];
// Tampilkan menu yang dipilih
System.out.println("Anda memilih: " + menuMakanan[indexMenu] + " - Rp " + hargaMenu[indexMenu]);
// Input jumlah porsi
System.out.print("Masukkan jumlah porsi: ");
jumlahPorsi[jumlahPembelian] = sc.nextInt();
// Validasi jumlah porsi
if (jumlahPorsi[jumlahPembelian] <= 0) {
System.out.println("Jumlah porsi harus lebih dari 0! Silakan ulangi.");
continue;
}
// Hitung total biaya untuk item ini
totalBiaya[jumlahPembelian] = hargaSatuan[jumlahPembelian] * jumlahPorsi[jumlahPembelian];
// Tambahkan ke grand total
grandTotal += totalBiaya[jumlahPembelian];
// Tampilkan ringkasan pembelian ini
System.out.println("✓ Berhasil ditambahkan: " + namaMakanan[jumlahPembelian] +
" x" + jumlahPorsi[jumlahPembelian] + " = Rp " + totalBiaya[jumlahPembelian]);
jumlahPembelian++;
// Tanya apakah mau tambah item lagi
if (jumlahPembelian < 10) {
System.out.print("\nTambah item lagi? (y/t): ");
String pilihan = sc.next();
if (pilihan.equalsIgnoreCase("t")) {
transaksiBerjalan = false;
}
} else {
System.out.println("\nMaksimal 10 item pembelian sudah tercapai!");
transaksiBerjalan = false;
}
}
// Menampilkan struk pembelian untuk pembeli saat ini
System.out.println("\n\n=== STRUK PEMBELIAN ===");
System.out.println("Nama Pembeli: " + namaPembeli);
System.out.println("==================================================");
System.out.println("No | Nama Makanan\t\t| Harga | Jumlah | Total");
System.out.println("==================================================");
for (int i = 0; i < jumlahPembelian; i++) {
System.out.printf("%-2d | %-18s | Rp %-5d | %-6d | Rp %-7d\n",
(i + 1),
namaMakanan[i],
hargaSatuan[i],
jumlahPorsi[i],
totalBiaya[i]);
}
System.out.println("==================================================");
System.out.printf("GRAND TOTAL: Rp %d\n", grandTotal);
System.out.println("==================================================");
System.out.println("Total item: " + jumlahPembelian + " jenis makanan");
System.out.println("Terima kasih " + namaPembeli + "!");
// Tanya apakah mau melayani pembeli baru
System.out.print("\nLayani pembeli baru? (y/t): ");
String pilihanLanjut = sc.next();
if (pilihanLanjut.equalsIgnoreCase("t")) {
programBerjalan = false;
System.out.println("\nProgram selesai. Terima kasih!");
} else {
System.out.println("\nMempersiapkan transaksi untuk pembeli berikutnya...");
// Array akan di-reset otomatis karena deklarasi ulang di loop berikutnya
}
}
sc.close();
}
}
.png)
.png)
Comments
Post a Comment