P. 1
Pointer

Pointer

|Views: 429|Likes:
Dipublikasikan oleh Pipin Widyaningsih

More info:

Published by: Pipin Widyaningsih on Jun 01, 2011
Hak Cipta:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

09/26/2013

pdf

text

original

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));

Keterangan P adalah P:^BYTE. P^:=13.NIM :^string.Menggunakan Var Var Nama. READLN.Nil Pointer diberikan kemanapun. VAR P:^BYTE. USES CRT. P:=NIL. END. Data=record. D. 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 . Operasi Dasar 1. 2. PROGRAM CONTOHNIL. Keluaran : Program tersebut angka 13.IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II C. WRITE(P^). Kelas :^byte. Bentuk Umum Deklarasi 1. Kelas:byte. Var A:^nilai.Menggunakan Type Contoh 1: Type Simpul=^data. Nama :string[20]. NEW(P). BEGIN CLRSCR. End. NIM :String[9]. Contoh 2 : Type Nilai:integer. Var DataMhs:simpul.).

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

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

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

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

You're Reading a Free Preview

Mengunduh
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->