tugas 14.1

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <string> #include <iomanip> // Library untuk merapikan tabel (setw) using namespace std; // Struct untuk menyimpan data pesanan (Memenuhi syarat Variable Array & Struct) struct Pesanan { char kode; string jenis; int harga; int jumlah; long subtotal; }; /** * 1. Function NOT return value TANPA parameter * Digunakan untuk mencetak garis pembatas */ void garis() { cout << "==================================================" << endl; } /** * 2. Function NOT return value DENGAN parameter * Digunakan untuk mencetak header dengan nama pembeli */ void cetakHeader(string nama) { garis(); cout << "Gerobak Fried Chicken" << endl; garis(); // Bisa disesuaikan dengan nama Anda sendiri jika perlu cout << "Nama Pembeli : " << nama << endl; } /** * 3. Function return value TANPA parameter * Mengembalikan nilai persentase pajak (10%) */ float getPersenPajak() { return 0.1; } /** * 4. Function return value DENGAN parameter * Menggunakan SWITCH CASE (Memenuhi syarat SWITCH CASE) * Menentukan harga berdasarkan kode */ int cariHarga(char kode) { switch(toupper(kode)) { case 'D': return 12000; case 'P': return 8500; case 'S': return 10000; default: return 0; } } /** * 5. Function yang memanggil function lain * Menggunakan struktur IF (Memenuhi syarat IF) * Memanggil cariHarga() untuk menentukan jenis potongan */ string cariJenis(char kode) { int harga = cariHarga(kode); // <-- Memanggil function lain di sini if (harga == 12000) return "Dada"; else if (harga == 8500) return "Paha"; else if (harga == 10000) return "Sayap"; else return "Salah Kode"; } int main() { // Variabel string namaPembeli; int jumlahData; Pesanan order[50]; // Memenuhi syarat Variable Array long totalBayar = 0; // Input Data Utama cout << "Gerobak Fried Chicken" << endl; garis(); cout << "Masukan nama pembeli : " << endl; getline(cin, namaPembeli); // Menggunakan getline agar bisa input nama spasi cout << "Masukan jumlah beli : " << endl; cin >> jumlahData; // 9. Menggunakan LOOPING (Input Data) for(int i = 0; i < jumlahData; i++) { cout << "\nData ke: " << (i + 1) << endl; cout << "Masukan kode [D][P][S]: " << endl; cin >> order[i].kode; cout << "Jumlah: " << endl; cin >> order[i].jumlah; // Proses Data menggunakan Function order[i].jenis = cariJenis(order[i].kode); order[i].harga = cariHarga(order[i].kode); order[i].subtotal = order[i].harga * order[i].jumlah; // Akumulasi Total totalBayar += order[i].subtotal; } // Output Tabel cout << "\n\n"; cetakHeader(namaPembeli); cout << "| No | Kode | Jenis | Harga | Jml | Total |" << endl; garis(); // Looping Output for(int i = 0; i < jumlahData; i++) { cout << "| " << setiosflags(ios::left) << setw(3) << (i+1) << "| " << setw(5) << order[i].kode << "| " << setw(11) << order[i].jenis << "| " << setw(7) << order[i].harga << "| " << setw(4) << order[i].jumlah << "| " << setw(7) << order[i].subtotal << "|" << endl; } garis(); // Hitung Pajak dan Grand Total long pajak = totalBayar * getPersenPajak(); long grandTotal = totalBayar + pajak; cout << "Total Bayar : " << totalBayar << endl; cout << "Pajak : " << pajak << endl; cout << "Grand Total : " << grandTotal << endl; garis(); cout << "Nama : Ananda Rakhma Aulia" << endl; cout << "Email : anandara7891@gmail.com" << endl; return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines