#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void displayMenu();
void tampilKetentuan();
float calculateSubtotal(int price, int quantity);
float calculatePPN(float subtotal);
float calculateDiscount(float subtotal);
void displayOutput(string bookName, int price, int quantity, float subtotal, float discount, float ppn);
int main() {
int code, quantity;
string bookName;
int price;
float subtotal, ppn, discount, total;
displayMenu();
tampilKetentuan();
cout << "Masukan kode buku [1/2/3]: ";
cin >> code;
cout << "\nJumlah pembelian buku : ";
cin >> quantity;
switch (code) {
case 1:
bookName = "Sukses Belajar C++";
price = 50000;
break;
case 2:
bookName = "Kunci Pribadi Yang Sukses";
price = 35000;
break;
case 3:
bookName = "Mencari Mutiara Di Dasar Hati";
price = 45000;
break;
default:
cout << "Kode buku tidak valid!" << endl;
return 1;
}
subtotal = calculateSubtotal(price, quantity);
ppn = calculatePPN(subtotal);
discount = (quantity > 5) ? calculateDiscount(subtotal) : 0;
total = subtotal - discount + ppn;
displayOutput(bookName, price, quantity, subtotal, discount, ppn);
cout << "Terima Kasih\n";
cout << "------------------------------------------------------------\n";
cout << "Nama : Asiyah Thufailah\n";
cout << "Email : asiyahtflh@gmail.com\n";
return 0;
}
void displayMenu() {
cout << "------------------------------------------------------------\n";
cout << "Toko Buku Almara \n";
cout << "Jatiasih - Bekasi \n";
cout << "------------------------------------------------------------\n";
cout << "KETENTUAN\n";
cout << "------------------------------------------------------------\n";
cout << "| Kode | Judul | Harga |\n";
cout << "------------------------------------------------------------\n";
cout << "| 1 | Sukses Belajar C++ | 50.000 |\n";
cout << "| 2 | Kunci Pribadi Yang Sukses | 35.000 |\n";
cout << "| 3 | Mencari Mutiara Di Dasar Hati | 45.000 |\n";
cout << "------------------------------------------------------------\n";
}
void tampilKetentuan() {
printf ("Subtotal = Harga x Jumlah Beli\n");
puts ("PPN = 10% x Subtotal");
puts ("Jika Jumlah beli lebih dari 5 maka mendapat discount 10% dan bonus kotak pensil");
printf ("------------------------------------------------------------\n");
puts ("Harus Terdapat Fungsi:");
puts ("cout, cin, printf, scanf, puts");
printf ("Struktur IF dan Switch Case\n");
cout << "Function Return Value (Without Parameter)\n";
cout << "Function Return Value (With Parameter)\n";
cout << "Function Not Return Value (Without Parameter)\n";
cout << "Function Not Return Value (With Parameter)\n";
cout << "------------------------------------------------------------" << endl;
}
float calculateSubtotal(int price, int quantity) {
return price * quantity;
}
float calculatePPN(float subtotal) {
return 0.1 * subtotal;
}
float calculateDiscount(float subtotal) {
return 0.1 * subtotal;
}
void displayOutput(string bookName, int price, int quantity, float subtotal, float discount, float ppn) {
cout << "\n------------------------------------------------------------\n";
cout << "Nama Buku : " << bookName << endl;
cout << "Harga Buku : Rp. " << price << endl;
if (quantity > 5) {
cout << "Bonus : Kotak Pensil\n";
} else {
cout << "Bonus : -\n";
}
cout << fixed << setprecision(0);
cout << "Subtotal : Rp. " << subtotal << ",00" << endl;
cout << "Potongan : Rp. " << discount << ",00" << endl;
cout << "PPN : Rp. " << ppn << ",00" << endl;
cout << "Total : Rp. " << (subtotal - discount + ppn) << ",00" << endl;
cout << "------------------------------------------------------------\n";
}