Linier Linked List - Struktur Data Pertemuan 7 Unpam
Linier Linked List - Struktur Data Pertemuan 7 Unpam
3 sks
Rekursif : Fibonacci
Literatur :
1. H.M Deitel, P.J Deitel, Small Java How to Program-sixth
Edition, Pearson Prentice Hall, 2005
2. Elliot B. Koffman, Paul A.T. Wolfgang, Objects, Abstraction,
Data Structures and Design Using Java, John Wiley &
Sons.Inc, 2005
3. Mark Allen Weiss, Data Structures & Algorithm Analysis in
Java, Addison-Wesley, 1999
4. Moh.Sjukani, Algoritma & Struktur Data dengan C, C++ dan
Java, Mitra Wacana Media, Agustus 2005
5. Andri Kristanto, Struktur Data dengan C, Graha Ilmu, 2003
6. Bambang Wahyudi, Pengantar Struktur Data dan Algoritma,
Andi, 2004
7. Ema Utami, Struktur Data, Graha Ilmu, 2007
8. Yatini B, Indra, Pemrograman Terstruktur, J&J Learning
Yogyakarta, 2001
9. Wirth, Niklaus, Algorithmic + Data Structures Programs,
Prentice-Hall, 1976
10. Thompson Susabda Ngoen , Algoritma dan Struktur Data
Bahasa C, Mitra Wacana Media, 2009
Linked List
• Linked List (List Berkait) biasa juga disebut list
• List termasuk kedalam himpuan dinamik, tetapi
berbeda dengan stack dan queue
• Pada ada peraturan :
– Penyisipan elemen
• Diawal
• Ditengah
• Diakhir
– Penghapusan elemen
• Diawal
• Ditengah
• Diakhir
Linked List
• List digunakan untuk menyimpan sekumpulan
data yang bertipe sama (berupa: bilangan, string)
• Jumlah elemen list tidak terbatas, tetapi secara
fisik hanya dibatasi oleh jumlah memori yang
tersedia
• Sebuah list akan mempunyau 2 bagian, yaitu
bagian:
– Head (Kepala)
• Yang terutama digunakan untuk menyimpan lamat elemen
pertama atau elemen terakhir sebuah list
– Badan List yang berisi kumpulan elemen list
Linked List
• Linked list merupakan Array Dinamis.
Variabel bertipe Array merupakan
suatu tipe data yang bersifat statis
dimana 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
Linked List
• Linked list adalah sejumlah obyek yang di link atau
dihubungkan satu dengan yang lainnya sehingga
membentuk suatu list
• Obyek adalah merupakan gabungan beberapa elemen
data (variabel) yang dijadikan satu kelompok atau
structureatau recordyang dibentuk dengan perintah
struct
• Tiap-tiap elemen dapat memiliki tipe data tersendiri
yang berbeda dengan tipe data lemen lain
• Untuk menghubungkan obyek satu dengan obyek
lainnya, diperlukan paling tidak sebuah variabel yang
bertipe pointer
• Variabel pointer tersebut merupakan salah satu variabel
dalam struktur obyek
Linked List
• Struktur Linked List terbagi menjadi 4
macam, yaitu :
1. Linear Single Linked List
2. Linear Double Linked List
3. Circular Single Linked List
4. Circular Double Linked List
1. Linear Single Linked List
• Merupakan linked list lurus dengan
pointer tunggal
• Dalam struktur simpul hanya ada
satu elemen/field/variabel yang
bertipe pointer yang isinya adalah
alamat sim[ul berikutnya atau next
node
1. Linear Single Linked List
LAST
FIRST INFO LINK INFO LINK INFO LINK INFO LINK
22 28 66 63
• Prosesnya
1. Inisialisasi, yaitu persiapan pembuatan
Linked List
2. Membuat simpul awal
3. Membuat simpul baru
4. Menambahkannya (Insert) kedalam
linked list
1. Linear Single Linked List
• Prosesnya
1. Inisialisasi, yaitu persiapan pembuatan
Linked List
1. Linear Single Linked List
• Prosesnya
2. Membuat simpul awal
1. Linear Single Linked List
• Prosesnya
3. Membuat simpul Baru
1. Linear Single Linked List
• Prosesnya
4. Menambahkannya (Insert) kedalam
linked list
Contoh : Linear Single Linked List (versi 1)
Contoh : Linear Single Linked List (versi 1)
Contoh : Linear Single Linked List (versi 1)
Contoh : Linear Single Linked List (versi 2)
Contoh : Linear Single Linked List (versi 2)
Contoh : Linear Single Linked List (versi 2)
2. Linear Double Linked List
LEFT RIGHT prev
INFO
next
head tail
2. Linear Double Linked List
RIGHT
RIGHT
RIGHT
RIGHT
LAST
INFO
INFO
INFO
INFO
LEFT
LEFT
LEFT
LEFT
FIRST
22 28 63 66
.
.
.
2. Linear Double Linked List
• Proses DLLL (Double Linked List Linear), adalah
3. Pembuatan simpul awal
.
2. Linear Double Linked List
• Proses DLLL (Double Linked List Linear), adalah
5. Melakukan insert kiri / sisip elemen awal
LAST
FIRST INFO LINK INFO LINK INFO LINK INFO LINK
22 28 66 63
3. Circular Single Linked List
LAST
FIRST INFO LINK INFO LINK INFO LINK INFO LINK
22 28 66 63
next
head tail
4. Circular Double Linked List
RIGHT
RIGHT
RIGHT
RIGHT
LAST
INFO
INFO
INFO
INFO
LEFT
LEFT
LEFT
LEFT
FIRST
22 28 63 66
• Head
–Dibutuhkan satu buah variabel pointer :
head
–Head akan selalu menunjuk pada node
pertama
4. Circular Double Linked List
• Fungsi untuk mengetahui kosong tidaknya DLLC
(Double Linked List Circular)
• Penamahan elemen/data didepan/diawal
– Penambahan node baru akan dikaitan di node paling
depan, namun pada saat pertama kali (data masih
kosong), maka penambahan data dilakukan pada head
nya
– Pada prinsipnya adalah mengkaitkan data baru dengan
head, kemudian head akan menunjuk pada data baru
tersebut sehingga head akan tetap selalu menjadi data
terdepan. Untuk menghubungkan node terakhir dengan
node terdepan dibutuhkan pointer bantu.
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular), adalah
1. Pembuatan sebuah simpul
2. Pembuatan simpul awal.b (simpulyang sudah dibuat,
dijadikan sebagai simpul awal)
3. Melakukan insert kanan / sisip elemen terakhir
4. Melakukan insert kiri / sisip elemen awal
5. Melakukan insert tengah / sisip elemen tengah
6. Melakukan delete kiri / hapus elemen awal
7. Melakukan delete kanan / hapus elemen akhir
4. Circular Double Linked List
• Proses DLLC (Double Linked List
Circular), adalah
1. Pembuatan sebuah simpul
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular), adalah
2. Pembuatan simpul awal.b (simpulyang sudah dibuat,
dijadikan sebagai simpul awal)
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular),
adalah
3. Melakukan insert kanan / sisip elemen
terakhir
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular),
adalah
4. Melakukan insert kiri / sisip elemen awal
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular), adalah
5. Melakukan insert tengah / sisip elemen
tengah
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular), adalah
6. Melakukan delete kiri / hapus elemen awal
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular),
adalah
7. Melakukan delete kanan / hapus elemen
akhir
4. Circular Double Linked List
• Proses DLLC (Double Linked List Circular),
adalah
8. Melakukan delete tengah / hapus elemen
Tengah