Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                

Pokok Bahasan: Pengantar Linked List Operasi Linked List Single Linked List Double Link List

Unduh sebagai pdf atau txt
Unduh sebagai pdf atau txt
Anda di halaman 1dari 41

POKOK BAHASAN

 Pengantar Linked List


 Operasi Linked List
 Single Linked List
 Double Link List
Pendahuluan

 Penyimpanan data di memori komputer tidak


semuanya disimpan secara sequential (alamat
memori yang berurutan) namun ada juga yang
bersifat acak (relative)
 Misalnya : sebuah data file yang terdiri dari banyak
record, belum tentu record pertama dan record
kedua memiliki alamat yang berurutan termasuk
nomor-nomor record lainnya
PENDAHULUAN (2)

 Nomor record harus berkaitan agar tidak ada


yang terlepas atau tidak ketemu saat dicari
(searching maupun retrieval)
 Contoh :
PENDAHULUAN (3)

 Gambar tersebut menunjukkan bahwa record


akan tampil sesuai urutan pada saat
dimasukkan ke komputer yaitu mulai dari record
pertama hingga record yang terakhir
 Karena antar record alamat memori tidak
berurut, maka dibutuhkan penunjuk alamat
(pointer)yang menghubungkan record satu
dengan record lainnya
PENDAHULUAN (4)

 Dari gambar tersebut menunjukkan ada link di


dalam file data. Proses inilah yang disebut dengan
linked list
 Linked list sering disebut dengan senarai berantai
Pendahuluan (5)

 Linked list saling terhubung dengan bantuan


variable pointer
 Masing-masing data dalam linked list disebut
dengan node (simpul) yang menempati alokasi
memori secara dinamis dan biasanya berupa
struct yang terdiri dari beberapa field
 Di bahasa java, linked list bisa berupa suatu class
ataupun record
Definisi

 Salah satu bentuk struktur data yang berisi


kumpulan data (node) yang tersusun secara
sekunsial, saling sambung menyambung, dinamis
dan terbatas
 Node yang disimpan secara acak di memori yang
saling terhubung
 Sekumpulan elemen bertipe sama, yang
mempunyai keterurutan tertentu dan setiap
elemennya saling berkait yang dihubungkan
melalui sebuah pointer
Array vs Linked List
Single Link List

 Setiap simpul (node) dari suatu linked list terdiri atas


dua bagian, yaitu :
1. INFO, berisi informasi tentang elemen data yang
bersangkutan (dapat berisi karakter maupun
sebuah record
2. NEXT (link field/next pointer field), berisi alamat
dari elemen (node) selanjutnya yang dituju
 Setiap simpul dapat digambarkan sebagai berikut :
Single Link List

Skema / bentuk linked list (single link list)


Single Link List

 Selain itu linked list juga terdiri dari 2 pointer, yaitu :


Pointer Start dan Pointer Avail
 Pointer Start : menunjuk alamat awal dari simpul
pertama yang berisi informasi
 Pointer Avail : menunjuk pada freestorage list
(simpul kosong) yang nantinya masih dapat
digunakan untuk ditempati data
Pemetaan Single Link List di
Memori
Address INFO NEXT

START 1

AVAIL 3

7
Contoh

 Pada sebuah tempat penginapan terdapat 12


kamar yang disewakan. Sembilan di antaranya
telah ditempati penyewa. Kita hendak membuat
list nama para penyewa tersebut secara alfabetik
menggunakan linked list
Jawab :

Penyewa Next
1 Karmila 7
2 10
3 Dina 11
Avail 2
4 Mikail 12
5 Amelia 3
6 0
Start 5
7 Lana 4
8 Gio 1
9 Saputra 0
10 6
11 Fina 8
12 Nilam 9
Latihan-1

 Berikut adalah contoh dua daftar undangan


dari dua pihak mempelai (Eviana dan Henry).
Dari daftar tersebut tentukan orang-orang yang
akan diundang oleh Eviana dan orang-orang
yang akan diundang oleh Henry.
NAMA LNK
1 ADI 8
EVIANA 2 TUTI 13
11 3 14
4 ARI 0
AVAIL
5 BENO 2
3
6 IMAM 1
7 ANA 4
8 ARDI 10

HENRY 9 0
10 RIMA 7
6
11 NINA 5
Latihan-1 12 9
13 RIVA 0
14 12
Latihan-2

 Siapa saja yang menjadi anggota kelompok


dari : EKO, BRAHMA, DITO, dan DIKA dalam
daftar berikut ini?.
NAMA LNK
AVAIL
1 ICHA 8
3 2 RINA 7
3 14
EKO 11
4 DINA 13
BRAHMA 5 5 EKA 12
6 TEDDY 10
DITO 9
7 PRITA 0
DIKA 6 8 JAKA 0
9 TRI 1
10 DWI 4
11 WULAN 2
12 ARBI 0
Latihan-2 13 KILA 0
14 0
Operasi pada Linked List

 Gambaran tentang operasi apa saja yang


terdapat pada linked list, dapat di konotasikan
sebagai suatu proses yang dilakukan terhadap
sebuah file data, seperti penambahan data,
penyisipan data, menghapus data dan
sebagainya
 Operasi pada linked list antara lain :
1. Penyisipan data
Operasi pada Linked List

Umumnya istilah penyisipan data dapat


dilakukan di awal maupun disembarang
posisi dari suatu linked list
2. Penghapusan data
Proses penghapusan data di dalam linked
list akan melibatkan aktivitas pemindahan
pointer
3. Pengurutan data
Dilakukan dengan mengubah nilai
pointernya tanpa saling bertukar posisi
Operasi Penyisipan Data

a. Penyisipan
di awal list, yg artinya akan disisipkan /
ditambah informasi baru pada simpul kosong.

Start A
X
1 3
Avail N
X
2

Note : gris : adlh skema sblm proses penyisipan


gris : adlh skema stelah proses penyisipan
Operasi Penyisipan Data

Keterangan skema :
Dari 7 buah simpul 4 simpul yg terisi dan 3 simpul yang
masih kosong, terjadi 3 perubahan yaitu :
1. Semula start menunjuk ke simpul A tapi setelah proses
penyisipan, start tidak lagi menujuk ke simpul tetapi
akan menunjuk avail
2. Avail semula menunjuk ke simpul N (simpul kosong 1) tp
setelah penyisipan avail akan menujuk ke link avail
(simpul kosong ke2)
3. Simpul N semula menunjuk ke simpul kosong ke 2,
setelah proses penyisipan simpul N akan menunjuk ke
Start.
Operasi Penyisipan Data

b. Penyisipan di tengah list yang artinya menambahkan simpul baru


diantara dua simpul
skemanya :
Start A B
X

2 3
Avail
X

1
Note : gris : adlh skema sblm di proses penyisipan
gris : adlh skema stelah proses penyisipan
Operasi Penyisipan Data

Keterangan skema :
Dari 7 buah simpul 4 simpul yg terisi dan 3 simpul yang
masih kosong akan disisipkan simpul baru (N) diantara
simpul A dan simpul B, maka 3 perubahan yang terjadi :
1. Avail semula menunjuk ke simpul kosong 1, tp
setelah penyisipan avail akan menunjuk ke link avail
(simpul kosong ke 2)
2. Semula simpul A menunjuk ke simpul B, tapi setelah
penyisipan simpul A menunjuk ke avail
3. Link avail semula menunjuk ke simpul kosong ke 2
tapi setelah penyisipan akan menunjuk ke simpul B.
Operasi Penyisipan Data

c. Penyisipan di akhir list yang artinya menambahkan simpul baru di


akhir list.
skemanya :
Start A
X
2
3
Avail N
X X

note : gris : adlh skema sblm di proses penyisipan


gris : adlh skema stelah proses penyisipan
Operasi Penyisipan Data

Keterangan skema :
Dari 7 buah simpul 4 simpul yg terisi dan 3 simpul yang masih
kosong akan disisipkan simpul baru diakhir list, maka 3
perubahan yang terjadi :
1. Avail semula menunjuk ke simpul kosong 1, tp setelah
penyisipan avail akan menunjuk ke link avail (simpul kosong
ke 2)
2. Semula simpul A merupakan akhir dari simpul tp setelah
penyisipan link simpul A menunjuk ke avail
3. Link avail semula menunjuk ke simpul kosong ke 2 tapi
setelah penyisipan merupakan simpul terakhir.
Operasi Penghapusan data

 Menghilangkan / menghapus simpul pada list


berkait ;
 Ditinjau dari posisi penghapusan, maka dibagi
menjadi 3 yaitu :
a.Penghapusan di awal list
b.Penghapusan ditengah list
c.Penghapusan di akhir list
Penghapusan di awal list

 Artinya menghapus dilakukan di awal list :

Start A B
X
1
2
3
Avail
X

Note : gris : adlh skema sblm di proses penghapusan


gris : adlh skema stelah proses penghapusan
Keterangan Skema

Dari 7 buah simpul 4 simpul yg terisi dan 3 simpul


yang masih kosong, terjadi 3 perubahan yaitu :
a) Avail semula menunjuk ke FSL yg 1 tp setelah
penghapusan avail akan menujuk ke simpul A
(Start)
b) Start semula menunjukkan simpul A tapi
setelah penghapusan start menunjuk ke link
start (simpul B)
c) Link start semula menunjuk ke simpul B tapi
setelah penghapusan menunjuk ke avail
Penghapusan diantara 2 simpul

 Penghapusan simpul N dilakukan antara simpul A dan simpul B

Start A N B
X

Avail
X

Penghapusan
Note : gris
diantara 2 simpul
: adlh skema sblm di proses penyisipan
gris : adlh skema stelah proses penyisipan
Keterangan Skema

 Dari 7 buah simpul 4 simpul yg terisi dan 3


simpul yang masih kosong, terjadi 3 perubahan
yaitu :
a. Pointer field A adalah, simpul terakhir
b. simpul N merupakan pointer Avail
c. Avail semula menunjuk ke FSL yg 1, setelah
penghapusan pointer avail sebelumnya
menjadi FSL yg 2.
Penghapusan di akhir list

 Artinya menghapus dilakukan diakhir list :

Start A N

Avail
X
B
Keterangan Skema

Dari 7 buah simpul 4 simpul yg terisi dan 3 simpul


yang masih kosong, terjadi 3 perubahan yaitu :
a. Next pointer field A menunjuk ke B
b. Avail menunjuk simpul N yang dihapus dan
masuk free storage list
c. Next pointer field N menunjuk ke simpul
pertama free storage list
Operasi Pengurutan Data

 Pada penanganan file data, sering dilakukan


suatu aktifitas mengrut data, misalkan
mengurutkan data dari kecil ke besar
(ascending)
 Aktifitas tidak serta merta dilakukan dengan
saling mengubah lokasi simpanan datanya
(saling bertukar posisi) tapi dilakukan dengan
mengubah nilai pointer
Operasi Pengurutan Data

1. Buatlah suatu skema Link List yang menggambarkan


7 data elemen bilangan ganjil lebih dari 1 dan
kurang dari 19 yang terurut secara descending dan
menggambarkan 3 buah simpul kosong. Sajikan
skema tersebut ke penyajian dalam memori dan
dalam list.
a. Lakukan penambahan data elemen dengan
sembarang bilangan diurutan elemen keempat
b. Lakukan penghapusan data elemen di urutan
elemen pertama dari hasil soal 1a
c. Berdasarkan hasil dari soal 1b diatas lakukan
penghapusan data elemen kelima
Double Link List

 Setiap simpul (node) dari suatu linked list terdiri atas


dua bagian, yaitu :
1. INFO, berisi informasi tentang elemen data yang
bersangkutan (dapat berisi karakter maupun
sebuah record
2. RLINK (link field/next pointer field), berisi alamat dari
simpul
3. (node) selanjutnya yang dituju
4. LLINK (link field/before pointer field), berisi alamat
dari simpul (node) sebelumnya
 Setiap simpul dapat digambarkan sebagai berikut :
Double Link List
Double Link List

 Pointer simpul akhir adalah pointer nul yg diberi


tanda Null (0) atau x

 FIRST adalah penunjukkan node awal, LAST


adalah penandaan node terakhir

 Skema dari Two Way List ditunjukkan sebagai


berikut :
Pemetaan Double Link List di
Memori
Terdiri dari 3 buah pointer, yaitu
1. Pointer First : menunjuk alamat awal dari
simpul pertama (yang berisi informasi)
2. Pointer Last : menunjukkan alamat
informasi terakhir
3. Pointer Avail : menunjuk pada
freestorage list (simpul kosong).
Pemetaan Double Link List di
Memori
FIRST
Info Back Forw

LAST

AVAIL
Latihan :

Terdapat suatu list nama yang terdiri dari 9 simpul, dimana 6


simpul memiliki info nama anda dan teman-teman anda yang
terurut secara ascending serta 3 simpul kosong. Tentukan :
a. Hapus nama anda dari daftar
b. Hapus nama salah satu teman anda dari daftar yang
berada diantara teman lainnya (menggunakan daftar
jawaban point a)
c. Tambahkan nama teman anda yang baru di akhir list
dalam daftar anda (menggunakan daftar jawaban point
b)

Anda mungkin juga menyukai