Detailnya, pointer adalah sebuah variabel atau objek yang menunjuk pada variabel atau objek lainnya.
Karena pointer berfungsi sebagai penunjuk alamat suatu variabel, maka pointer wajib memiliki sebuah alamat yang ditunjuknya.
Pada umumnya, sebuah program dengan skala besar memerlukan penghematan sebuah memori.
Dengan mekanisme copy paste variabel ke variabel lain, maka dapat dipastikan akan memboroskan memori.
Beruntung pointer bisa menanganinya dengan cara suatu fungsi dapat diakses dengan fungsi lainnya.
Alamat Pada Variabel
Setiap variabel mempunyai sebuah alamat memori yang sudah umum pada komputer.
Misalnya Anda mempunyai satu variabel "x", maka akan tersimpan di alamat 0x000001.
Jika ada variabel lainnya, maka alamatnya menjadi 0x000002, 0x000003 dan seterusnya.
Namun yang perlu diperhatikan adalah setiap alamat menggunakan kode "hexsadesimal".
Sehingga, jika sudah mencapai alamat ke 10 akan berubah menjadi 0x00000a.
Perhatikan gambar berikut:
Macam-macam Operator Pointer
Ada dua macam operator yang biasa digunakan pada pointer.
Masing-masing mempunyai penjelasan dan fungsi yang berbeda.
Namun kadangkala keduanya digunakan secara bersamaan. Dua operator itu, yaitu:
1# Deference atau Address of-Operator (&)
Deference dikenal dengan menggunakan simbol "&".
Fungsinya untuk mendapatkan atau melihat alamat memori pada suatu variabel.
Sederhananya, jika Anda ingin melihat alamat variabel "x", maka tinggal menggunakan simbol "&" di depan variabel.
Jika dicetak pada Command, maka akan tampil alamat memori variabel "x".
Contoh:
#include <iostream>
using namespace std;
int main(){
int a = 5;
cout<<"Alamat Variabel a adalah :"<<&a<<endl;
cout<<"Nilai Variabel a adalah :"<<a<<endl;
return 0;
}
Hasil:
2# Reference (*)
Jika simbol "&" berfungsi untuk mendapatkan alamat variabel, maka simbo "*" berguna untuk mendapatkan isi atau nilai dari suatu variabel sekaligus menandakan bahwa ia adalah variabel pointer.
Contoh program:
#include <iostream>
using namespace std;
int main(){
int a=5; //Memberikan nilai 5 pada variabel a
int *b; //Mendeklarasikan variabel b sebagai pointer
b = &a; //Mengkopikan alamat variabel a kedalam variabel pointer b
cout<<"Nilai variabel a adalah "<<a<<endl;
cout<<"Alamat variabel a adalah "<<&a<<endl;
cout<<"Isi dari variabel b adalah "<<b<<endl;
cout<<"Nilai yang tertampung dalam variabel b adalah "<<*b<<endl;
return 0;
}
Hasil:
Penjelasan:
- Nilai variabel b sama dengan variabel a, walaupun variabel b tidak diberikan nilai yang sama dengan variabel a.
- Hal ini terjadi karena variabel pointer b menunjuk alamat variabel a dan variabel pointer b dapat mengakses nilai yang terkandung dalam alamat yang ditunjuknya.
Membuat Pointer
Setelah Anda memahami kedua operator di atas, maka saatnya membuat pointer dengan menggunakan kedua operator di atas.
Contoh:
int var = 6;
int *nomor;
double *nomor = &var;
Penjelasan:
- Pertama buat sebuah variabel dengan nama "var" yang valuenya = 6.
- Lalu buat variabel pointer dengan nama "nomor" dan ditambahkan simbol "*" di depan nama variabel (tanpa spasi).
- Terakhir, pindahkan isi variabel "var" ke dalam pointer "nomor".
- Selesai.
Penting!
Pointer tidak hanya bisa digunakan pada sebuah variabel, tetapi bisa juga digunakan pada function, objek dan lain-lain.
Cara implementasi pointer selain pada variabel masih sama seperti contoh penggunaan pada variabel.
Ukuran Pointer / Besar Memori yang Digunakan
Sudah sangat jelas bahwa setiap pointer membutuhkan sebuah memori.
Lalu, besaran memori itu sama pada setiap tipe data yang Anda gunakan.
Ukuran memori pointer tergantung pada mesin kompiler.
Jika kompiler 32bit maka pointer akan memakan 4 bytes memori, jika menggunakan 64bit maka pointer memakan 8 bytes memori.
Untuk mendapatkan ukuran / besar pointer, maka kita bisa menggunakan fungsi sizeof(nama_pointer).
Contoh:
#include <iostream>
using namespace std;
int main()
{
int var = 2;
int *hasil = &var;
cout<<sizeof(hasil)<<endl;
return 0;
}
***
Demikianlah materi awal pengenalan pointer pada kesempatan kali ini.
Jika masih ada yang ingin ditanyakan silahkan gunakan kolom komentar di bawah postingan.
Jangan lupa share materi ini agar semakin banyak manfaatnya buat orang lain.
Salam,
Saung IT
Sumber Referensi:
1. Sinau Arduino, Link URL, Diakses 20 Maret 2019
2. Belajar C++, Link URL, Diakses 20 Maret 2019
Comments