![Page 1: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/1.jpg)
POINTER
Altien Jonathan Rindengan, S.Si, M.Kom
![Page 2: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/2.jpg)
Pendahuluan
Variables (Pascal)
Simple (atomic) Aggregate (composite)
integer char boolean real Homogenous
(arrays)
Heterogeneous
(records)
Data
Tipe Variabel
![Page 3: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/3.jpg)
Variables (Pascal)
Simple (atomic) Aggregate (composite)
integer char boolean real Homogenous
(arrays)
Heterogeneous
(records)
Data Addresses
(pointers)
Pendahuluan …
![Page 4: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/4.jpg)
Pendahuluan …
Pointer merupakan suatu tipe data
dalam Pascal yang berfungsi untuk
menunjuk dan menyimpan alamat
memori (bukan data!).
Tipe pointer adalah data yang berisi
suatu alamat yang menunjuk ke lokasi
tertentu.
Bila pointer berisi alamat dirinya
sendiri maka pointer tidak menunjuk
ke manapun disebut nil.
![Page 5: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/5.jpg)
POINTER berisi alamat dari variabel
yang mempunyai nilai tertentu.
Pengalokasian POINTER bersifat
dinamis, dapat dibangun/dibentuk
atau dihapus selama program berjalan
(runtime)
Pendahuluan …
![Page 6: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/6.jpg)
Pendahuluan …
![Page 7: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/7.jpg)
Dibandingkan variabel bertipe array, suatu
tipedata yang bersifat statis (ukuran dan urutannya
sudah pasti).
Selain itu ruang memori yang dipakai olehnya tidak
dapat dihapus bila variabel bertipe array tersebut
sudah tidak digunakan lagi pada saat program
dijalankan.
Pendahuluan …
![Page 8: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/8.jpg)
Untuk memecahkan masalah tersebut, kita dapat
menggunakan variabel pointer.
Tipe data pointer bersifat dinamis, variabel akan
dialokasikan hanya pada saat dibutuhkan dan
sesudah tidak dibutuhkan dapat dialokasikan
kembali.
Pendahuluan …
![Page 9: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/9.jpg)
Array vs Pointer
Pendahuluan …
![Page 10: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/10.jpg)
Deklarasi pointer
Bentuk Umum :
Untuk pointer bertipe:
<nama_var> : ^<tipe_data>;
Untuk pointer tidak bertipe:
<nama_var> : pointer;
Penulisan “ ^ “ di depan nama simpul harus ditulis
sebagai penunjuk bahwa pengenal adalah suatu tipe
data “pointer”
![Page 11: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/11.jpg)
Deklarasi pointer ….
Tipe data simpul yang dinyatakan bisa
sembarang tipe data : char, integer, atau
real.
Contoh :
Type Angka = ^integer;
Jadi Angka ,menunjukkan tipe data pointer.
Dalam hal ini Pointer akan menunjukkan ke suatu
data yang bertipe Integer.
![Page 12: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/12.jpg)
Jenis Pointer
Dalam Pascal, pointer dapat diisi dengan nilai yang
berasal dari:
1. NIL
2. Fungsi Ptr
3. Operator @
4. Prosedur New dan GetMem
5. Pointer yang lain
![Page 13: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/13.jpg)
Jenis pointer ….
Reserved word NIL
NIL merupakan reserved word dalam Pascal, di
mana pointer yang bernilai NIL dianggap tidak
menunjuk alamat memori manapun.
NIL biasa digambarkan dengan lambang ground.
![Page 14: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/14.jpg)
Jenis pointer ….
Fungsi Ptr
Sintaks:
Function Ptr(Seg, Ofs : word) : pointer;
dengan Seg : segmen memori.
Ofs : offset memori.
Fungsi Ptr mengembalikan pointer dari segmen dan
offset yang dimasukkan.
![Page 15: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/15.jpg)
Jenis pointer ….
Operator @
Sintaks:
<nama_var>:=@<variabel_yang_alamatnya_diambil>;
Operator ini digunakan untuk mengambil alamat
variabel yang akan ditunjuk.
![Page 16: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/16.jpg)
Jenis pointer ….
Prosedur New dan GetMem
Sintaks:
New(var P : pointer);
GetMem(var P : pointer, size : word);
dengan P : pointer yang akan diisi.
Size : ukuran yang dipesan.
Prosedur New digunakan untuk memesan memori
untuk pointer bertipe, sedangkan prosedur GetMem
untuk pointer tidak bertipe
![Page 17: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/17.jpg)
Jenis pointer ….
Kedua prosedur ini akan membentuk suatu variabel
dinamik yang diletakkan dalam Heap.
Heap adalah memori-memori di komputer yang
belum dialokasikan, yaitu memori yang tidak
digunakan oleh DOS, oleh program-program
resident, oleh program Pascal, internal stack yang
digunakan oleh Pascal dan variabel-variabel di
data segmen.
![Page 18: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/18.jpg)
Contoh program
program pointer_1;
uses crt;
var p :^integer;
n : integer;
begin
clrscr;
n:=12;
writeln('Nilai n adalah : ',n);
p:=@n;
writeln('Nilai p adalah : ',p^);
p^:=100;
writeln('Nilai p yg baru: ',p^);
writeln('Nilai n yg baru: ',n);
readln;
end.
Contoh 1
![Page 19: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/19.jpg)
Contoh program ….
Penjelasan :
Pada contoh program pointer_01 ini, pertama-tama
dideklarasikan variabel p sebagai pointer yang
bertipe integer.
Dibuat sebuah variabel lagi yang diberi nama nilai
dan bertipe integer.
![Page 20: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/20.jpg)
Contoh program ….
Variabel nilai diisi dengan nilai 12.
Kemudian variabel p menunjuk alamat dari variabelnilai dengan operator @, sehingga variabel p berisinilai 12, dan ditampilkan outputnya di layar.
Kemudian variabel p diberi nilai 100, dan secaraotomatis variabel nilai juga bernilai 100 karena sudahditunjuk oleh variabel p.
Kemudian isi dari variabel p yang baru dan variabel nilai ditampilkan di layar.
![Page 21: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/21.jpg)
program pointer_02;
uses wincrt;
var p,q,r,s : ^string;
nilai : string;
begin
clrscr;
nilai:='ini string nilai!!!';
p:=@nilai;
new(q);
new(s);
q^:='ini isi pointer q!!!';
r:=q;
s^:=q^;
Contoh 2
Contoh program ….
![Page 22: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/22.jpg)
writeln('alamat pointer p = ',seg(p^):4,':',ofs(p^):4,';
isi pointer p = ',p^);
writeln('alamat pointer q = ',seg(q^):4,':',ofs(q^):4,';
isi pointer q = ',q^);
writeln('alamat pointer r = ',seg(r^):4,':',ofs(r^):4,';
isi pointer r = ',r^);
writeln('alamat pointer s = ',seg(s^):4,':',ofs(s^):4,';
isi pointer s = ',s^);
readln;
end.
Contoh program ….
![Page 23: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/23.jpg)
Outputnya :
alamat pointer p = 4446: 98; isi pointer p = ini string nilai!!!
alamat pointer q = 5559: 0; isi pointer q = ini isi pointer q!!!
alamat pointer r = 5559: 0; isi pointer r = ini isi pointer q!!!
alamat pointer s = 0: 0; isi pointer s = ini isi pointer q!!!
Contoh program ….
![Page 24: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/24.jpg)
Penjelasan:
Pada program ini dibuat 4 variabel pointer yang
bertipe string, yaitu p, q, r, s. Dan sebuah
variabel dengan nama nilai yang bertipe juga
string (bukan pointer).
Pertama-tama variabel nilai diisi dengan nilai
‘ini string nilai!!!’.
Kemudian variabel p (pointer) menunjuk alamat dari
variabel nilai dengan operator @, sehingga
variabel p juga berisi ‘ini string nilai!!!’.
Contoh program ….
![Page 25: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/25.jpg)
Kemudian dipesan tempat pada heap dengan
prosedur New untuk variabel q.
Kemudian variabel q diisi ‘ini isi pointer
q!!!’.
Setelah itu variabel r menunjuk alamat dari variabel
q, sehingga alamat maupun isinya sama.
Kemudian variabel s^ diisi dengan nilai dari variabel
q^, tapi dalam hal ini hanya nilainya saja, sedangkan
alamatnya tidak.
Contoh program ….
![Page 26: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/26.jpg)
Deklarasi dalam Record
Bentuk umum:
Type
<namapointer> = <^namarecord>;
<namarecord> = record
<item1>:<tipedata1>;
<item2>:<tipedata2>;
…
<itemN>:<tipedataN>;
end;
Var
<namavar>:<namapointer>;
![Page 27: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/27.jpg)
program pointer_record;
uses crt;
type p_buruh =^buruh;
buruh = record
nama : string[10];
posisi : string[20];
gaji : longint;
end;
var p : p_buruh;
begin
clrscr;
new(p);
p^.nama:='Clark';
p^.posisi:='Accounting';
p^.gaji:=3500000;
writeln('Nama : ',p^.nama);
writeln('Posisi : ',p^.posisi);
writeln('Gaji : ',p^.gaji);
readln;
end.
![Page 28: Algoritma pengurutan (sorting algorithm) filePointer merupakan suatu tipe data dalam Pascal yang berfungsi untuk menunjuk dan menyimpan alamat memori ... oleh program Pascal, internal](https://reader030.vdokumen.com/reader030/viewer/2022012307/5ca5388e88c9938b538bf172/html5/thumbnails/28.jpg)