pointer
DESCRIPTION
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. - PowerPoint PPT PresentationTRANSCRIPT
PointerPointerGerlan A. Manu, STEmail : [email protected]
Pengantar PointerPengantar PointerPemakaian 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 PointerDeklarasi PointerTipe pointer dideklarasikan pada
bagian deklarasi typeBentuk 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 PointerDeklarasi PointerTanda ^ 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 Implementasi Pointer pada RecordRecord 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;
P1
P2
Simpul yang berisi medan bertipe pointer dapat digambarkan sbb:
Implementasi Pointer pada Implementasi Pointer pada RecordRecordPada 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 PointerOperasi pada PointerSecara 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.
ContohContohType Mahasiswa = ^Data;
^Data = recordnama : 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 :
b
T1
T2
Lanjutan…Lanjutan…Dengan menggunakan statemen:T1^ .Nama := ‘OKKY’;T1^.Alamat := ‘KUPANG’;
Maka simpul tersebut menjadi
Jika kita berikan statemen :T2 := T1;Maka simpulnya menjadi :
T1 OKKY KUPANGT2 ? ?
T1 OKKY KUPANG
T2 ? ?
Lanjutan…Lanjutan…Jika statemen yang kita berikan
adalah :T2^ := T1^;
Maka simpul tersebut akan menjadi :T1 OKKY KUPANGT2 OKKY KUPANG
End…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.