Pointer - Gerlan A. Manu, ST.,MKom
Download
Report
Transcript Pointer - Gerlan A. Manu, ST.,MKom
Pointer
Gerlan A. Manu, ST
Email : [email protected]
Pengantar Pointer
Pemakaian array tidak selalu tepat untuk
program-program terapan yang kebutuhan
pengingatnya selalu bertambah selama
eksekusi prgram tersebut.
Untuk itu perlu adanya suatu tipe data
yang bisa dialokasikan dan didealokasikan
sesuai kebutuhan, yaitu Pointer.
Deklarasi Pointer
Tipe pointer dideklarasikan pada bagian
deklarasi type
Bentuk umum deklarasi pointer adalah :
Type
pengenal = ^simpul;
simpul = tipe;
(pengenal : nama pengenal yang menyatakan data
bertipe pointer; silmpul : nama simpul; tipe : tipe data
dari simpul)
Deklarasi Pointer
Tanda ^ di depan nama impul harus dituli seperti apa
adany an menunjukkan bahwa pengenal aalah suatu tipe
data pointer.
Tipe data simpul yang dinyatakan dalam tipe bia berupa
sembarang tipe data, misalnya char, integr, atau real.
Contoh :
Type Bulat : ^integer;
Dalam contoh diatas Bulat menunjukkan tipe data baru,
yaitu bertipe pointer. Dalam hal ini pointer tersebut
akan menunjukkan ke suatu data yang bertipe integer.
Misalnya :
var
X, K : Bulat ;
Implementasi Pointer pada Record
Pada program-program terapan, biasanya terdapat sekumpulan data yang dikumpulkan
dalam sebuah rekaman (record), maka akan banyak dijupai tipe data pointer yang
elemennya (data yang ditunjukkan) adalah sebuah rekaman
Contoh :
type
teks = string[30];
point = ^data;
data = record
nama_peg : teks;
alamat : teks;
pekerjaan : teks;
berikut : point
end;
var
P1, P2 : point;
A,B,C : Teks;
Simpul yang berisi medan bertipe pointer dapat digambarkan sbb:
P1
P2
Implementasi Pointer pada Record
Pada contoh di slide sebelumnya, P1 dan P2 adalah
pointer yang akan menempati lokasi tertentu
dalam pengingat.
Kedua perubah ini masing-masing belum
menunjuk ke suatu simpul nilai, dinyatakan sebagai
nil.
Untuk mengalokasikan simpul dalam pengingat,
statemen yag digunakan adalah statemen new.
Bentuk Umum :
new(P1);
new(P2);
Operasi pada Pointer
Secara umum ada dua operasi pada
pointer dasar :
Mengkopi pointer, sehinggga sebuah simpul akan
ditujuk oleh lebih dari sebuah pointer.
Mengkopi isi simpul, sehingga dua atau lebih simpul
yang ditunjuk oleh pointer yang berbeda
mempunyai isi yang sama.
Syarat-syarat operasi pointer adalah
kedua pointer yang dioperasikan harus
mempunai deklarasi yang sama.
Contoh
Type Mahasiswa = ^Data;
^Data = record
nama : string;
alamat : string;
berikut : Mahasiswa
end;
Var T1, T2 : Mahasiswa;
Pada deklarasi di atas, pointer T1 dan T2 mempunyai deklarasi simpul yang sama, sehingga
memenuhi syarat untuk operasi pointer. Sekarang kita berikan statement :
New (T1);
New (T2);
Artinya kita mempunyai dua simpul, yaitu :
T1
b
T2
Lanjutan…
Dengan menggunakan statemen:
T1^ .Nama := ‘OKKY’;
T1^.Alamat := ‘KUPANG’;
Maka simpul tersebut menjadi
T1
OKKY
KUPANG
T2
?
?
Jika kita berikan statemen :
T2 := T1;
Maka simpulnya menjadi :
T1
OKKY
KUPANG
T2
?
?
Lanjutan…
Jika statemen yang kita berikan adalah :
T2^ := T1^;
Maka simpul tersebut akan menjadi :
T1
OKKY
KUPANG
T2
OKKY
KUPANG
End…
Demikian penjelasan tentang perubah
dinamis yang lebih dikenal dengan sebutan
pointer. Pada materi-materi selanjutnya
kita akan banyak memakai pointer untuk
menyajikan struktur-stuktur data yang
akan kita pelajari seperti : tumpukan,
antrian, dan pohon biner.