BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list....
Transcript of BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list....
![Page 1: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/1.jpg)
BAB Vii
list
![Page 2: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/2.jpg)
Pendahuluan
LIST adlah kumpulan objek data yg tipenya sama, tersusun dlm bentuk barisan linier berurutan, dan elemen2xnya dapat dihapus atau ditambahkan secara dinamis.
Merupakan bentuk struktur data yang terdiri dari serangkaian simpul/node yang berisi data dan saling terkait.
Memanfaatkan kombinasi dari tipe data pointer dan tipe data
record/structure (pointer to records).
![Page 3: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/3.jpg)
Kesimpulan: 1. elemen2x list hrs tersusun secara berurutan {seperti
elemen array} 2. List dapat tidak mempunyai elemen (kosong) dan
kedalamnya dpt ditambah elemen baru 3. Jika list tidak kosong, maka elemen2x list dpt jg diambil
dari list (hapus)
![Page 4: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/4.jpg)
Prinsip linked list dapat kita bandingkan seperti suatu rantai yang matanya dihubungkan satu sama lain. Mata rantai tersebut dapat kita asosiasikan dengan record atau node. 1. Ciri khas suatu node dalam linked list adalah harus selalu
terdapat field, paling sedikit dua bagian, yaitu : Data Pointer.
2. Secara umum linked list dibedakan atas 2 macam, yaitu : 1. Single Linked List 2. Double Linked List
![Page 5: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/5.jpg)
Bentuk-bentuk linked list
![Page 6: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/6.jpg)
Single-linked list
• Satu simpul/node memiliki sebuah variabel pointer yang digunakan untuk menunjuk pada simpul/node berikutnya.
![Page 7: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/7.jpg)
Double-linked list • Satu simpul/node menyimpan dua variabel bertipe
pointer.
– Satu pointer menunjuk ke simpul/node berikutnya.
– Pointer yang lain menunjuk ke simpul/node sebelumnya.
• Varian : Multiple-Linked List
– Jumlah variabel pointer yang dimiliki masing-masing simpul lebih dari dua.
![Page 8: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/8.jpg)
Circular linked list Pointer pada simpul/node terakhir menunjuk pada
simpul/node pertama.
Varian :
Circular single linked list.
Circular double linked list.
![Page 9: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/9.jpg)
Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list. Medan penyambung yg tidak menunjuk simpul lain disebut pointer kosong dengan kata baku nil (nilainya sama dg 0 atau bilangan negatif). Dari gambar terlihat bahwa dengan sebuah pointer awal saja maka bisa membaca semua data/informasi yg tersimpan dalam senarai (list).
A B C E D
KONSEP LIST
F
awal
Gambar list DAFTAR dg 6 simpul
![Page 10: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/10.jpg)
Operasi-operasi terhadap linked list Menambah Simpul/Node Baru
Menambah di depan.
Menambah di tengah.
Menambah di belakang.
Menghapus Simpul/Node Menghapus di depan.
Menghapus di tengah.
Menghapus di belakang.
Membaca isi simpul/node. Membaca maju
Membaca mundur
![Page 11: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/11.jpg)
Menambah (simpul) di depan
awal
50 next 80 Ø
40 Ø
baru
next
akhir
Menambah (simpul) di tengah
60 49
awal
bantu
50 next 80 Ø
70 Ø
baru
next
next
akhir
![Page 12: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/12.jpg)
Menambah (simpul) di belakang
60 49
awal
bantu
50 next 70 Ø
80 Ø
baru
next
akhir
next
Menghapus (simpul) di depan
60 next
awal
50 20 80 Ø
20
hapus
next
50
![Page 13: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/13.jpg)
60 next
awal
50 20 80 Ø
20
hapus
next
60 20
hapus
80
Menghapus (simpul) di tengah dan akhir
![Page 14: BAB Vii list - imeldaflorensia91 · Circular single linked list. Circular double linked list. Pointer awal merupakan penunjuk simpul pertama dan bukan bagian dari list.](https://reader031.fdokumen.com/reader031/viewer/2022020104/5c8db09a09d3f26d548cf31c/html5/thumbnails/14.jpg)
Linked Lists vs Arrays Arrays Linked Lists
Memperbolehkan melakukan pengaksesan secara random
Hanya memperbolehkan pengaksesan secara sekuensial terhadap elemen
Tidak memerlukan ruang penyimpanan ekstra untuk menyimpan alamat memori
Memerlukan ruang penyimpanan ekstra untuk reference (penyimpan alamat memori)
Tidak bisa dirubah ukuran alokasi memorinya
Ukuran alokasi memori dapat diubah sesuai dengan kebutuhan