0% menganggap dokumen ini bermanfaat (0 suara)
76 tayangan5 halaman

Source Code Tugas3

Program ini membuat aplikasi pemesanan makanan dan minuman di restoran yang menampilkan menu, menambah pesanan, dan menghitung total biaya. Program menggunakan kelas abstract MenuItem dan subclassnya untuk merepresentasikan item menu.

Diunggah oleh

myn500922
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
76 tayangan5 halaman

Source Code Tugas3

Program ini membuat aplikasi pemesanan makanan dan minuman di restoran yang menampilkan menu, menambah pesanan, dan menghitung total biaya. Program menggunakan kelas abstract MenuItem dan subclassnya untuk merepresentasikan item menu.

Diunggah oleh

myn500922
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 5

Nama : Amir Khamzani

Nim : 044502699

Upbjj : Jakarta

Source Code Tugas 3

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

abstract class MenuItem {


private String nama;
private double harga;
private String kategori;

public MenuItem(String nama, double harga, String kategori) {


this.nama = nama;
this.harga = harga;
this.kategori = kategori;
}

public String getNama() {


return nama;
}

public double getHarga() {


return harga;
}

public String getKategori() {


return kategori;
}

public abstract void tampilMenu();

class Makanan extends MenuItem {


private String jenisMakanan;

public Makanan(String nama, double harga, String jenisMakanan) {


super(nama, harga,"Makanan");
this.jenisMakanan = jenisMakanan;
}

@Override
public void tampilMenu() {
System.out.println(getNama() + " - " + jenisMakanan);
System.out.println("Harga: " + getHarga());
System.out.println("Kategori: " + getKategori());
System.out.println("-------------");
}
}

class Minuman extends MenuItem {


private String jenisMinuman;

public Minuman(String nama, double harga, String jenisMinuman) {


super(nama, harga, "Minuman");
this.jenisMinuman = jenisMinuman;
}

@Override
public void tampilMenu() {
System.out.println(getNama() + " - " + jenisMinuman);
System.out.println("Harga: " + getHarga());
System.out.println("Kategori: " + getKategori());
System.out.println("-------------");
}
}

class Diskon extends MenuItem {


private double diskon;

public Diskon(String nama, double harga, double diskon) {


super(nama, harga, "Diskon");
this.diskon = diskon;
}

@Override
public void tampilMenu() {
System.out.println(getNama() + " - Diskon " + diskon + "%");
System.out.println("Harga: " + getHarga());
System.out.println("Kategori: " + getKategori());
System.out.println("-------------");
}
}

class Menu {
private ArrayList<MenuItem> daftarMenu = new ArrayList<>();
public void tambahMenu(MenuItem item) {
daftarMenu.add(item);
}

public void tampilkanMenu() {


System.out.println("== Menu Restoran ==");
for (MenuItem item : daftarMenu) {
item.tampilMenu();
}
}

public MenuItem getItemByNama(String nama) {


for (MenuItem item : daftarMenu) {
if (item.getNama().equalsIgnoreCase(nama)){
return item;
}
}
return null;
}
}

class Pesanan {
private ArrayList<MenuItem> daftarPesanan = new ArrayList<>();

public void tambahPesanan (MenuItem item) {


daftarPesanan.add(item);
}

public void tampilkanStruk() {


System.out.println("== Struk Pesanan ==");
for (MenuItem item : daftarPesanan) {
item.tampilMenu();
}
System.out.println("Total Biaya: " + hitungTotalBiaya());
}

public double hitungTotalBiaya() {


double totalBiaya = 0;
for (MenuItem item : daftarPesanan) {
totalBiaya += item.getHarga();
}
return totalBiaya;
}
}

public class restoNew {


public static void main(String[] args) {
Menu menuRestoran = new Menu();
Pesanan pesananPelanggan = new Pesanan();
Scanner scanner = new Scanner (System.in);

// Menambahkan contoh menu ke dalam daftar menu


menuRestoran.tambahMenu(new Makanan("Nasi Goreng", 25000, "Nasi"));
menuRestoran.tambahMenu(new Minuman("Es Teh", 5000, "Teh"));
menuRestoran.tambahMenu(new Diskon("Diskon spesial", 0,10));

int pilihan;
do {
System.out.println("== Menu Utama ==");
System.out.println("1. Tambah Item Menu");
System.out.println("2. Tampilkan Menu Restoran");
System.out.println("3. Pesan Menu");
System.out.println("4. Tampilkan Struk Pesanan");
System.out.println("5. Keluar");

System.out.print("Pilih menu: ");


pilihan = scanner.nextInt();

switch (pilihan) {
case 1:
System.out.print("Masukkan nama menu: ");
scanner.nextLine(); // Membersihkan buffer
String namaMenu = scanner.nextLine();
System.out.print("Masukkan harga menu: ");
double hargaMenu = scanner.nextDouble();
System.out.print("Masukkan kategori menu
(Makanan/Minuman/Diskon): ");
scanner.nextLine(); // Membersihkan buffer
String kategoriMenu = scanner.nextLine();

MenuItem newItem;
if (kategoriMenu.equalsIgnoreCase("Makanan")) {
System.out.print("Masukkan jenis makanan: ");
String jenisMakanan = scanner.nextLine();
newItem = new Makanan(namaMenu, hargaMenu, jenisMakanan);
} else if (kategoriMenu.equalsIgnoreCase("MInuman")) {
System.out.print("Masukkan jenis minuman: ");
String jenisMinuman = scanner.nextLine();
newItem = new Minuman(namaMenu, hargaMenu, jenisMinuman);
} else if (kategoriMenu.equalsIgnoreCase("Diskon")) {
System.out.print("Masukkan besaran diskon (%): ");
double besaranDiskon = scanner.nextDouble();
newItem = new Diskon (namaMenu, hargaMenu, besaranDiskon);
} else {
System.out.print("Kategori menu tidak valid.");
continue;
}

menuRestoran.tambahMenu(newItem);
System.out.println("Item menu berhasil ditambahkan.");
break;
case 2:
menuRestoran.tampilkanMenu();
break;

case 3:
System.out.print("Masukkan nama menu yang ingin dipesan: ");
scanner.nextLine(); // Membersihkan buffer
String pesanan = scanner.nextLine();
MenuItem pesananItem = menuRestoran.getItemByNama (pesanan);

if (pesananItem != null) {
pesananPelanggan.tambahPesanan(pesananItem);
System.out.println("Pesanan berhasil ditambahkan. ");
} else {
System.out.println("Menu tidak ditemukan.");
}
break;

case 4:
pesananPelanggan.tampilkanStruk();
break;

case 5:
System.out.println("Terimakasih telah menggunakan layanan
kami.");
break;
}

} while (pilihan !=5);


}
}

Anda mungkin juga menyukai