Baris ke-14 dan 15, digunakan untuk menampilkan nilai dari variabel i dan j yang nilainya masing-masing 10 dan 20. Setelah dilakukan penukaran dengan memanggil function tukar() pada baris ke-16, program kemudian memanggil kembali variabel i dan j (baris ke-18 dan ke-19). Ternyata variabel i dan j telah tertukar. Hal ini terjadi karena pada function tukar() menyalin alamat memori yang menyimpan variabel i dan j dan kemudian menukar isinya sehingga jika variabel i dan j jika dipanggil nilainya akan berubah karena isinya telah ditukar
Nilaiawal i=10,j=20 Pemanggilankembali variabelidanj i=20,j=10 Alamatmemoriyang menyimpannilaidarivariabelx danydisalinkeparameter fungsitukar() x = 10, y=20 Prosespenukarandi functiontukar() x=20,y=10
Gambar 6.4. Call by reference
6.10. Parameter dengan Nilai Default
Nilai parameter dalam suatu function C++ dapat kita beri nilai default, yaitu suatu nilai yang diberikan secara default oleh function jika parameter dari argumen yang memanggil function tersebut tidak kita berikan. Untuk lebih jelasnya perhatikan contoh berikut ini:
1.
#include<iostream> 2. usingnamespacestd; 3. doubleluas_segi3(intalas,inttinggi=10){ 4. return(0.5*alas*tinggi); 5. } 6. voidmain(){ 7. inta=15,t=20; 8. cout<<"Luassegitiga="; 9. cout<<luas_segi3(a,t)<<endl; 10. cout<<endl; 11. cout<<"Luassegitiga="; 12. cout<<luas_segi3(a)<<endl; 13. }
Keluaran programnya adalah : Luassegitiga=150 Luassegitiga=75 Program di atas mempunyai satu buah function yaitu function luas_segi3() dimana function tersebut mempunyai dua buah parameter formal yaitu alas dan tinggi. Parameter alas tidak mempunyai nilai default, tetapi untuk parameter tinggi mempunyai nilai default, yaitu 10. Program utama dari program tersebut telah menentukan bahwa nilai dari variabel a yang nantinya digunakan sebagai variabel masukan untuk parameter alas dari function luas_segi3() adalah 15. Sedangkan variabel t yang nantinya digunakan sebagai variabel masukan untuk parameter tinggi dari function luas_segi3() adalah 20. Sehingga ketika argumen program utama yang memanggil function luas_segi3() pada baris ke-9 dijalankan, maka nilai dari parameter alas dan tinggi pada function luas_segi3() masing-masing adalah 15 dan 20. Dengan demikian function luas_segi3() akan bernilai 150. Akan tetapi untuk argumen baris ke-12 pada program utama terlihat bahwa argumen tersebut tidak menyertakan variabel t, tetapi hanya menyertakan variabel a. Sehingga ketika argumen tersebut dijalankan maka hanya parameter alas pada function luas_segi3() saja yang menerima masukan dari argumen tersebut. Sedangkan untuk parameter tinggi tidak memperoleh masukan. Akan tetapi karena parameter tinggi mempunyai nilai default 10, maka nilai variabel tinggi yang digunakan untuk menghitung luas segitiga adalah 10. Dengan demikian nilai dari function luas_segi3() adalah 75 .
6.11. Overloading Overloading adalah function- function yang ada dalam suatu program dimana function-function tersebut mempunyai nama yang sama tetapi parameter formal-nya berbeda-beda antara yang satu dengan yang lainnya. Ada tiga jenis overloading, yaitu: 1. Function tersebut mempunyai jumlah parameter formal yang berbeda tetapi tipe data-nya sama. 2. Function tersebut mempunyai jumlah parameter formal yang sama tetapi tipe data yang berbeda. 3. Function-function tersebut mempunyai jumlah parameter formal yang berbeda dan tipe data dari parameter formal tersebut juga berbeda. Berikut ini diberikan contoh untuk function-function yang mempunyai jumlah parameter formal yang berbeda tetapi tipe data-nya sama. Untuk bahasa C++ 1.
Next read ON halaman 12.