180 likes | 329 Views
Algoritma dan Struktur Data. Pass by Value & Pass by Reference. Review. Nilai sebuah variabel bisa diakses melalui dua cara Cara 1 : Langsung Cara 2 : Menggunakan pointer. Review. Program tanpa fungsi. Perhitungan luas diletakkan di bagian terpisah. Fungsi untuk menghitung luas.
E N D
Algoritma dan Struktur Data Pass by Value & Pass by Reference
Review • Nilai sebuah variabel bisa diakses melalui dua cara • Cara 1 : Langsung • Cara 2 : Menggunakan pointer
Latihan • Variabel atau data untuk main dan hitungluas terletak di bagian memori berbeda • Keduanya tidak berhubungan • Gambarkan keadaan memori untuk main dan hitungluas!
Pass by Value • Jika kita mengubah nilai variabel p di hitungluas, apakah variabel panjang di main nilainya berubah?
Pass by Value • Pada saat main memanggil fungsi hitungluas, isi variabel panjang dan lebar dicopy kemudian dikirim ke hitungluas • Di fungsi hitungluas, nilai tersebut dimasukkan ke variabel p dan l • Merubah nilai p dan l tidak berakibat apa-apa pada variabel panjang dan luas • Ingat, variabel main dan hitungluas terletak di bagian memori yang berbeda!
Pass by Reference • Bagaimana cara mengubah nilai variabel panjang pada main dari fungsi hitungluas? • Pada saat memanggil hitungluas, jangan mengirim nilai panjang • Kirim alamat variabel panjang ke hitung luas • Hitungluas dapat mengakses & mengubah isi variabel panjang milik main secara indirect
Pass by Reference • Variabel v ada di fungsi F • F memanggil fungsi G • G perlu mengubah nilai v di F • Jangan mengirim nilai v ke G • Kirim alamat v • G dapat mengakses v di F secara indirect • G dapat mengubah nilai v di F
Latihan • Buatlah fungsi untuk menukar isi dua variabel bertipe float!
Using a Pass by Value Is like giving someone the key to your home The key can be used by the other person to change the contents of your home!
Additional Terms Pass-by-reference is also called . . . pass-by-address, or pass-by-location Can you explain why?