#include <iostream>
#include <stdio.h>
using namespace std;
//deklarasi fungsi
// return value tanpa parameter
float getPPN();
// return value dengan parameter
float hitungSubtotal(int harga, int jumlah);
// tidak return value tanpa parameter
void tampilKetentuan();
// return value tanpa parameter
void garis (){
puts("---------------------------------------------------");
}
// return value tanpa parameter
void ttd (){
puts("Nama : Zacky Ahmad");
puts("Email : zackyahmadsyah@gmail.com");
}
// tidak return value dengan parameter
void tampilOutput(string judul, int harga, int jumlah,
float subtotal, float diskon, float ppn, float total, string bonus);
/* ===== PROGRAM UTAMA ===== */
int main() {
int kode, jumlah, harga = 0;
string judul, bonus = "-";
tampilKetentuan();
cout << "Masukan kode buku [1/2/3]: ";
scanf("%d", &kode);
cout << "Jumlah pembelian buku : \n";
scanf("%d", &jumlah);
// SWITCH CASE
switch (kode) {
case 1:
judul = "Sukses Belajar C++";
harga = 50000;
break;
case 2:
judul = "Kunci Pribadi Yang Sukses";
harga = 35000;
break;
case 3:
judul = "Mencari Mutiara Di Dasar Hati";
harga = 45000;
break;
default:
puts("Kode buku tidak valid!");
return 0;
}
float subtotal = hitungSubtotal(harga, jumlah);
// IF
float diskon = 0;
if (jumlah > 5) {
diskon = subtotal * 0.10; // diskon 10%
bonus = "Kotak Pensil";
}
float ppn = getPPN() * subtotal; // PPN 10%
float total = subtotal - diskon + ppn;
tampilOutput(judul, harga, jumlah, subtotal, diskon, ppn, total, bonus);
return 0;
}
/* ===== IMPLEMENTASI FUNGSI ===== */
// Tidak return value & tanpa parameter
void tampilKetentuan() {
garis();
puts("Toko Buku Almara");
puts("Jatiasih - Bekasi");
garis();
puts("KETENTUAN");
garis();
puts("| Kode | Judul Buku | Harga |");
puts("| 1 | Sukses Belajar C++ | 50000 |");
puts("| 2 | Kunci Pribadi Yang Sukses | 35000 |");
puts("| 3 | Mencari Mutiara Di Dasar Hati | 45000 |");
garis();
puts("Subtotal = Harga x Jumlah Beli");
puts("PPN = 10% x Subtotal");
puts("Jika jumlah beli > 5 mendapat diskon 10% dan bonus kotak pensil");
garis();
}
// Return value tanpa parameter
float getPPN() {
return 0.10;
}
// Return value dengan parameter
float hitungSubtotal(int harga, int jumlah) {
return harga * jumlah;
}
// Tidak return value & dengan parameter
void tampilOutput(string judul, int harga, int jumlah,
float subtotal, float diskon, float ppn, float total, string bonus) {
garis();
cout << "Nama Buku : " << judul << endl;
cout << "Harga : " << harga << endl;
cout << "Bonus : " << bonus << endl;
printf("Subtotal : Rp %.2f\n", subtotal);
printf("Potongan : Rp %.2f\n", diskon);
printf("PPN : Rp %.2f\n", ppn);
printf("Total : Rp %.2f\n", total);
garis();
puts("Terima Kasih");
garis();
ttd();
}