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.