120 likes | 350 Views
Pointer. Gerlan A. Manu, ST Email : gerlan.manu@gmail.com. Pengantar Pointer. Pemakaian array tidak selalu tepat untuk program-program terapan yang kebutuhan pengingatnya selalu bertambah selama eksekusi prgram tersebut.
E N D
Pointer Gerlan A. Manu, ST Email : gerlan.manu@gmail.com
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 dideklarasikanpadabagiandeklarasitype • Bentukumumdeklarasi pointer adalah : Type pengenal = ^simpul; simpul = tipe; (pengenal : namapengenal yang menyatakan data bertipe pointer; silmpul : namasimpul; tipe : tipe data darisimpul)
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, biasanyaterdapatsekumpulan data yang dikumpulkandalamsebuahrekaman (record), makaakanbanyakdijupaitipe data pointer yang elemennya (data yang ditunjukkan) adalahsebuahrekaman • 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 • Padacontohdi slide sebelumnya, P1 dan P2 adalah pointer yang akanmenempatilokasitertentudalampengingat. • Keduaperubahinimasing-masingbelummenunjukkesuatusimpulnilai, dinyatakansebagai nil. • Untukmengalokasikansimpuldalampengingat, statemenyagdigunakanadalahstatemennew. • BentukUmum : new(P1); new(P2);
Operasipada 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; Padadeklarasidiatas, pointer T1 dan T2 mempunyaideklarasisimpul yang sama, sehinggamemenuhisyaratuntukoperasi pointer. Sekarangkitaberikan statement : New (T1); New (T2); Artinyakitamempunyaiduasimpul, yaitu : b T1 T2
Lanjutan… Denganmenggunakanstatemen: T1^ .Nama := ‘OKKY’; T1^.Alamat := ‘KUPANG’; Makasimpultersebutmenjadi Jikakitaberikanstatemen : T2 := T1; Makasimpulnyamenjadi : T1 OKKY KUPANG T2 ? ? 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.