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.