Banyaknya anggota
Banyaknya elemen array ditentukan di awal &
jumlahnya tetap
Elemen linked list dibuat di memori ketika
dibutuhkan (ingat Alokasi memory dinamis).
Jumlahnya dinamis, dapat bertambah dan
berkurang sesuai keperluan
Cara mengakses elemen
Elemen array diakses lewat indeks
Untuk mengakses elemen linked list, harus dilakukan
penelusuran elemen list
Array vs Linked List
header
1 a[0]
13
2 a[1]
3 a[2]
address 13 address 18 address 24
1 18 2 24 3
value value next value next
Pointer ke sel berikutnya
(next)
(NULL)
int a[3];
int n;
START
Struktur Pohon
LINKED LIST LAINNYA
List dengan hirarki
START START
ANAK ANAK
ORTU
A 9 B 7 C 3 D E 10 F
11
Penelusuran Linked List
• Penelusuran linked list (daftar berkait) berarti mengunjungi
simpul demi simpul dalam list sampai seluruh simpul
terkunjungi.
Algoritma:
begin
ptr START
while ptr <> 0 do
Proses INFO(ptr)
ptr LINK(ptr)
end while
end
Pencarian dalam Linked List
• Pencarian dalam list berarti menelusuri list dan berhenti saat
elemen yang dicari ditemukan atau sampai pada akhir list.
Berikut adalah algoritma pencarian pada list yang tidak terurut.
Algoritma:
begin
ptr START
while ptr<>0 and ITEMCARI<>INFO(ptr) do
ptr LINK(ptr)
end while
if ITEMCARI = INFO(ptr) then
Proses INFO(ptr)
else
Tidak ditemukan
endif
end
Contoh Single Linked List
Penerapan List
• 1. List
• a. Dalam kehidupan sehari – hari :
• Daftar presensi kelas dimana terdapat list dari
siswa yang berurut sesuai NIM. Selain itu juga
ada Daftar menu makanan pada restoran yang
menyajikan menu urut dari harga terendah
hingga termahal.Daftar menu makanan
• b. Dalam lingkup informatika.
• Penyajian data list lagu dalam pembuatan
aplikasi pemutar musik
• Algortima penelusuran yang baik?
Multi List dalam Satu Array
• Beberapa list dapat memanfaatkan array yang
sama.
• Yang perlu dijaga adalah START-nya tidak
mulai dari lokasi yang sama; dan
• LINK ke lokasi berikutnya tidak menunjuk ke
lokasi dalam list lain.
TEST LINK
3 List dalam 1 Array 1 16
2 74 14
3 1
Kimia 11 4 82 0
5 84 12
6 78 0
Matematika 5 7 74 8
8 100 13
9 76 10
10 56 0
Fisika 9 11 88 2
12 62 7
13 74 6
14 93 4
15 0
16 15
Free Storage List
• Free storage list berarti pengelolaan daftar
lokasi memori yang tidak terpakai.
• Lokasi memori yang tidak dipakai
dimungkinkan karena adanya elemen yang
dihapus/keluar dari list.
TEST LINK
1 16
2 74 14
3 1
Algoritma 11 4 82 0
5 84 12
6 78 0
Geometri 5 7 74 8
8 100 13
9 10
10 3
Kosong 9 11 88 2
12 62 7
Lokasi yang tidak 13 74 6
digunakan oleh list lain 14 93 4
digabungkan dalam List 15 0
Kosong/Sampah 16 15
INSERTION
(Penyisipan Simpul)
• Penyisipan simpul berarti menambah suatu
simpul/elemen baru ke dalam sebuah list.
Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Nama G D A C B F E
Usia 21 24 13 19 15 26 25
Link 11 9 3 7 0 10
4 G 3
A 9 B 7 C 1 D E 10 F
11
Kasus Penyisipan Simpul
• INSERT FIRST
Yaitu kasus penyisipan simpul baru pada awal list.
Simpul baru menjadi ujung pertama list.
• INSERT AFTER
Yaitu kasus penyisipan simpul baru setelah
sebuah simpul tertentu.
• INSERT SORT
Yaitu kasus penyisipan simpul baru ke dalam list
sedemikian sehingga simpul-simpul dalam list
tetap dalam keadaan terurut.
Implementasi Linked-List dengan Array
• Double link list
Di sebuah RS terdapat 14 kamar. Dokter setiap hari akan
memeriksa mulai dari pasien yg termuda.
START = 4
Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Nama D A C B F E
Usia 24 13 19 15 26 25
Next 11 9 3 7 0 10
Prev 7 0 9 4 11 3
A 9 B 7 C 3 D E 10 F
11
Implementasi Linked-List dengan Array
• Double link list sirkuler
START = 4
Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Nama D A C B E
Usia 24 13 19 15 25
Next 11 9 3 7 4
Prev 7 11 9 4 3
START
11 A 9 4 B 7 9 C 3 7 D 11 3 E 4
Implementasi Linked-List dengan Array
• Struktur Pohon (Tree) INFO KIRI KANAN
START START 1 E 0 0
3 B 0 0
A
4
B C 5 A 3 6
6 C 8 1
7
D E
8 D 0 0
9
Struktur Pohon
Implementasi Linked-List dengan Array
• Struktur Sisir (??) INFO OR AK SR
START START 1 E 0 0 7
3 B 5 8 6
A
ANAK 4
ORTU
5 A 0 3 0
B C
ANAK 6 C 0 0 0
ORTU
7 F 0 0 0
D E F
8 D 3 0 1
9
Free Storage List
• Free storage list berarti pengelolaan daftar
lokasi memori yang tidak terpakai.
• Lokasi memori yang tidak dipakai
dimungkinkan karena adanya elemen yang
dihapus/keluar dari list.
TEST LINK
1 G 5
2 4
3 B 10
Terisi 3 4 11
5 H 7
6 E 12
Kosong 8 7 K 0
8 13
9 D 6
10 C 9
11 0
Lokasi yang tidak 12 F 1
digunakan oleh list lain 13 14
digabungkan dalam List 14 15
15 16
Kosong/Sampah
16 2
Proses-Proses terhadap
Linked List
• TRAVERSING (PENELUSURAN)
• INSERTION (PENYISIPAN)
• REMOVE (PENGHAPUSAN)
• SEARCHING (PENCARIAN)
TRAVERSING
Penelusuran terhadap Linked List
• Penelusuran linked list (daftar berkait) berarti mengunjungi
simpul demi simpul dalam list sampai seluruh simpul
terkunjungi.
Algoritma:
begin
ptr START
while ptr <> 0 do
Proses INFO(ptr)
ptr LINK(ptr)
end while
end
SEARCHING
Pencarian dalam Linked List
• Pencarian dalam list berarti menelusuri list dan berhenti saat
elemen yang dicari ditemukan atau sampai pada akhir list.
Berikut adalah algoritma pencarian pada list yang tidak terurut.
Algoritma:
begin
ptr START
while ptr<>0 and ITEMCARI<>INFO(ptr) do
ptr LINK(ptr)
end while
if ITEMCARI = INFO(ptr) then
Proses INFO(ptr)
else
Tidak ditemukan
endif
end
INSERTION
(Penyisipan Simpul)
• Penyisipan simpul berarti menambah suatu
simpul/elemen baru ke dalam sebuah list.
Kamar 1 2 3 4 5 6 7 8 9 10 11 12 13 14
Nama G D A C B F E
Usia 21 24 13 19 15 26 25
Link 11 9 3 7 0 10
4 G 3
A 9 B 7 C 1 D E 10 F
11
PRIORITY QUEUE with One-Way List
XXX 2
START
GGG 5 X
INFO(ptrY) = ITEM
LINK(ptrY) = LINK(ptrX)
LINK(X) = ptrY