Ya
Keterangan “Lulus” Nilai >= 60
Tidak
Tulis
Selesai Nama,
Keterangan PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
Notasi Algoritma
3. Pseudo Code
Ada 3 bagian: Judul, Deklarasi, Deskripsi.
Algoritma kelulusan
Deklarasi
nama, keterangan : string
nilai : integer
Deskripsi
read (nama, nilai);
if nilai >= 60 then
keterangan := “lulus”;
else
keterangan := “tidak lulus”;
write(nama, keterangan);
• Contoh :
• 5–2+1=?
• 5–2*3=?
• (6 + 3 * 2) / 6 – 2 * 3 = ?
Operator Operasi
= Sama Dengan
<> Tidak Sama Dengan
> Lebih besar dari
>= Lebih Besar dari Sama Dengan
< Lebih Kecil dari
<= Lebih Kecil dari Sama Dengan
IF <kondisi> THEN
Begin
…………
…………
End.
Program BilPositif;
Uses WINCRT;
Var
Bil : Integer;
Begin
Write(‘Masukkan sebuah bilangan : ‘);
Readln(Bil);
IF Bil>0 THEN
Writeln (‘Bilangan Positif’);
Readln;
End.
Hasil eksekusi :
Masukkan sebuah bilangan : 3
Bilangan Positif
IF <kondisi> THEN
Begin
…………
…………
End;
ELSE
Begin
…………
…………
End;
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
Pernyataan If (If Statement)
Contoh :
Program BilPositif;
Uses WINCRT;
Var
Bil : Integer;
Begin
Write(‘Masukkan sebuah bilangan : ’);
Readln(Bil);
IF Bil>0 THEN
Writeln (‘Bilangan Positif’);
ELSE
Writeln (‘Bilangan Negatif’);
Readln;
End.
Hasil eksekusi :
Masukkan sebuah bilangan : -13
Bilangan Negatif
Program Deret;
Uses WINCRT;
Var
Bil : Integer;
Begin
Write(‘Masukkan sebuah bilangan : ’);
Readln(Bil);
IF Bil Mod 2 = 1 THEN
Writeln (‘Bilangan Ganjil’);
ELSE IF Bil Mod 2 = 0 THEN
Writeln (‘Bilangan Genap’);
Readln;
End.
Hasil eksekusi :
Masukkan sebuah bilangan : 13
Bilangan Ganjil
CASE ungkapan OF
Daftar label 1 : Statement 1;
Daftar label 2 : Statement 2;
Daftar label 3 : Statement 3;
…………………………………
End;
Uses WINCRT;
Var
alas, tinggi, jejari, luas: Real;
pilih: Integer;
Begin
Writeln('1. Segitiga 2. Lingkaran');
Readln(pilih);
CASE pilih OF
1: Begin
Readln(alas, tinggi);
luas := 1 / 2 * alas * tinggi;
Writeln('Luas Segitiga : ', luas);
End;
2: Begin
Readln(jejari);
luas := pi * Sqr(jejari);
Writeln('Luas Lingkarang : ', luas);
end;
End;
Readln;
End.
Ket.
Nilai awal < Nilai akhir
• Perulangan Negatif
FOR variable control := nilai awal To Nilai akhir DO Statemen
Ket.
Nilai awal > Nilai akhir
Var
I, J : integer ;
Begin
For I : = 1 to 5 do
Begin
For J : = 1 to 3 do
Write ( I : 8, J : 3);
Writeln ;
End ;
End.
Bentuk umum :
WHILE ungkapan logika DO statemen
1
12
123
1234
12345
• 1 2 4 7 11 16 22 …….
• 1 -2 3 -4 5 -6 7 -8 ……
•1 2 3 4 5
6 7 8 9 10
11 12 13 14 15
16 17 18 19 20
• Buatlah program menghitung Faktor Persekutuan
Terbesar (FPB) dari dua bilangan yang diinputkan!
Bentuk penulisan :
PROGRAM judul-program;
PROCEDURE judul-prosedur;
BEGIN
...
END;
BEGIN
....
END.
Hasil :
-------------------------------
BELAJAR PROSEDUR
-------------------------------
Hasil :
NILAI X= 3
NILAI Y= 4
Nilai parameter Z sebelum dan sesudah prosedur
sama
NILAI Z= 5 Nilai di Prosedur
NILAI A= 3 NILAI B= 4 NILAI C= 7
Nilai setelah Prosedur
NILAI X= 3 NILAI Y= 4 NILAI Z= 5
Contoh :
PROGRAM parameter_reference;
USES CRT;
PROCEDURE hitung(VAR A,B,C : INTEGER);
BEGIN
C:=A+B;
WRITELN('Nilai di Prosedur');
WRITELN('NILAI A= ',A,' NILAI B= ',B,' NILAI C= ',C);
END;
Hasil :
NILAI X= 3
NILAI Y= 4
NILAI Z= 0
Nilai parameter Z sebelum dan sesudah prosedur berbeda
Nilai di Prosedur NILAI A= 3 NILAI B= 4 NILAI C= 7
Nilai setelah Prosedur
NILAI X= 3 NILAI Y= 4 NILAI Z= 7
Contoh :
PROGRAM panggil_prosedur;
USES CRT;
PROCEDURE pro1(x1 : INTEGER);
BEGIN
x1:=x1*x1;
WRITELN('Nilai X di Prosedur1 = ',x1);
END;
Hasil :
Masukkan nilai X= 12
Nilai X di Prosedur2 = 12
Nilai X di Prosedur1 = 144
Contoh :
PROGRAM nested_prosedur;
USES CRT;
PROCEDURE kesatu;
PROCEDURE kedua;
BEGIN
WRITELN('Prosedur KEDUA ini ada di dalam prosedur KESATU');
END;
PROCEDURE ketiga;
BEGIN
WRITELN('Prosedur KETIGA ini juga ada di dalam prosedur
KESATU');
END;
Hasil :
Ini program di modul utama akan memanggil Prosedur KESATU
Ini Prosedur KESATU akan memanggil Prosedur KEDUA & KETIGA
Prosedur KEDUA ini ada di dalam prosedur KESATU
Prosedur KETIGA ini juga ada di dalam prosedur KESATU
Contoh :
PROGRAM rekursi_prosedur;
USES CRT;
VAR
I : INTEGER;
PROCEDURE rekursi;
BEGIN
I:=I+1;
WRITELN('PASCAL');
IF I < 10 THEN rekursi;
END;
Hasil :
PASCAL
PASCAL
PASCAL
PASCAL
PASCAL
PASCAL
PASCAL
PASCAL
PASCAL
PASCAL
Program ini akan terdiri dari 4 buah prosedur : pokok, lembur, makan, jasa
--------------------------------------------------------------------------
• Algoritma divide-and-conquer
• array A[p..r] is dipartisi menjadi dua subarray yang tidak empty
A[p..q] and A[q+1..r]
• Invariant: Semua elemen pada A[p..q] lebih kecil dari semua
elemen pada A[q+1..r]
• Subarray diurutkan secara rekursif dengan memanggil quicksort
• Partition(A, p, r):
• Pilih elemen sebagai “pivot” (which?)
• Dua bagian A[p..i] and A[j..r]
• Semua element pada A[p..i] <= pivot
• Semua element pada A[j..r] >= pivot
• Increment i sampai A[i] >= pivot
• Decrement j sampai A[j] <= pivot
• Swap A[i] dan A[j]
• Repeat Until i >= j
• Return j
12 35 9 11 3 17 23 15 31 20
QuickSort(0,2) QuickSort(3,9)
q=0 q=8
QS(6,8)
QS(3,5)
q=3 q=6
QS(3,3) QS(4,5) QS(7,8)
QS(6,6)
12 35 9 11 3 17 23 15 31 20
q=2
QuickSort(0,2) QuickSort(3,9)
3 11 9 35 12 17 23 15 31 20
QuickSort(0,0) QuickSort(1,2)
3 9 11 35 12 17 23 15 31 20
12 35 9 11 3 17 23 15 31 20
QuickSort(0,9)
• X = PIVOT merupakan indeks ke –0
• PIVOT = 12
• terdapat variabel i dan j , i=0 , j=9
• variabel i untuk mencari bilangan yang lebih besar
dari PIVOT. Cara kerjanya : selama Data[i] < PIVOT
maka nilai i ditambah.
• variabel j untuk mencari bilangan yang lebih kecil dari
PIVOT. Cara kerjanya : selama Data[j] > PIVOT maka
nilai j dikurangi
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
q = Partition(0,9)
12 35 9 11 3 17 23 15 31 20
PIVOT = 12
i=0j=4
SWAP
i < j maka SWAP
3 35 9 11 12 17 23 15 31 20
PIVOT = 12
i=1j=3
SWAP
i < j maka SWAP
3 11 9 35 12 17 23 15 31 20
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
PIVOT = 12
i=3j=2
i < j (False) NO SWAP
Return j = 2
Q = Partisi = 2
QuickSort(0,9)
QuickSort(0,2) QuickSort(3,9)
3 11 9 35 12 17 23 15 31 20
PIVOT = 3
i=0j=0
i < j (False) NO SWAP
Return j = 0
Q = Partisi = 0
QuickSort(0,0) QuickSort(1,2)
PIVOT = 11
i=1j=2
i<j SWAP
3 9 11 35 12 17 23 15 31 20
PIVOT = 11
i=2j=1
i<j NO SWAP
Return j = 1
Q = Partisi = 1 PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
QuickSort(1,2)
QuickSort(1,1) QuickSort(2,2)
QuickSort(3,9)
3 9 11 35 12 17 23 15 31 20
PIVOT = 35
i=3j=9
i<j SWAP
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
3 9 11 20 12 17 23 15 31 35
PIVOT = 35
i=9j=8
i<j NO SWAP
Return j = 8
Q = Partisi = 8
QuickSort(3,9)
QuickSort(3,8) QuickSort(9,9)
QuickSort(3,8)
PIVOT = 20
i=3j=7
i<j SWAP
3 9 11 15 12 17 23 20 31 35
PIVOT = 20
i=6j=5
i<j NO SWAP
Return j = 5
PT. Elektronika FT UNY
Q = Partisi = 5 Muh. Izzuddin Mahali, M.Cs.
QuickSort(3,8)
QuickSort(3,5) QuickSort(6,8)
PIVOT = 15
i=3j=4
i<j SWAP
3 9 11 12 15 17 23 20 31 35
QS(3,5)
q=3
QS(3,3) QS(4,5)
3 9 11 12 15 17 23 20 31 35
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
QS(4,5)
q=4 QS(4,5)
PIVOT = 15
i=4j=4
QS(4,4) QS(5,5)
i<j NO SWAP
Return j = 4
Q = Partisi = 4
3 9 11 12 15 17 23 20 31 35
PIVOT = 23
QuickSort(6,8) i=6j=7
i<j SWAP
3 9 11 12 15 17 20 23 31 35
PIVOT = 23
QS(6,8)
i=7j=6
i<j NO SWAP q=6
Return j = 6
QS(6,6) QS(7,8)
Q = Partisi = 6
3 9 11 12 15 17 20 23 31 35
QS(7,8)
QS(7,8)
PIVOT = 23
i=7j=7
QS(7,7) QS(8,8)
i<j NO SWAP
Return j = 7
PT. Elektronika FT UNY
Q = Partisi = 7 Muh. Izzuddin Mahali, M.Cs.
Analisa Quicksort
too_big_index too_small_index
in-place
insertion-sort O(n2) lambat ( baik untuk input kecil)
in-place, randomized
O(n log2 n)
quick-sort paling cepat (Bagus untuk data
expected besar)
sequential data access
merge-sort O(n log2 n) cepat (Bagus untuk data
besar)
Sorting Algorithms – Merge Sort
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14 6 67 33 42
98 23 45 14
98 23
98 23 45 14 6 67 33 42
98 23 45 14
98 23
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23
23
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23
23 98
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14 45
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14 45
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14 45
14
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14 45
14 23
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14 45
14 23 45
Merge
98 23 45 14 6 67 33 42
98 23 45 14
98 23 45 14
23 98 14 45
14 23 45 98
Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14
23 98 14 45
14 23 45 98
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67
23 98 14 45
14 23 45 98
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67
23 98 14 45
14 23 45 98 Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67
23 98 14 45 6
14 23 45 98 Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67
23 98 14 45 6 67
14 23 45 98 Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67
14 23 45 98
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67
14 23 45 98 Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33
14 23 45 98 Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98
Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6
Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33
Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42
Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
Merge
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23 33
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23 33 42
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23 33 42 45
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23 33 42 45 67
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23 33 42 45 67 98
Merge
PT. Elektronika FT UNY
Muh. Izzuddin Mahali, M.Cs.
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
98 23 45 14 6 67 33 42
23 98 14 45 6 67 33 42
14 23 45 98 6 33 42 67
6 14 23 33 42 45 67 98
6 14 23 33 42 45 67 98
Terdapat 2
rekursif merge
T(n/2) sort,
kompleksitas
T(n/2) waktunya T(n/2)
T ( n) 2 k T ( n / 2 k ) k O ( n) Setelah level ke - k
Waktu Kompleksitas Mergesort
T (n) 2k T (n / 2k ) k O(n)
0 1 2 3 4 5 6 7
indeks
8 10 6 -2 11 7 1 100 value
indeks
0 1 2 3 4 5 6
value
3 12 9 -4 21 6
• Terdapat 6 buah data dalam array (dari indeks 0 s/d 5) dan terdapat 1
indeks array tambahan (indeks ke 6) yang belum berisi data (disebut
sentinel)
• Array pada indeks ke 6 berguna untuk menjaga agar indeks data
berada pada indeks 0 s/d 5 saja. Bila pencarian data sudah mencapai
array indeks yang ke-6 maka berarti data TIDAK ADA, sedangkan jika
pencarian tidak mencapai indeks ke-6, maka data ADA.
kunci data[low]
Posisi x(high low) low
data[high ] data[low]
• Kunci Pencarian ? 60
• Low ? 0
• High ? 7
• Posisi = (60 – 25) / (96 – 25) * (7 – 0) + 0 = [3]
• Kunci[3] < kunci pencarian, maka teruskan
• Low = 3 + 1 = 4
• High = 7
• Ternyata Kunci[4] adalah 63 yang lebih besar daripada 60.
• Berarti tidak ada kunci 60.
Sintaks:
<nama_var>:=@<variabel_yang_alamatnya_diambil>;
• Dalam suatu linear list kita dapat melakukan operasi penyisipan atau
penghapusan atas elemen-elemennya pada sembarang posisi.
• Misalkan ada 1500 item yang merupakan elemen dari suatu linear list.
• Jika elemen ke-56 akan kita keluarkan, maka elemen ke-1 s/d elemen ke-55 tidak
akan berubah posisinya pada linear list tersebut. Tetapi elemen ke-57 akan
menjadi elemen ke-56, elemen ke-58 akan menjadi elemen ke-57 dst.
Selanjutnya, jika kita sisipkan satu elemen pada posisi setelah elemen ke-41,
maka elemen ke-42 s/d elemen ke-1500 akan berubah posisinya.
• Untuk menyatakan keadaan diatas diperlukan suatu konsep yang berbeda
dengan konsep sekuensial sebelumnya.
• Linked list merupakan suatu cara non-sekuensial yang digunakan untuk
merepresentasikan suatu data.
DEFINISI
Linked list (one way list) adalah suatu kumpulan elemen data (yang
disebut sebagai node) dimana urutannya ditentukan oleh suatu pointer.
Setiap elemen (node) dari suatu linked list terdiri atas dua bagian, yaitu :
- INFO , berisi informasi tentang elemen data yang bersangkutan.
- NEXT (link field/next pointer field), berisi alamat dari elemen
node) selanjutnya yang dituju.
Berikut ini sebuah contoh linked list yang terdiri atas 4 node :
DEFINISI ( 1 )
null
Pada node ke-4 field NEXT-nya berisi NULL, artinya node ke-4 tsb. adalah node terakhir
DEFINISI (2)
Node-node dalam linked list tidak harus selalu digambarkan paralel seperti
pada gambar diatas. Linked list pada contoh diatas dapat pula digambarkan
seperti berikut ini :
info next
info next
null
info next
info next
DEFINISI (3)
CATATAN :
- Ada dua hal yang menjadi kerugian dengan representasi
suatu data dengan linked list ini,
yaitu :
1. Diperlukan ruang tambahan untuk menyatakan/tempat
field pointer.
2. Diperlukan waktu yang lebih banyak untuk mencari
suatu node dalam linked list.
- Sedangkan keuntungannya adalah :
1. Jenis data yang berbeda dapat di-link.
2. Operasi REMOVE atau INSERT hanya dilakukan
dengan mengubah pointer-nya saja.
OPERASI DASAR PADA LINKED
LIST
Ada beberapa aturan yang didefinisikan pada operasi didalam linked list, yaitu :
- Jika P adalah suatu variabel pointer, maka nilainya adalah alamat atau lokasi dari
variabel lain yang dituju.
- Operasi yang didefinisikan pada suatu variabel pointer adalah :
1. Test apakah sama dengan NULL.
2. Test untuk kesamaan dengan variabel pointer lain.
3. Menetapkan sama dengan NULL.
4. Menetapkan menuju ke node lain.
info next
P
D null
node ke-4
NODE(P) = node yang ditunjuk oleh P yaitu node pertama.
INFO(P) = A
NEXT(P) = node ke-dua
INFO(NEXT(NEXT(P))) = C
MENGHAPUS SUATU NODE DARI
LINKED LIST (REMOVE)
• Untuk menghapus node dalam linked list digunakan procedure FREENODE.
• Jika Q adalah suatu variabel pointer, maka FREENODE(Q) akan
menyebabkan node yang ditunjuk oleh variabel pointer Q dihapus dari linked
list.
• Perhatikan linked list berikut :
info next info next info next
langkah ke-1 :
Q := Next(P)
P Q
info next
...
MENGHAPUS SUATU NODE DARI
LINKED LIST (REMOVE)
langkah ke-2 :
Next(P) := Next(Q)
info next
P Q
procedure Freenode(Q)
(a) Next(Q) := Avail Q
next
Avail
info next
Q
(b)Info(Q) := Null
MENYISIPKAN SUATU NODE KE DALAM LINKED
LIST
Getnode := Avail;
Avail
(c) Next(Getnode) : = Null;
end;
info next info next info next info next
Getnode Avail
...
null null
Logika Linked List pada Array
1 A 1 A 1 A 1 A
2 C 2 C 2 2
3 3 E 3 E 3 E
4 4 4 4 F
Jika menggunakan logika Linked
List
1 A 2 1 A 2 1 A 3
2 C 0 2 C 3 2 4
3 4 3 E 0 3 E 0
4 0 4 0 4 0
SELESAI