You are on page 1of 6

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.
Suatu pointer dapat menunjuk ke data bertipe
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 Pointer Tak bertipe


Deklarasi Var Var
<<NamaVariabel>>:^<<TipeData>>; <<NamaVar>>:Pointer;
Contoh : Contoh :
Var Var
P:^integer; P:pointer;
Definisi New(<<NamaVar>>; GetMem(<<NamaVar>> SizeOf
pointer (<<tipeData));
baru
Contoh : Contoh :
New(P); GetMem (P, SizeOf(byte));
Hapus Dispose(<<NamaVar>>); FreeMem(<<NamaVar>> SizeOf
Pointer (<<tipeData));

Contoh : Contoh:
Dispose(P); FreeMem (P, SizeOf(byte));
IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II

C. Bentuk Umum Deklarasi


1.Menggunakan Type
Contoh 1:
Type
Simpul=^data;
Data=record;
NIM :String[9];
Nama :string[20];
Kelas:byte;
End;
Var DataMhs:simpul;

Contoh 2 :
Type
Nilai:integer;
Var
A:^nilai;

2.Menggunakan Var
Var
Nama,NIM :^string;
Kelas :^byte;

D. Operasi Dasar
1.Nil
Pointer diberikan nilai Nil jika tidak menunjuk
kemanapun.

PROGRAM CONTOHNIL;
USES CRT;
VAR
P:^BYTE;
BEGIN Nil
CLRSCR;
P
NEW(P);
P:=NIL;
P^:=13; P 13
WRITE(P^);
READLN;
END.

Keluaran :
Program tersebut akan menghasilkan keluaran berupa
angka 13.

Keterangan :
P adalah pointer dengan tipe data byte (Var
P:^BYTE;). Pada awal P tidak menunjuk kemanapun
IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II

(P:=NIL;). P menunjuk ke 13 (P^:=13;). Kemudian


tampilkan nilai P (WRITE(P^);).

2.Operasi Copy Simpul


Operasi copy simpul dilakukan antara dua simpul dengan
tipe data sama. Copy simpul adalah operasi untuk
mengcopy simpul/lokasi.

PROGRAM COPYSIMPUL;
USES CRT;
VAR A,B:^BYTE;
BEGIN
CLRSCR;
NEW(A);
NEW(B);
A^:=12;
WRITELN('NILAI A : ',A^);
B^:=15;
WRITELN('NILAI B : ',B^);
WRITELN('OPERASI COPY SIMPUL A:=B MAKA :');
A:=B;
WRITELN('NILAI A : ',A^);
WRITELN('NILAI B : ',B^);
READLN;
END.

Keluaran :
NILAI A : 12
NILAI B : 15
OPERASI COPY SIMPUL A:=B MAKA :
NILAI A : 15
NILAI B : 15

A 12 A 12

B 15 B 15

3.Operasi Copy Isi Simpul


Operasi copy isi simpul dilakukan antara dua simpul
dengan tipe data sama. Copy isi simpul adalah operasi
untuk mengcopy isi dari simpul.
IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II

PROGRAM COPYISISIMPUL;
USES CRT;
VAR A,B:^BYTE;
BEGIN
CLRSCR;
NEW(A);
NEW(B);
A^:=12;
WRITELN('NILAI A : ',A^);
B^:=15;
WRITELN('NILAI B : ',B^);
WRITELN('OPERASI COPY ISI SIMPUL A^:=B^ MAKA :');
A^:=B^;
WRITELN('NILAI A : ',A^);
WRITELN('NILAI B : ',B^);
READLN;
END.

Keluaran :
NILAI A : 12
NILAI B : 15
OPERASI COPY ISI SIMPUL A^:=B^ MAKA :
NILAI A : 15
NILAI B : 15

A 12 A 15

B 15 B 15

4.Operasi @
Fungsi @ digunakan untuk mengambil alamat variabel
yang akan ditunjuk oleh pointer. 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.

PROGRAM CONTOHAT;
USES CRT;
VAR A:^BYTE;
X:INTEGER;
BEGIN
CLRSCR;
WRITE('INPUT SEBUAH ANGKA = ');
IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II

READLN(X);
WRITELN('NILAI X : ',X);
WRITELN('OPERASI A:=@X MAKA');
A:=@X;
WRITELN('NILAI A : ',A^);
WRITELN('POINTER A MENUNJUK ANGKA 100 MAKA : ');
A^:=100;
WRITELN('NILAI A : ',A^);
WRITELN('NILAI X : ',X);
READLN;
END.

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, pertama-tama
dideklarasikan variabel A sebagai pointer yang
bertipe byte. Dibuat sebuah variabel lagi yang diberi
nama X dan bertipe integer. Variabel X Sesuai
inputan user misalkan nilai X=2. Kemudian variabel A
menunjuk alamat dari variabel X dengan operator @,
sehingga variabel A berisi nilai 2, dan ditampilkan
outputnya di layar. Kemudian variabel A diberi nilai
100, dan secara otomatis variabel X juga bernilai 100
karena sudah ditunjuk oleh variabel A. Kemudian isi
dari variabel A yang baru dan variabel X ditampilkan
di layar.

5.Operasi New dan Dispose


PROGRAM NEWDIS;
USES CRT;
VAR A:^STRING;

BEGIN
CLRSCR;
NEW(A);
A^:='ANDA BISA LIHAT INI .....';
WRITELN('LAKUKAN DISPOSE A');
DISPOSE(A);
WRITE(A^);
READLN;
END.
IKHTISAR MATERI KULIAH ALGORITMA DAN STRUKTUR DATA II

Perintah New berfungsi untuk mendefinisikan pointer


baru. Sedangkan perintah dispose berfungsi untuk menghapus
pointer.

CONTOH PROGRAM POINTER :


Program ContohPointer;
Uses Crt ;
Type
Petunjuk = ^RecNama ;
RecNama = Record
Nama : String[25] ;
Nilai: byte;
End ;
Var
DataMahasiswa : Petunjuk ;

Begin
clrscr;
New(DataMahasiswa) ;
Write('Nama Mahasiswa : ');
ReadLn(DataMahasiswa^.Nama) ;
write('Nilai Mahasiswa : ');
Readln(DataMahasiswa^.Nilai);
Clrscr;
Writeln('DATA YANG TELAH DIINPUTKAN ADALAH = ');
WriteLn(' NAMA MAHASISWA = ',DataMahasiswa^.Nama);
WriteLn(' NILAI MAHASISWA = ',DataMahasiswa^.Nilai);
readln;
End.

Keterangan :

Definisi pointer baru dengan cara type dan nama pointer adalah petunjuk petunjuk tipe
datanya pointer dengan nama ^RecNama. Record terdiri dari 2 field yaitu nama dengan tipe
data string dan nilai dengan tipe data byte.

Proses pendefinisian pointer baru dengan nama DataMahasiswa. Proses Input Data sesuai
dengan inputan user untuk nama mahasiswa dan Nilai mahasiswa

Kode untuk menampilkan data yang telah diinputkan oleh user

You might also like