Materi 10 C++ Pointer dan Reference

Download Report

Transcript Materi 10 C++ Pointer dan Reference

Pointer dan Reference
As’ad Djamalilleil
http://kampusku.web.id
[email protected]
Pointer
• Pointer adalah variabel yang dapat
menyimpan alamat memory dari variabel
lain.
• Pointer biasanya digunakan untuk
pembuatan program yang membutuhkan
memory yang besar, sehingga
penanganan memory harus bersifat
dinamis.
• Lebih jelasnya, silahkan pelajari materi
struktur data.
Deklarasi Pointer
tipeData *namaPointer;
• Deklarasi pointer mirip dengan deklarasi variabel
biasa, tetapi ditambahkan tanda asterix (*) di depan
nama variabel. Selanjutnya variabel tersebut akan
dianggap sebagai pointer.
• Tipe data pointer disesuaikan dengan tipe dari
variabel yang akan disimpan alamat memory-nya.
Contoh:
int *tunjuk;
char *pHuruf;
float *lain;
Nilai Pointer
• Pointer dapat menyimpan alamat memory
dari variabel lain, sehingga nilainya
merupakan alamat memory dari variabel lain.
Caranya yaitu dengan menyisipkan tanda
ampersand (&) di depan nama variabel yang
akan diberikan alamatnya kepada pointer.
• Setelah diberi nilai, pointer seolah-olah
“menunjuk” ke variabel lain di memory,
sehingga kita bisa memanipulasi nilai variabel
tersebut lewat pointer.
Contoh:
int nilai = 5;
int *tunjuk;
tunjuk = &nilai;
*tunjuk = 7;
cout << *tunjuk;
cout << nilai;
cout << &tunjuk;
cout << &nilai;
 inisialisasi variabel “nilai”
 deklarasi pointer “tunjuk”
 pointer menunjuk ke variabel “nilai”
 isi variabel “nilai” diubah lewat pointer
kedua statement ini akan memberikan hasil yang
sama, yang menunjukkan bahwa isi variabel “nilai”
dapat diubah lewat pointer “tunjuk”.
kedua statement ini akan memberikan hasil yang
berbeda, yang berarti bahwa kedua variabel ini
berada pada lokasi memory yang berbeda.
nilai
*tunjuk
7
0xFF82
0xFF82
0xFF86
Reference
• Reference adalah variabel yang memiliki
alamat memory yang sama dengan
variabel lain.
• Reference biasa digunakan dalam
penggunaan fungsi dengan teknik
passing-by-reference.
Inisialisasi Reference
tipeData &namaRef = namaVariabel;
• Sebuah reference harus langsung diinisialisasi.
• Di depan nama reference ditambahkan tanda
ampersand (&).
• Tipe data reference disesuaikan dengan tipe dari
variabel yang akan diberikan sebagai nilainya pada
saat inisialisasi.
Contoh:
int pakai;
int &bagi = pakai;
Nilai Reference
• Reference seperti halnya variabel biasa,
dapat menyimpan nilai sesuai dengan tipe
datanya.
• Setelah diinisialisasi, reference memiliki nilai
dan alamat memory yang sama dengan
variabel yang diberikan namanya ke
reference pada saat inisialisasi.
• Hasilnya adalah, perubahan nilai di salah
satu variabel (reference ataukah variabel
biasa) akan berpengaruh pada keduanya.
Contoh:
int pakai;
 inisialisasi variabel “pakai”
int &bagi = pakai;
 inisialisasi reference “bagi”
pakai = 7;
 merubah nilai lewat variabel “pakai”
cout << bagi;
cout << pakai;
bagi = 5;
kedua statement ini akan memberikan hasil yang sama
 merubah nilai lewat reference “bagi”
cout << bagi;
kedua statement ini akan memberikan hasil yang sama
cout << pakai;
cout << &bagi;
cout << &pakai;
kedua statement ini akan memberikan hasil yang sama,
yang menunjukkan bahwa keduanya memiliki alamat
memory yang sama
pakai
&bagi
5
5
0xFF84
0xFF84
alamat memory dari variabel “pakai”
maupun reference “bagi” keduanya
sama, sehingga hasil perubahan nilai
lewat satu identifier akan dapat
langsung terlihat lewat identifier lain.