Pointer Struktur Data Pengantar Pointer  Pemakaian array tidak selalu tepat untuk programprogram terapan yang kebutuhan pengingatnya selalu bertambah selama eksekusi program tersebut.  Untuk.

Download Report

Transcript Pointer Struktur Data Pengantar Pointer  Pemakaian array tidak selalu tepat untuk programprogram terapan yang kebutuhan pengingatnya selalu bertambah selama eksekusi program tersebut.  Untuk.

Pointer
Struktur Data
Pengantar Pointer
 Pemakaian array tidak selalu tepat untuk programprogram terapan yang kebutuhan pengingatnya selalu
bertambah selama eksekusi program 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;
simpul : nama simpul; tipe : tipe data dari simpul)
Deklarasi Pointer

Tanda ^ di depan nama simpul harus ditulis seperti apa adanya dan menunjukkan bahwa
pengenal adalah suatu tipe data pointer.

Tipe data simpul yang dinyatakan dalam tipe bisa berupa sembarang tipe data, misalnya char,
integer, atau real.

Contoh :
Type Bulat : ^angka
angka : 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 dijumpai 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;
Simpul yang berisi medan bertipe pointer dapat digambarkan sbb:
var
P1
P2
P1, P2 : point;
A,B,C : Teks;
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 ditunjuk
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
T2
Lanjutan…
Dengan menggunakan statement :
T1^ .Nama := ‘OKKY’;
T1^.Alamat := ‘KUPANG’;
Maka simpul tersebut menjadi :
T1
OKKY
KUPANG
T2
?
?
Jika kita berikan statemen :
T2 := T1;
T1
Maka simpulnya menjadi : T2
OKKY
KUPANG
?
?
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 materimateri selanjutnya kita akan banyak memakai pointer
untuk menyajikan struktur-stuktur data yang akan kita
pelajari seperti : tumpukan, antrian, dan pohon biner.