Page 150 - Project Akhir Media Pendidikan
P. 150
Ketika kita mendeklarasikan suatu variabel di dalam bahasa C, maka kompiler akan
memesan ruang memori (dengan alamat tertentu yang bersifat unik) untuk menampung
variabel tersebut. Dengan kata lain, kompiler akan mengasosiasikan alamat yang dimaksud
melalui nama variabel yang telah dideklarasikan. Hal ini berarti bahwa apabila kita
menggunakan variabel tersebut, maka sebenarnya secara tidak langsung kita juga
mengakses alamat memori yang bersangkutan. Kita tidak perlu mempermasalahkan
bagaimana cara kompiler mengakses alamat tersebut, karena semua kerumitan dari proses
tersebut telah disembunyikan.
7.3. Apa Itu Pointer?
Menurut definisinya, pointer adalah sebuah variabel yang berisikan alamat memori
(bukan nilai) atau dengan kata lain dapat dikatakan bahwa pointer adalah suatu variabel
penunjuk ke alamat memori tertentu. Secara umum, pointer dapat digambarkan sebagai
berikut.
Alamat ke-1 Alamat
Alamat ke-2 Alamat
P Alamat ke-3 Alamat
Pointer … Alamat ke-4 …
… Alamat ke-N
Alamat ke-N Alamat
Gambar 7.1. Ilustrasi Pointer
Dari gambar di atas dapat kita lihat bahwa pointer P sedang menunjuk ke alamat ke-1,
ini berarti bahwa nilai dari pointer P adalah alamat ke-1. Hal ini tentu berbeda
dengan definisi variabel biasa yang hanya dapat menyimpan nilai dengan tipe data tertentu.
Perhatikan contoh pendeklarasian variabel berikut ini.
int X;
X = 10;
Pada pendeklarasian di atas nilai X bukan berupa alamat, melainkan berupa nilai yang
memiliki tipe data int (yaitu nilai 10).
Untuk dapat lebih memahami apa sebenarnya pengertian pointer, marilah kita melihat
kembali pengertian memori dan alamat memori komputer. Memori komputer dapat
dikatakan sebagai kumpulan atau larik dari alamat memori yang masing-masing bersifat
unik. Hal yang perlu sekali untuk diperhatikan adalah bahwa pointer juga merupakan isi
memori. Pointer merupakan ‘alamat khusus’ yang telah dipesan oleh kompiler dan
linker untuk mencatat atau menunjuk alamat memori dari variabel lain. Oleh sebab itu,
pointer juga sering dinamakan dengan alamat memori, walaupun sebenarnya lebih tepat
146