IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II

POINTER
A. Definisi Pointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori. Dalam penulisan pointer biasa digambar dengan panah, sedangkan bagian memori yang ditunjuk digambar dengan kotak, dan isinya ditulis di dalam kotak. bertipe Suatu pointer dapat menunjuk ke data elementer, terstruktur, pointer yang lain, atau tidak bertipe. Jika suatu pointer tidak menunjuk ke mana-mana, pointer itu dinamakan dangling, sedangkan bagian memori yang tidak dapat diakses karena tidak ada pointer yang menunjuk dinamakan garbage (sampah). B. Jenis Tipe Data pointer ada 2 jenis yaitu : 1.Pointer Bertipe (Typed Pointer) yaitu pointer yang memiliki/menunjuk tipe data tertentu pada saat pendefinisian variabel 2.Pointer Tak Bertipe (Untyped Pointer) yaitu pointer yang tidak menunjuk tipe data tertentu pada saat pendefinisian variabel Secara garis besar, perbedaan pointer bertipe dan pointer tidak bertipe disajikan dalam table sebagai berikut : Perbedaan Pointer Bertipe Deklarasi Var <<NamaVariabel>>:^<<TipeData>>; Contoh : Var P:^integer; Definisi New(<<NamaVar>>; pointer baru Contoh : New(P); Hapus Dispose(<<NamaVar>>); Pointer Contoh : Dispose(P); Pointer Tak bertipe Var <<NamaVar>>:Pointer; Contoh : Var P:pointer; GetMem(<<NamaVar>> SizeOf (<<tipeData)); Contoh : GetMem (P, SizeOf(byte)); FreeMem(<<NamaVar>> SizeOf (<<tipeData)); Contoh: FreeMem (P, SizeOf(byte));

P^:=13. Operasi Dasar 1.IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II C. NIM :String[9]. NEW(P). PROGRAM CONTOHNIL. Data=record. Var DataMhs:simpul. Keluaran : Program tersebut angka 13. READLN. Kelas:byte.Nil Pointer diberikan kemanapun. END. Var A:^nilai.Menggunakan Type Contoh 1: Type Simpul=^data. Keterangan P adalah P:^BYTE. P:=NIL. D.). End.Menggunakan Var Var Nama. VAR P:^BYTE. Bentuk Umum Deklarasi 1. 2. Nama :string[20]. WRITE(P^). Kelas :^byte.NIM :^string. Contoh 2 : Type Nilai:integer. USES CRT. BEGIN CLRSCR. akan nilai Nil jika tidak menunjuk Nil P P 13 menghasilkan keluaran berupa : pointer dengan tipe data byte (Var Pada awal P tidak menunjuk kemanapun .

P menunjuk ke 13 tampilkan nilai P (WRITE(P^).Operasi Copy Simpul Operasi copy simpul dilakukan antara dua simpul dengan tipe data sama.B:^BYTE. . : '.Operasi Copy Isi Simpul Operasi copy isi simpul dilakukan antara dua simpul dengan tipe data sama.B^). : '.). (P^:=13.). Copy simpul adalah operasi untuk mengcopy simpul/lokasi. : '. BEGIN CLRSCR. COPY SIMPUL A:=B MAKA :'). : '. NEW(A). WRITELN('NILAI A WRITELN('NILAI B READLN. Keluaran : NILAI A : 12 NILAI B : 15 OPERASI COPY SIMPUL A:=B MAKA : NILAI A : 15 NILAI B : 15 A B 12 15 A B 12 15 3.). Copy isi simpul adalah operasi untuk mengcopy isi dari simpul. A^:=12. Kemudian 2. USES CRT. VAR A.A^).A^). WRITELN('NILAI B WRITELN('OPERASI A:=B. PROGRAM COPYSIMPUL. END.B^). WRITELN('NILAI A B^:=15.IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II (P:=NIL. NEW(B).

BEGIN CLRSCR.B:^BYTE.A^). WRITELN('NILAI A : '. WRITELN('NILAI B : '. B^:=15. WRITELN('NILAI A : '. A^:=12.B^). NEW(A). PROGRAM CONTOHAT. VAR A:^BYTE. X:INTEGER.A^). NEW(B).Operasi @ Fungsi @ digunakan untuk mengambil alamat variabel yang akan ditunjuk oleh pointer.IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II PROGRAM COPYISISIMPUL. Operasi bisa dilakukan pada pointer dan variabel yang bertipe data sama maupun berbeda dengan catatan sejenis. Sejenis memeiliki maksud jika tipe data angka maka tipe data angka semua atau tipe untuk karakter maka tipe data karakter semua. USES CRT. A^:=B^. VAR A. END. WRITE('INPUT SEBUAH ANGKA = '). USES CRT. Keluaran : NILAI A : 12 NILAI B : 15 OPERASI COPY ISI SIMPUL A^:=B^ MAKA : NILAI A : 15 NILAI B : 15 A B 12 15 A B 15 15 4. WRITELN('OPERASI COPY ISI SIMPUL A^:=B^ MAKA :'). READLN. .B^). WRITELN('NILAI B : '. BEGIN CLRSCR.

WRITELN('LAKUKAN DISPOSE A'). Kemudian variabel A diberi nilai 100..IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II END. USES CRT.A^). Kemudian isi dari variabel A yang baru dan variabel X ditampilkan di layar. : '.Operasi New dan Dispose PROGRAM NEWDIS. 5. WRITELN('NILAI A WRITELN('NILAI X READLN.'. VAR A:^STRING. : '. READLN(X)..X). Variabel X Sesuai inputan user misalkan nilai X=2. . DISPOSE(A). : '.A^). : '. dan secara otomatis variabel X juga bernilai 100 karena sudah ditunjuk oleh variabel A. WRITELN('NILAI A WRITELN('POINTER A^:=100.. Keluaran : INPUT SEBUAH ANGKA = 2 (sesuai input user misal 2) NILAI X : 2 OPERASI A:=@X MAKA NILAI A : 2 POINTER A MENUNJUK ANGKA 100 MAKA : NILAI A : 100 NILAI X : 100 Keterangan : Pada contoh program deklarasi ini.X). WRITE(A^). A^:='ANDA BISA LIHAT INI . A MENUNJUK ANGKA 100 MAKA : '). END. WRITELN('NILAI X WRITELN('OPERASI A:=@X. sehingga variabel A berisi nilai 2. pertama-tama dideklarasikan variabel A sebagai pointer yang bertipe byte. A:=@X MAKA'). NEW(A). Kemudian variabel A menunjuk alamat dari variabel X dengan operator @. BEGIN CLRSCR.. Dibuat sebuah variabel lagi yang diberi nama X dan bertipe integer. dan ditampilkan outputnya di layar. READLN.

End. RecNama = Record Nama : String[25] . Writeln('DATA YANG TELAH DIINPUTKAN ADALAH = '). Readln(DataMahasiswa^.DataMahasiswa^. End . readln. Nilai: byte.Nilai). WriteLn(' NAMA MAHASISWA = '.IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II Perintah New berfungsi untuk mendefinisikan pointer baru. Uses Crt . Proses Input Data sesuai dengan inputan user untuk nama mahasiswa dan Nilai mahasiswa Kode untuk menampilkan data yang telah diinputkan oleh user .Nilai). New(DataMahasiswa) . write('Nilai Mahasiswa : '). CONTOH PROGRAM POINTER : Program ContohPointer. Type Petunjuk = ^RecNama .Nama) . Keterangan : Definisi pointer baru dengan cara type dan nama pointer adalah petunjuk petunjuk tipe datanya pointer dengan nama ^RecNama. WriteLn(' NILAI MAHASISWA = '. Begin clrscr. Write('Nama Mahasiswa : '). ReadLn(DataMahasiswa^. Var DataMahasiswa : Petunjuk . Record terdiri dari 2 field yaitu nama dengan tipe data string dan nilai dengan tipe data byte. Clrscr.Nama). Proses pendefinisian pointer baru dengan nama DataMahasiswa.DataMahasiswa^. Sedangkan perintah dispose berfungsi untuk menghapus pointer.

Sign up to vote on this title
UsefulNot useful