=> Passing by value adalah teknik bagaimana melewatkan suatu argument tanpa melakukan perubahan nilai setelah argument dikembalikan.

Contoh:

void passvalue(int a){
a = 20;
}

int main(){
int x = 10;
passvlue(x);
cout << x; // x tetap = 10
return 0;
}


=> Passing by refrence adalah teknik melewatkan argument dalam bentuk alamat suatu nilai. Jika terjadi perubahan nilai argumen, maka perubahan dibawa sampai argumen selesai dilewatkan.


Contoh:

void passvalue(int& a){
a = 20;
}
int main(){
int x = 10;
passvlue(x);
cout << x; // x berubah menjadi = 20
return 0;
}

NB:
Salah satu penggunaan dalam C++


Lebih Lengkapnya ada dibawah ini :


Ada 2 jenis Passing Parameter pada C++ berikut diantaranya.

1. Passing by Value

Proses penyalinan dari parameter formal ke parameter aktual. Perubahan di dalam fungsi tidak mempengaruhi nilai di luar fungsi. Untuk lebih jelasnya perhatikan contoh program dengan menggunakan fungsi tukar dibawah ini :

#include
#include

int tukarvalue(int x, int y);
int main()
{
int a,b;

printf("Passing by value\n");
printf("****************\n\n");
printf("inputkan nilai a = ");
scanf("%d", &a);
printf("inputkan nilai b = ");
scanf("%d", &b);

printf("\nNilai sebelum pemanggilan fungsi\n");
printf("a = %d b = %d\n", a,b);

tukarvalue(a,b);

printf("\nNilai setelah pemanggilan fungsi\n");
printf("a = %d b = %d\n", a,b);
getch();
}

int tukarvalue(int x, int y)
{
int z;

z = x;
x = y;
y = z;

printf("\nNilai di akhir fungsi tukar()\n");
printf("x = %d y = %d\n", x,y);
}



2. Passing by Reference

Merupakan upaya untuk melewatkan alamat dari suatu variabel ke dalam fungsi. Cara ini digunakan untuk mengubah isi dari suatu variabel di luar fungsi dengan pelaksaaan pengubahan dilakukan di dalam fungsi. Sebagai contoh perhatikan program fungsi tukar() dibawah ini yang telah di modifikasi dari fungsi tukar sebelumnya untuk melihat perbedaannya :

int tukarreference(int *px, int *py)
{

int z;

z = *px;
*px = *py;
*py = z;

printf("\nNilai di akhir fungsi tukar()\n");
printf("x = %d y = %d\n", *px,*py);

}

Adapun perubahan dalam parameter aktualnya menjadi :

tukarreference(&a,&b);

Dalam deklarasi parameter :

int *px, int *py


Menyatakan bahwa px dan py adalah suatu variabel pointer. Yang dimaksudkan sebagai variabel pointer adalah suatu variabel yang menunjuk ke variabel lain. Lebih jelasnya, variabel pointer berisi alamat dari variabel lain. Pemanggilan fungsi &a dan &b masing-masing berarti alamat a dan alamat b. Dengan pemanggilan seperti ini hubungan antara variabel pointer px dan py dengan variabel a dan b adalah seperti ditunjukan gambar dibawah ini. Dalam hal ini px dikatakan menunjuk variabel a dan py menunjuk variabel b. Berikut Contoh program menggunakan Passing by reference :

#include
#include


int tukarreference(int *px, int *py);

main()

{

int a,b;
printf("Passing by reference\n");
printf("********************\n\n");
printf("inputkan nilai a = ");
scanf("%d", &a);
printf("inputkan nilai b = ");
scanf("%d", &b);
printf("\nNilai sebelum pemanggilan fungsi\n");
printf("a = %d b = %d\n", a,b);
tukarreference(&a,&b);
printf("\nNilai setelah pemanggilan fungsi\n");
printf("a = %d b = %d\n", a,b);

getch();

}

int tukarreference(int *px, int *py)

{

int z;

z = *px;
*px = *py;
*py = z;


printf("\nNilai di akhir fungsi tukar()\n");
printf("x = %d y = %d\n", *px,*py);



Terima kasih, sekian semoga Ilmunya bermanfaat. Semangat dan rajin belajar kawan.

0 komentar:

Post a Comment

 
Top