#include <iostream>
#include <iomanip>
#include <string>
#include <vector>
using namespace std;
struct ItemPesanan {
string nama;
int harga;
int jumlah;
double subtotal;
};
int main() {
// Daftar menu makanan dengan harga
string menu[3] = {"Nasi Goreng", "Mie Ayam", "Ayam Bakar"};
int harga[3] = {15000, 12000, 20000};
vector<ItemPesanan> pesanan;
char lanjut;
double totalHarga = 0.0;
double uangBayar, kembalian;
// Loop untuk memesan beberapa item
do {
// Tampilkan menu
cout << "=== Menu Makanan ===" << endl;
for (int i = 0; i < 3; i++) {
cout << (i + 1) << ". " << menu[i] << " - Rp " << harga[i] << endl;
}
int pilihan, jumlah;
// Minta pilihan makanan
cout << "\nPilih makanan (1-3): ";
cin >> pilihan;
if (pilihan < 1 || pilihan > 3) {
cout << "Pilihan tidak valid! Silakan coba lagi." << endl;
continue;
}
// Minta jumlah pesanan
cout << "Masukkan jumlah pesanan: ";
cin >> jumlah;
if (jumlah <= 0) {
cout << "Jumlah pesanan harus lebih dari 0! Silakan coba lagi." << endl;
continue;
}
// Hitung subtotal dan tambahkan ke pesanan
double subtotal = harga[pilihan - 1] * jumlah;
pesanan.push_back({menu[pilihan - 1], harga[pilihan - 1], jumlah, subtotal});
totalHarga += subtotal;
// Tanya apakah ingin memesan lagi
cout << "Apakah ingin memesan lagi? (y/n): ";
cin >> lanjut;
} while (lanjut == 'y' || lanjut == 'Y');
// Jika tidak ada pesanan, keluar
if (pesanan.empty()) {
cout << "Tidak ada pesanan. Program selesai." << endl;
return 0;
}
// Tampilkan ringkasan pesanan
cout << "\n=== Ringkasan Pesanan ===" << endl;
for (const auto& item : pesanan) {
cout << item.nama << " x" << item.jumlah << " - Rp " << fixed << setprecision(0) << item.subtotal << endl;
}
cout << "Total Harga: Rp " << fixed << setprecision(0) << totalHarga << endl;
// Minta uang yang dibayar
cout << "\nMasukkan jumlah uang yang dibayar: Rp ";
cin >> uangBayar;
if (uangBayar < totalHarga) {
cout << "Uang yang dibayar kurang! Total harga: Rp " << fixed << setprecision(0) << totalHarga << endl;
return 1;
}
// Hitung kembalian
kembalian = uangBayar - totalHarga;
// Tampilkan struk belanja
cout << "\n=== Struk Belanja ===" << endl;
cout << "Pesanan:" << endl;
for (const auto& item : pesanan) {
cout << "- " << item.nama << " x" << item.jumlah << " @ Rp " << item.harga << " = Rp " << fixed << setprecision(0) << item.subtotal << endl;
}
cout << "Total Harga: Rp " << fixed << setprecision(0) << totalHarga << endl;
cout << "Uang Dibayar: Rp " << fixed << setprecision(0) << uangBayar << endl;
cout << "Kembalian: Rp " << fixed << setprecision(0) << kembalian << endl;
cout << "Terima kasih telah memesan!" << endl;
return 0;
}