Sd bab 7 (pointer)

10
POINTER

Transcript of Sd bab 7 (pointer)

Page 1: Sd bab 7 (pointer)

POINTER

Page 2: Sd bab 7 (pointer)

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.

Page 3: Sd bab 7 (pointer)

PENDEKLARASIAN POINTER

Sel memori menyimpan nilai sesuai dengantipe data dari nama yang didefinisikanprogrammer, termasuk menyimpan nilaibertipe pointer.

Karena pointer adalah alamat, maka selmemori yang berisi nilai pointer berartimenyimpan alamat sel memori yang lain.

Contoh: PX adalah peubah bertipe pointeryang akan berisi alamat peubah lain yangbertipe integer.

Page 4: Sd bab 7 (pointer)

PENDEKLARASIAN POINTER

Gambar Sel-sel memori PX berisi alamat sel memori X

Deklarasi

X : integer

PX : Pointer to integer

Page 5: Sd bab 7 (pointer)

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 }

Page 6: Sd bab 7 (pointer)

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

Page 7: Sd bab 7 (pointer)

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)

Page 8: Sd bab 7 (pointer)

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

Page 9: Sd bab 7 (pointer)

ALOKASI PENYIMPANAN DINAMIS

Kelebihan tipe pointer dibandingkan dengan tipelainnya adalah pengalokasian memorinyasecara dinamis.

Pendeklarasian larik atau matriks harusmemberitahukan berapa jumlah elemennyaagar sistem dapat menyediakan sejumlah ruangmemori. Sekali ruang memori telahdialokasikan, ruang memori tersebut tidak dapatdihapus dan dikembalikan ke sistem.

Tipe pointer memungkinkan pengalokasianmemori secara dinamis.

Page 10: Sd bab 7 (pointer)

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)