Materi 3Mudah60 menit

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:

  1. Fungsi Pencipta (Return Struct): scanBarcode bertugas merakit data barang berdasarkan kode, lalu memaketkannya menjadi entitas Produk utuh dan mengirimkannya kembali (return) ke main.
  2. Fungsi Pemroses (Parameter Struct): hitungSubTotal menerima paket Produk utuh, lalu mengekstrak atribut p.harga di 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.

Tips

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.