2. Pointer bisa diartikan sebagai sebuah
variabel, tetapi variabel yang bersifat
dinamis.
Dikatakan dinamis karena jenis variabel ini
dapat didealokasikan apabila tidak digunakan
lagi.
3. Variabel Biasa : menunjuk pada nilai yang
diberikan untuk selanjutnya diproses
Pointer : menunjuk ke alamat memori yang
digunakan untuk menampung data yang
akan diproses
4. Array itu bersifat statis, tidak dapat diubah
alokasinya saat program berjalan
Pointer bersifat dinamis dan dalam artian
kalau dibutuhkan baru digunakan kalau tidak
ya tidak digunakan.
6. Langsung
p^.nama := ‘Subono';
p^.posisi := 'Manager';
p^.gaji := 3000;
Membaca Masukan dari Keyboard
writeln('masukan nama :' );readln(p^.nama);
writeln('masukan posisi : '); readln(p^.posisi);
writeln('masukan gaji : '); readln(p^.gaji);
7. uses wincrt;
var
p : ^integer;
m,n : integer;
begin
m := 10;
m = 10
n := 15; n = 15
writeln('m = ',m,' , n = ',n);
writeln;
p := @m;{p menunjuk ke m}
p^ := 12;{samadengan m = 12}
p := @n;
m = 12
p^ := 20; n = 20
writeln('m = ',m,' , n = ',n);
end.
8. type
nama_pointer = ^nama_record
nama_record = record
datafield1 : typedata;
datafieldn : typedata;
end;
type
pointer = ^pekerja;
pekerja = record
nama : string[10];
posisi : string[10];
gaji : longint;
end;
9. Apabila pointer dibutuhkan, maka
dialokasikan
Syntax : New(nama_pointer)
Apabila pointer sudah tidak dibutuhkan,
maka dapat didealokasikan
Syntax : dispose(nama_pointer)
Dampaknya, pemakaian memory menjadi
lebih efisien
10. uses wincrt;
type
pointer = ^pekerja;
pekerja = record
nama : string[10];
posisi : string[10];
gaji : longint;
end;
var
p : pointer;
i : integer;
begin
new(p); {mengalokasikan memori}
writeln('masukan nama :' );readln(p^.nama);
writeln('masukan posisi : '); readln(p^.posisi);
writeln('masukan gaji : '); readln(p^.gaji);
writeln(p^.nama ,' ',p^.posisi,' ',p^.gaji);
dispose(p); {dealokasi memori}
end.
11. Linked List
Stack
Antrean
Tree
Graph