Pengertian Pass by Value

Written by: Fajar   |   Updated on: Februari 23, 2018
Pass by Value

Pengertian Pass by Value

Pass by value (memberikan nilai) adalah salah satu metode untuk memberikan argumen kepada function parameter di saat pemanggilan function. Pada dasarnya C/C++ memberikan argument kepada funtion parameter dalam bentuk nilai (value). Ketika kita memberikan argument pada function, maka nilai dari argument akan di salin ke dalam function parameter.

Dalam menentukan argument kita dapat membuatnya dalam bentuk nilai, ekspresi, variabel, literal, object, enum dan lain-lain yang mengandung nilai di dalamnya.

Contoh Program :

#include <iostream>
using namespace std;

int tambah (int a, int b){
    return a+b;
}

int main () {
    cout<<tambah(5,6)<<endl; //pass by value

    return 0;
}

Function parameter sebenarnya hanyalah variabel lokal. Setiap ketentuan yang ada pada variabel lokal berlaku pada function parameter. Perbedaanya adalah hanya pada segi peletakanya.

Contoh Program :

#include <iostream>
using namespace std;

int tambah (int a, int b){
    return a+b;
}

int main () {
    cout<<tambah(5,6)<<endl; //pass by value
    cout<<tambah(19,24)<<endl; //pass by value
    cout<<tambah(79,64)<<endl; //pass by value

    return 0;
}

Dari program di atas, terlihat bahwa function kustom tambah() dipanggil berulang kali. Dengan argument yang berbeda-beda. Itu bukan berarti bahwa nilai function parameter selalu diperbaharui setiap function itu di panggil dan diberi argument baru, melainkan function parameternya lah yang selalu baru.

Sama seperti variabel lokal, bahwa function parameter termasuk dalam Automatic duration dengan arti bahwa variabel tersebut hanya akan ada pada saat function tersebut sedang berjalan. sebelum itu dan sesudah itu, semua local variabel di dalamnya akan hilang atau tidak ada.

Contoh Program :

#include <iostream>
using namespace std;

int ubah(int x){
    x = 99;
    cout<<"x = "<<x<<endl;
}

int main () {
    int a = 1;

    cout<<"a = "<<a<<endl;
    ubah(a); //pass by value
    cout<<"a = "<<a<<endl;

    return 0;
} 

Perubahan pada function parameter tidak akan berpengaruh pada argument, karena apa yang terjadi adalah function parameter hanya menyalin nilai dari argument dengan arti lain bahwa argument dan function parameter adalah variabel yang berbeda dan berdiri sendiri.

Baca :   Macam-macam Compound Assignment

Satu hal terakhir yang perlu anda tahu sebelum melakukan metode pass by value adalah, bahwa metode ini tidak cocok digunakan untuk memberikan argument berupa array, object dan segala sesuatu yang cukup memakan memori besar. karena apa yang terjadi adalah nilai dari argument di salin ke function parameter, hal itu dapat menurunkan performa program anda.

Contoh Program :

#include <iostream>
using namespace std;

void myFunction(int a,double b,char c);//function prototype

int main(){
    int var=29029;

    myFunction(var-29000,2,'A'); //pass by value
    return 0;
}

void myFunction(int a,double b,char c){
    cout<<"a"<<" = "<<a<<endl;
    cout<<"b"<<" = "<<b<<endl;
    cout<<"c"<<" = "<<c<<endl<<endl;
}

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *