Tugas 14.1

Run Settings
LanguageC++
Language Version
Run Command
#include <iostream> #include <string.h> using namespace std; // Nama : Dhafin Shabir Alfatih // NIM : 3420230036 // Struct struct Menu{ string kode; string jenis; int harga; }; struct Transaksi { string kode; string jenis; int harga; int jumlah; int total; }; // Variabel Array type struct Menu menu[] = { {"D", "Dada", 12000}, {"P", "Paha", 8500}, {"S", "Sayap", 10000}, }; Transaksi transaksi[100]; int totalTransaksi = 0; // Untuk menghitung jumlah elemen pada array menu const int menuSize = sizeof(menu) / sizeof(menu[0]); // Func not return value dengan parameter void garis(int panjang) { int i; // Looping for for(i = 0; i <= panjang; i++) { printf("="); } cout << endl; } // Func not return value tanpa parameter void author() { cout << "Nama : Dhafin Shabir" << endl; cout << "Email : dhafinshabir610@gmail.com" << endl; } void judul() { garis(51); cout << "\tGerobak Fried Chicken\n"; } void daftarMenu() { garis(51); cout << "| Kode\t| Jenis\t| Harga\t|\n"; garis(51); for (int i = 0; i < menuSize; i++) { cout << "| " << menu[i].kode << "\t| " << menu[i].jenis << "\t| " << menu[i].harga << "\t|\n"; } garis(51); } void ketentuan() { printf("KETENTUAN SOAL\n"); printf("Harus Terdapat Function Return Value Dengan Parameter\n"); printf("Harus Terdapat Function Return Value Tanpa Parameter\n"); printf("Harus Terdapat Function NOT Return Value Dengan Parameter\n"); printf("Harus Terdapat Function NOT Return Value Tanpa Parameter\n"); printf("Harus Terdapat Function Yang Memanggil Function Lain\n"); printf("Harus Terdapat Variabel Bertipe Array\n"); printf("Harus Terdapat Struktur IF\n"); printf("Harus Terdapat Struktur Switch Case\n"); printf("Harus Menggunakan Looping\n"); garis(51); } void cetakTransaksi() { garis(51); printf("| %s | %s | %-10s | %-6s | %s | %-s |\n", "No", "Kode", "Jenis", "Harga", "Jumlah", "Total"); garis(51); int totalBayar = 0; // Variabel untuk menghitung total bayar for (int i = 0; i < totalTransaksi; i++) { printf("| %-2d | %-4s | %-10s | %-6d | %-6d | %-5d |\n", i + 1, transaksi[i].kode.c_str(), transaksi[i].jenis.c_str(), transaksi[i].harga, transaksi[i].jumlah, transaksi[i].total); // Tambahkan total transaksi ke totalBayar totalBayar += transaksi[i].total; } // Hitung pajak 10% int pajak = totalBayar * 0.1; // Hitung total keseluruhan int grandTotal = totalBayar + pajak; garis(51); printf("Total Bayar : %d \n", totalBayar); printf("Pajak (10%) : %d \n", pajak); printf("Grand Total : %d \n", grandTotal); garis(51); } // Func return value dengan parameter (menggunakan looping dan IF) int cariHarga(string kode) { for (int i = 0; i < menuSize; i++) { if (menu[i].kode == kode) { return menu[i].harga; } } return 0; // Jika kode tidak ditemukan } // Func return value dengan parameter (menggunakan switch) string cariJenis(string kode) { switch (kode[0]) { case 'D': return "Dada"; case 'P': return "Paha"; case 'S': return "Sayap"; default: return "Kode Salah"; } } // Function Rekursif void inputKodeBarang(int jumlahBeli, int i = 0) { if (i >= jumlahBeli) return; string kodeBarang, kodeBarangAsli; int jumlahBarang; cout << "\nData ke-" << (i + 1); cout << "\nMasukan kode [D][P][S]: <input>"; cin >> kodeBarang; kodeBarangAsli = kodeBarang; // Simpan kode asli untuk output kodeBarang[0] = toupper(kodeBarang[0]); cout << "\nJumlah beli : <input>\n"; cin >> jumlahBarang; // Simpan data ke array transaksi transaksi[i].kode = kodeBarangAsli; transaksi[i].jenis = cariJenis(kodeBarang); transaksi[i].harga = cariHarga(kodeBarang); transaksi[i].jumlah = jumlahBarang; transaksi[i].total = transaksi[i].harga * jumlahBarang; totalTransaksi++; // Tambah jumlah transaksi // Rekursif panggil input untuk data berikutnya inputKodeBarang(jumlahBeli, i + 1); } // Func return value tanpa parameter int main() { judul(); daftarMenu(); ketentuan(); string namaPembeli; int jumlahBeli; cout << "Masukan nama pembeli: <input>" << endl; cin >> namaPembeli; cout << "Masukan jumlah beli: <input>" << endl; cin >> jumlahBeli; inputKodeBarang(jumlahBeli); judul(); cetakTransaksi(); author(); return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines