Recent in Technology

Passing Parameter C++

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);
}

10.4.1 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.

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);

}