Halo Codekop Friends! Ketemu lagi untuk artikel kali ini, yaitu pada artikel kali ini kita akan menambahkan fitur lainnya pada Aplikasi Restoran Sederhana yang minggu lalu sudah pernah kita buat sebelumnya. Penasaran kan? Oke cuss langsung kita tambahkan 😃
1. Menambahkan Fitur Laporan Penjualan Harian
Fitur ini akan memungkinkan manajemen untuk melihat total penjualan yang tercatat pada hari itu, termasuk jumlah pesanan, pendapatan, diskon, dan pajak.
2. Menambahkan Fitur Pencarian Menu
Menambahkan fitur pencarian menu berdasarkan nama. Ini akan memudahkan pelanggan atau manajemen untuk mencari menu tertentu tanpa harus melihat seluruh daftar.
3. Menambahkan Fitur Pengaturan Pajak dan Biaya Layanan
Menambahkan fitur yang memungkinkan manajemen untuk mengatur tarif pajak dan biaya layanan sesuai kebijakan restoran.
Berikut adalah implementasi tambahan untuk fitur-fitur di atas:
1. Menambahkan Fitur Laporan Penjualan Harian
Kami akan menambahkan fitur untuk melacak penjualan setiap hari. Setiap kali pesanan selesai, informasi pesanan akan disimpan dan bisa ditampilkan dalam laporan harian.
Penambahan:
- Laporan Penjualan Harian
- Menambah data penjualan ke dalam list
import java.util.ArrayList;
import java.util.Scanner;
import java.util.Date;
class Penjualan {
double totalBiaya;
double pajak;
double biayaPelayanan;
double diskon;
double grandTotal;
Date tanggal;
public Penjualan(double totalBiaya, double pajak, double biayaPelayanan, double diskon, double grandTotal) {
this.totalBiaya = totalBiaya;
this.pajak = pajak;
this.biayaPelayanan = biayaPelayanan;
this.diskon = diskon;
this.grandTotal = grandTotal;
this.tanggal = new Date();
}
}
public class Main {
private static ArrayList<Menu> menuList = new ArrayList<>();
private static ArrayList<String> pesanan = new ArrayList<>();
private static ArrayList<Integer> jumlahPesanan = new ArrayList<>();
private static ArrayList<Penjualan> laporanPenjualan = new ArrayList<>();
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
initializeMenu();
while (true) {
System.out.println("\n=== Restoran Frida ===");
System.out.println("1. Menu Pelanggan");
System.out.println("2. Manajemen Menu");
System.out.println("3. Laporan Penjualan");
System.out.println("4. Keluar");
System.out.print("Pilih menu: ");
int pilihan = Integer.parseInt(scanner.nextLine());
switch (pilihan) {
case 1:
pelangganMenu(scanner);
break;
case 2:
manajemenMenu(scanner);
break;
case 3:
tampilkanLaporanPenjualan();
break;
case 4:
System.out.println("Terima kasih telah menggunakan aplikasi!");
return;
default:
System.out.println("Pilihan tidak valid.");
}
}
}
private static void tampilkanLaporanPenjualan() {
if (laporanPenjualan.isEmpty()) {
System.out.println("Tidak ada penjualan hari ini.");
} else {
System.out.println("\n=== Laporan Penjualan Harian ===");
for (Penjualan p : laporanPenjualan) {
System.out.println("Tanggal: " + p.tanggal);
System.out.printf("Total Biaya: Rp. %.2f%n", p.totalBiaya);
System.out.printf("Pajak (10%%): Rp. %.2f%n", p.pajak);
System.out.printf("Biaya Pelayanan: Rp. %.2f%n", p.biayaPelayanan);
System.out.printf("Diskon: Rp. %.2f%n", p.diskon);
System.out.printf("Grand Total: Rp. %.2f%n", p.grandTotal);
System.out.println("=============================");
}
}
}
private static void cetakStruk() {
double totalBiaya = 0;
System.out.println("\n=== Struk Pesanan ===");
for (int i = 0; i < pesanan.size(); i++) {
String nama = pesanan.get(i);
int jumlah = jumlahPesanan.get(i);
double harga = 0;
for (Menu menu : menuList) {
if (menu.nama.equals(nama)) {
harga = menu.harga;
break;
}
}
double subtotal = harga * jumlah;
System.out.printf("%s x%d - Rp. %.2f%n", nama, jumlah, subtotal);
totalBiaya += subtotal;
}
double pajak = totalBiaya * 0.1;
double biayaPelayanan = 20000;
double grandTotal = totalBiaya + pajak + biayaPelayanan;
double diskon = 0;
if (grandTotal > 100000) {
diskon = grandTotal * 0.1;
}
grandTotal -= diskon;
if (totalBiaya > 50000) {
System.out.println("Penawaran: Beli 1 Gratis 1 untuk minuman (diskon Rp. 10.000)");
grandTotal -= 10000;
}
System.out.printf("Total Biaya: Rp. %.2f%n", totalBiaya);
System.out.printf("Pajak (10%%): Rp. %.2f%n", pajak);
System.out.printf("Biaya Pelayanan: Rp. %.2f%n", biayaPelayanan);
System.out.printf("Diskon: Rp. %.2f%n", diskon);
System.out.printf("Grand Total: Rp. %.2f%n", grandTotal);
System.out.println("=========================");
// Menyimpan laporan penjualan
laporanPenjualan.add(new Penjualan(totalBiaya, pajak, biayaPelayanan, diskon, grandTotal));
}
}