Pertemuan 12 - Double Linked List
Pertemuan 12 - Double Linked List
A B C
Operasi Double Linked Lists: AddFirst
• “A” adalah data pada elemen head pada awalnya. Kemudian akan
ditambahan data “D” pada bagian sebelum head.
A B C
D
Operasi Double Linked Lists: AddFirst
• Maka bagian header harus dipindahkan dulu ke dalam previous,
kemudian Node next berisi bagian di sebelah kanan next.
A B C
D
Operasi Double Linked Lists: AddFirst
Operasi Double Linked Lists: AddFirst
• Maka bagian header harus dipindahkan dulu ke dalam previous,
kemudian Node next berisi bagian di sebelah kanan next.
D A B C
Operasi Double Linked Lists: AddLast
• Menambahkan data pada bagian akhir linked lists diawali dengan
penentuan Node akhir sebagai lokasi yang akan ditambah,
kemudian Node baru akan ditambahkan pada posisi lokasi next.
• Setelah itu Node Baru memiliki next yang berisi null.
Operasi Double Linked Lists: AddLast
Menambahkan data pada bagian akhir linked lists diawali dengan penentuan
Node akhir sebagai lokasi yang akan ditambah
A B C
Operasi Double Linked Lists: AddLast
kemudian Node baru akan ditambahkan pada posisi lokasi next
2
A B C
3
A B C
D
Operasi Double Linked Lists: AddLast
Node Baru memiliki next yang berisi null
4 A B C D
Operasi Double Linked Lists: AddLast
A B C D
Operasi Double Linked Lists: Add
• Operasi untuk menambah node berdasarkan indeks.
• Indeks yang akan ditambah dapat disisipkan di awal ataupun di
akhir dari double linked lists.
• Terdapat empat langkah utama dalam penambahan data yaitu:
• memposisikan location prev indeks data yang akan dimasukkan sebagai
Node baru bagian prev,
• location terletak pada posisi New Node bagian next,
• Node baru terletak pada location bagian prev.next, dan
• Node baru terletak pada bagian location bagian prev.
Operasi Double Linked Lists: Add
1 memposisikan location prev indeks data yang akan dimasukkan sebagai Node
baru bagian prev,
A B C
D
Operasi Double Linked Lists: Add
1 memposisikan location prev indeks data yang akan dimasukkan sebagai Node
baru bagian prev,
2 location terletak pada posisi New Node bagian next,
A B C
1 2
D
Operasi Double Linked Lists: Add
1 memposisikan location prev indeks data yang akan dimasukkan sebagai Node
baru bagian prev,
2 location terletak pada posisi New Node bagian next,
3 Node baru terletak pada location bagian prev.next,
A B C
3
1 2
D
Operasi Double Linked Lists: Add
1 memposisikan location prev indeks data yang akan dimasukkan sebagai Node
baru bagian prev,
2 location terletak pada posisi New Node bagian next,
3 Node baru terletak pada location bagian prev.next, dan
4 Node baru terletak pada bagian location bagian prev.
A B C
3 4
1 2
D
Operasi Double Linked Lists: Add
A B D C
Operasi Double Linked Lists: Add
A B D C
Operasi Double Linked Lists: RemoveFirst
• Menghapus data pada bagian awal dilakukan dengan pencarian
lokasi awal double linked list,
• kemudian melakukan removing, dan
• menjadikan data pada bagian next menjadi bagian head.
Operasi Double Linked Lists: RemoveFirst
1 Menghapus data pada bagian awal dilakukan dengan pencarian lokasi
awal double linked list,
A B C
Operasi Double Linked Lists: RemoveFirst
1 Menghapus data pada bagian awal dilakukan dengan pencarian lokasi
awal double linked list,
2 kemudian melakukan removing
B C
Operasi Double Linked Lists: RemoveFirst
1 Menghapus data pada bagian awal dilakukan dengan pencarian lokasi
awal double linked list,
2 kemudian melakukan removing
3 menjadikan data pada bagian next menjadi bagian head.
3
B C
Operasi Double Linked Lists: RemoveFirst
B C
Operasi Double Linked Lists: RemoveLast
• Menghapus data pada bagian akhir elemen diawali dengan
memastikan posisi yang diinginkan berada di bagian akhir,
• kemudian menghapus item yang berada di posisi tersebut.
Operasi Double Linked Lists: RemoveLast
1 Menghapus data pada bagian akhir elemen diawali dengan
memastikan posisi yang diinginkan berada di bagian akhir,
A B C
Operasi Double Linked Lists: RemoveLast
1 Menghapus data pada bagian akhir elemen diawali dengan
memastikan posisi yang diinginkan berada di bagian akhir,
2 kemudian menghapus item yang berada di posisi tersebut.
2
A B
Operasi Double Linked Lists: RemoveLast
A B
Operasi Double Linked Lists: Remove
• Operasi untuk menghapus node berdasarkan indeks.
• Indeks yang akan dihapus dapat disisipkan di awal ataupun di akhir
dari double linked list.
• Perintah ini akan merubah posisi Node pada bagian next menjadi
Node pada bagian next next.
Operasi Double Linked Lists: Remove
Operasi untuk menghapus node berdasarkan indeks.
1
Indeks yang akan dihapus dapat disisipkan di awal ataupun di akhir
dari double linked list (location).
A B C
Location
1
Operasi Double Linked Lists: Remove
Operasi untuk menghapus node berdasarkan indeks.
1
Indeks yang akan dihapus dapat disisipkan di awal ataupun di akhir
dari double linked list (location).
2 Perintah ini akan merubah posisi Node pada bagian next menjadi
Node pada bagian next next.
A C
Next Next
2
Operasi Double Linked Lists: Remove
A C
Operasi Double Linked Lists: getFirst /
getLast
• Fungsi getFirst digunakan untuk mengambil data di elemen paling
depan (head).
• Prosedur getFirst pada double linked lists adalah dengan cara
mengembalikan nilai data pada head untuk dapat ditampilkan.
• Berbeda dengan pengambilan data pada akhir elemen (getLast)
digunakan untuk mengambil data pada double linked lists yang
mana posisi data adalah pada indeks terakhir atau data paling
belakang.
Operasi Double Linked Lists: getFirst /
getLast
Fungsi getFirst digunakan untuk mengambil data di elemen paling
depan (head).
Prosedur getFirst pada double linked lists adalah dengan cara
mengembalikan nilai data pada head untuk dapat ditampilkan.
head
A B C
Return head
Operasi Double Linked Lists: getFirst /
getLast
Berbeda dengan pengambilan data pada akhir elemen (getLast)
digunakan untuk mengambil data pada double linked lists yang mana
posisi data adalah pada indeks terakhir atau data paling belakang.
tail
A B C
Return tail
Operasi Double Linked Lists: get
• Fungsi get(index) digunakan jika ingin mengambil data yang dipilih
pada indeks tertentu.
• Prosedur pengambilan data pada indeks tertentu adalah sebagai
berikut:
Latihan
Jelaskan Langkah-langkah dari 3 node berikut dengan kondisi awal double linked list
kosong secara berkelanjutan!
head
A B C
tail
1. Tambahkan node baru dengan data D dari belakang.
2. Tambahkan node baru dengan data E dari depan.
3. Tambahkan node dengan data F setelah node B.
4. Tambahkan node dengan data G pada indeks ke-1
5. Hapus node depan
6. hapus node belakang
7. hapus node yg memiliki data C.
8. Hapus node pada indeks ke-3
*Tampilkan semua data dari seluruh node pada linked list untuk setiap
penambahan/penghapusan
Terima Kasih ☺