Struct
Menerapkan struktur data (struct) sebagai parameter dan nilai kembalian untuk mengelola keranjang belanja.
Studi Kasus: Mesin Scanner Barcode
Di modul sebelumnya, kita hanya mengirim satu variabel sederhana (seperti harga diskon) ke dalam fungsi. Namun di dunia nyata, sebuah keranjang belanja memiliki banyak atribut yang saling terikat: kode, nama, dan harga.
Jika kita memiliki 5 atribut barang, apakah kita harus membuat fungsi dengan 5 parameter? Tentu tidak! Kita akan membungkusnya menjadi satu paket bernama struct, lalu mengirim paket tersebut ke dalam fungsi kurir kita.
Konsep Inti & Hands-On
Perhatikan Starter Code. Kita memiliki struct Produk.
Kita membuat dua buah Sub Program dengan kemampuan super:
- Fungsi Pencipta (Return Struct):
scanBarcodebertugas merakit data barang berdasarkan kode, lalu memaketkannya menjadi entitasProdukutuh dan mengirimkannya kembali (return) kemain. - Fungsi Pemroses (Parameter Struct):
hitungSubTotalmenerima paketProdukutuh, lalu mengekstrak atributp.hargadi dalamnya untuk dikalikan dengan kuantitas.
Passing Parameter by Value pada Struct
Ingat aturan emas ini: Saat Anda melempar item1 ke dalam fungsi hitungSubTotal, program C++ secara bawaan hanya mengirimkan kopian/fotokopi dari struct tersebut.
Passing by value sangat aman! Jika di dalam fungsi
hitungSubTotal Anda tidak sengaja menulis
p.harga = 0;, harga item1 di dalam main
tidak akan ikut berubah karena fungsi tersebut hanya mengotak-atik kertas
fotokopiannya.