Halo teman Rumah Coding, di artikel sebelumnya saya sudah menjelaskan penerapan Function Pass By Reference dan kita juga sudah mempraktekkan contoh pembuatan program sederhana terkait penerapan Pass By Reference.
Pada artikel kali ini saya akan melanjutkan pembahasan terkait pengiriman argumen ke parameter dengan metode Pass By Address serta memberikan contoh penerapan function pass by Address pada program sederhana yang akan kita buat.
Dimana Pass By Address yang dimaksud adalah parameter pada function yang menggunakan pointer atau operator * pada deklarasinya, yang artinya argumen pemanggil function tersebut harus mengirimkan nilai alamat memori variabel untuk parameter function.
Untuk lebih jelasnya mari kita praktekkan.
Program input dengan function
Kita akan membuat program untuk input sederhana yang menerapkan pass by address. Buatlah file baru dengan nama inputData.cpp
#include <iostream>
using namespace std;
void inputData (string * paramNama, int * paramNilai) {
cout << "Masukan nama : ";
cin >> *paramNama;
cout << "Masukan nilai : ";
cin >> *paramNilai;
}
int main () {
string nama;
int nilai;
inputData(&nama, &nilai);
cout << endl;
cout << "Nama anda adalah : " << nama << endl;
cout << "Nilai anda adalah : " << nilai << endl;
return 0;
}
Setelah itu compile dan run aplikasi
Penjelesanan Syntax :
void inputData (string * paramNama, int * paramNilai) {
cout << "Masukan nama : ";
cin >> *paramNama;
cout << "Masukan nilai : ";
cin >> *paramNilai;
}
Bagian ini adalah pembuatan fungsi non-Return dengan nama inputData. Fungsi ini menggunakan parameter pointer dengan ditandai operator ‘*’ yang nantinya setiap variabel argumen yang dikirim oleh pemanggil fungsi pada program utama (int main) harus mengirim nilai alamat memori dengan cara memberi operator & pada variabel yang dikirim ke parameter.
Konsep parameter dan argumen bisa diilustrasikan seperti, deklarasi variabel adalah parameter dan argumen adalah pengisi nilai /data. Untuk parameter pointer hanya bisa menyimpan nilai alamat memori dari sebuah variabel. Oleh karena itu akan menjadi seperti ini
String * paramNama = &nama (argumen yang dikirim berupa variabel dengan operator ‘&’ untuk mengambil alamat memori dari variabel tersebut)
Pada fungsi dataInput terdapat fungsi CIN, variabel inputnya adalah parameter dari fungsi ini. Maka semua input yang dilakukan pada fungsi ini akan menjadi nilai pada variabel argumen pemanggil fungsi ini. Pengisian nilai / data pada parameter pointer menggunakan CIN harus menggunakan metode dereferensi dari parameter pointer untuk mengisikan nilai.
Pada program utama yang kita buat, pemanggil fungsi dataInput pada program utama (int main) mengirimkan argumen variabel nama dan nilai“dataInput(nama, nilai)”, dimana variabel nama dan nilai ini adalah variabel yang dibuat / deklarasi pada program utama. Saat fungsi dipanggil di program utama, fungsi melakukan perintah input CIN yang nantinya input tersebut akan menjadi nilai langsung pada variabel nama dan nilai pada program utama (int main). Hal ini bisa terjadi dikarenakan parameter fungsi menggunakan parameter reference.
string nama;
int nilai;
inputData(&nama, &nilai);
Bagian ini adalah pembuatan variabel nama dan nilai pada program utama yang nanti akan menjadi argumen yang dikirim pada parameter pointer fungsi dataInput. “dataInput(&nama, &nilai)” adalah pemanggil fungsi yang mengirimkan alamat memori variabel sebagai argumen.
cout << "Nama anda adalah : " << nama << endl;
cout << "Nilai anda adalah : " << nilai << endl;
Menampilkan tampilan setelah dilakukan eksekusi input pada fungsi dataInput, pada bagian ini akan menampilkan nilai pada variabel nama dan nilai pada program utama dimana variabel tersebut sudah diberi nilai melalui fungsi dataInput().
Setelah kita sama-sama mempraktekan program diatas, diharapkan teman Rumah Coding dapat memahami apa itu konsep dari Pass By Address.
Demikian artikel kali ini mengenai penerapan Function Pass By Address, semoga bermanfaat dan jangan lupa untuk terus berlatih. Sampai bertemu di artikel selanjutnya