#include <iostream>
#include <string>
using namespace std;
//Nama : Nadzia Dibda
//NIM :3420230011
// Function NOT return value tanpa parameter
void garis() {
cout << "=====================================================" << endl;
}
void judul() {
garis();
cout << "Gerobak Fried Chicken" << endl;
garis();
}
void infoHarga() {
cout << "| Kode | Jenis | Harga |" << endl;
cout << "| D | Dada | 12.000 |" << endl;
cout << "| P | Paha | 8.500 |" << endl;
cout << "| S | Sayap | 10.000 |" << endl;
garis();
}
void ketentuan() {
puts("KETENTUAN SOAL");
puts("Harus terdapat function return value dengan parameter");
puts("Harus terdapat function return value TANPA parameter");
puts("Harus terdapat function NOT return value dengan parameter");
puts("Harus terdapat function NOT return value TANPA parameter");
puts("Harus terdapat function yang memanggil function lain");
puts("Harus terdapat variable bertipe array");
puts("Harus terdapat struktur IF");
puts("Harus terdapat struktur SWITCH CASE");
puts("Harus menggunakan looping");
garis();
}
// Function NOT return value dengan parameter struct
struct Author {
string nama;
string email;
};
void cetakAuthor(const Author& author) {
garis();
cout<<"Nama : "<<author.nama<<endl;
cout<<"Email : "<<author.email<<endl;
garis();
}
// Function return value dengan parameter (Struktur IF)
int cekHarga(char kode) {
if (kode == 'D' || kode == 'd') {
return 12000;
} else if (kode == 'P' || kode == 'p') {
return 8500;
} else if (kode == 'S' || kode == 's') {
return 10000;
} else {
return 0;
}
}
// Struktur SWITCH CASE
string cekJenis(char kode) {
switch (kode) {
case 'D': case 'd':
return "Dada";
case 'P': case 'p':
return "Paha";
case 'S': case 's':
return "Sayap";
default:
return "Salah Kode";
}
}
// Function return value dengan parameter
int hitungTotal(int harga, int jumlah) {
return harga * jumlah;
}
int hitungPajak(int total) {
return total * 0.1;
}
int hitungGrandTotal(int total, int pajak) {
return total + pajak;
}
// Function return value tanpa parameter
int main() {
Author author = {"Nadzia Dibda", "dibdaaulina@gmail.com"};
//Function yang memanggil function lain
judul();
infoHarga();
ketentuan();
string nama;
int jumlahBeli;
printf("Masukkan nama pembeli : <input>\n");
cin>>nama;
printf("Masukkan jumlah beli : <input>\n");
cin>>jumlahBeli;
// Variable bertipe array
char kode[jumlahBeli];
int jumlah[jumlahBeli];
int totalHarga[jumlahBeli];
int grandTotal = 0;
// Looping for
for (int i = 0; i < jumlahBeli; i++) {
cout<<"\nData ke-"<<(i + 1)<<endl;
cout<<"Masukkan kode [D][P][S] : <input>"<<endl;
cin>>kode[i];
cout<<"Jumlah beli : <input>"<<endl;
cin>>jumlah[i];
int harga = cekHarga(kode[i]);
totalHarga[i] = hitungTotal(harga, jumlah[i]);
grandTotal += totalHarga[i];
}
judul();
printf("| No | Kode | Jenis | Harga | Jumlah | Total |\n");
garis();
// Looping for
for (int i = 0; i < jumlahBeli; i++) {
printf("| %2d | %-4c | %-8s | %-6d | %-6d | %-8d |\n",
i + 1, kode[i], cekJenis(kode[i]).c_str(), cekHarga(kode[i]), jumlah[i], totalHarga[i]);
}
garis();
int pajak = hitungPajak(grandTotal);
int totalBayar = hitungGrandTotal(grandTotal, pajak);
cout<<"Total Bayar : "<<grandTotal<<endl;
cout<<"Pajak : "<<pajak<<endl;
cout<<"Grand Total : "<<totalBayar<<endl;
cetakAuthor(author);
return 0;
}