Dokumen tersebut membahas tentang pointer, yaitu tipe data khusus yang menyimpan alamat memori. Pointer dapat digunakan untuk mengakses nilai variabel lain secara tidak langsung, dan memungkinkan alokasi memori secara dinamis.
2. DEFINISI POINTER
Pointer adalah tipe dasar yang ranah nilainya
adalah alamat di memori komputer.
Memori terdiri atas sekumpulan sel dan
setiap sel mempunyai alamat yaitu : alamat
fisik (berupa angka-angka dalam sistem
heksadesimal).
Programmer mendefinisikan nama untuk
lokasi memori yang menyimpan suatu nilai.
3. PENDEKLARASIAN POINTER
Sel memori menyimpan nilai sesuai dengan
tipe data dari nama yang didefinisikan
programmer, termasuk menyimpan nilai
bertipe pointer.
Karena pointer adalah alamat, maka sel
memori yang berisi nilai pointer berarti
menyimpan alamat sel memori yang lain.
Contoh: PX adalah peubah bertipe pointer
yang akan berisi alamat peubah lain yang
bertipe integer.
5. PENDEKLARASIAN POINTER
Bila PX diisi dengan alamat fisik peubah X, maka
nilai yang disimpan oleh X juga dapat diskes
melalui PX dengan notasi:
PX↑
Untuk mencetak harga X, dapat dilakukan dengan
dua cara, yaitu:
Deskripsi
X 80
write(x) { mencetak nilai X tanpa pointer }
PX @X { mengisi alamax X de dalam PX }
write(PX↑) [ mencetak nilai PX }
6. MEMBANDINGKAN POINTER
Untuk menguji kesamaan dua peubah pointer. Jika
dua peubah pointer sama, maka kedua peubah
tersebut menunjuk ke data yang sama.
Contoh, misalkan PA dan PB merupakan pointer
dengan tipe yang sama
PA
PB
7. POINTER PADA RECORD
Deklarasi
Type DataMhs : record < NIM : integer, Nama : String,
IPK : Real>
PMhs : Pointer to DataMhs
Deskripsi
Mhs.NIM 2011110001
Mhs.Nama ‘Dhanny Chandra’
Mhs.IPK 3.2
PMhs @Mhs
write(Mhs↑.NIM)
write(Mhs↑.Nama)
write(Mhs↑.IPK)
8. POINTER PADA RECORD
Maka :
PMhs↑.NIM : menunjuk ke field yang bertipe
integer
PMhs↑.Nama : menunjuk ke field yang bertipe string
PMhs↑.IPK : menunjuk ke field yang bertipe real
9. ALOKASI PENYIMPANAN DINAMIS
Kelebihan tipe pointer dibandingkan dengan tipe
lainnya adalah pengalokasian memorinya
secara dinamis.
Pendeklarasian larik atau matriks harus
memberitahukan berapa jumlah elemennya
agar sistem dapat menyediakan sejumlah ruang
memori. Sekali ruang memori telah
dialokasikan, ruang memori tersebut tidak dapat
dihapus dan dikembalikan ke sistem.
Tipe pointer memungkinkan pengalokasian
memori secara dinamis.
10. ALOKASI PENYIMPANAN DINAMIS
Dalam Delphi Pascal:
Prosedur pengalokasian memori = New(pointer)
Prosedur pengalokasian memori = Dispose(pointer)
{ prosedur pengalokasian ruang memori }
procedure AlokMem(output P : Alamat)
{ prosedur mengembalikan ruang memori ke sistem }
procedure DeAlokMem(input P : Alamat)