DOUBLE LINKED LIST Oleh Tim Struktur Data TEKNIK
DOUBLE LINKED LIST Oleh: Tim Struktur Data TEKNIK INFORMATIKA - UNIKOM
Double Linked List Linked list dengan simpul berisi satu link / pointer yang mengacu ke simpul berikutnya dan satu link/pointer yang mengacu ke simpul sebelumnya. Simpul Double Linked List : Medan Sambungan Kiri Medan Data (Prev) (Info) Medan Sambungan Kanan (Next)
Deklarasi Double Linked List Type Nama. Pointer = ↑Simpul = Record Medan. Data : tipedata, Sambungan. Kiri, Sambungan. Kanan : Nama. Pointer End. Record Nama. Var. Pointer : Nama. Pointer
Contoh Deklarasi Double Linked List Type Point = ↑Data = Record Info : integer, Prev, Next : Point Endrecord Awal, Akhir : Point
Operasi – operasi Double Linked List 1. 2. 3. 4. 5. 6. 7. Penciptaan (Create) Penyisipan Penghapusan Traversal Pencarian (Searching) Pengurutan (Sorting) Penghancuran (Destroy)
Penciptaan Sama seperti pada Single Linked List. Awal Akhir
Penyisipan Operasi penyisipan pada Double Linked List hampir sama seperti pada Single Linked List, hanya saja pada Double Linked List ada dua pointer sambungan yang harus terhubung ke simpul sebelumnya dan ke simpul berikutnya.
Penyisipan di Depan - List kosong {Awal = Nil} Akhi r Awal Baru 1
Penyisipan di Depan (lanjutan) - List tidak kosong {Awal ≠ Nil} Baru Awal 1 Akhir 2 3 Silahkan coba buat subrutin penyisipan di depan (dalam bentuk algoritma) berdasarkan illustrasi yang ada di slide penyisipan di depan (gabungkan kondisi list masih kosong dengan list tidak kosong)
Penyisipan di Belakang - List kosong {Awal = Nil} {sama seperti pada penyisipan di depan} - List tidak kosong {Awal ≠ Nil} Awal 2 3 Akhi r Baru 1 Silahkan coba buat subrutin penyisipan di belakang (dalam bentuk algoritma) berdasarkan illustrasi yang ada di slide penyisipan di belakang (gabungkan kondisi list masih kosong dengan list tidak kosong)
Penyisipan di Tengah Mula-mula keadaan list sebagai berikut: Misalkan akan menyisipkan angka 4 sebelum angka 9
Penyisipan di Tengah (lanjutan) Awal 7 5 Bar u Bant u 9 Akhi r 10 4 Silahkan coba buat subrutin penyisipan di tengah (dalam bentuk algoritma) berdasarkan illustrasi yang ada di slide penyisipan di tengah (gabungkan kondisi list masih kosong dengan list tidak kosong)
Penghapusan Operasi penghapusan pun sama seperti pada Single Linked List, perbedaanya hanya pada penghapusan di belakang dan penghapusan di tengah. Pointer yang digunakan untuk menghapus bisa langsung ditempatkan di simpul terakhir pada operasi penghapusan di belakang. Operasi penghapusan di tengah tidak perlu menggunakan banyak pointer bantuan.
Penghapusan di Depan - List dalam kondisi Satu Simpul menjadi
Penghapusan di Depan (lanjutan) - List memiliki lebih dari Satu Simpul Phapu s Awal 5 Akhir 2 1 4 Eleme n Silahkan coba buat subrutin penghapusan di depan (dalam bentuk algoritma) berdasarkan illustrasi yang ada di slide penghapusan di depan (gabungkan kondisi list memiliki satu simpul dengan list memiliki lebih dari satu simpul)
Penghapusan di Belakang - List memiliki Satu Simpul {sama seperti penghapusan di depan} - List memiliki lebih dari Satu Simpul Awal 5 2 1 Akhir Phapu s 4 Eleme Silahkan coba buat subrutin penghapusan n di belakang (dalam bentuk algoritma) berdasarkan illustrasi yang ada di slide penghapusan di belakang (gabungkan kondisi list memiliki satu simpul dengan list memiliki lebih dari satu simpul)
Penghapusan di Tengah - List memiliki Satu Simpul {sama seperti penghapusan di depan} - List memiliki lebih dari Satu Simpul Misalkan data yang akan dihapus angka 7 Phapu Awal s 5 5 Eleme n 9 7 Akhir 9 10 10 Silahkan coba buat subrutin penghapusan di tengah (dalam bentuk algoritma) berdasarkan illustrasi yang ada di slide penghapusan di tengah (gabungkan kondisi list memiliki satu simpul dengan list memiliki lebih dari satu simpul)
Operasi-operasi lainnya seperti traversal, pencarian (searching), pengurutan (sorting) dan penghancuran (destroy) diperlakukan sama seperti pada single linked list. Metode yang digunakan pada operasi pengurutan tidak hanya Minimum Sort, tapi bisa juga menggunakan Bubble Sort dan Maximum Sort. Silahkan coba buat subrutin untuk masing-masing operasi tersebut!
Soal Latihan Ada sebuah list Mahasiswa menggunakan simpul double linked list. Deklarasi dari list Mahasiswa sebagai berikut: Kamus: Type Point. Mhs = Simpul. Mhs Mahasiswa = Record NIM, Nama : string, JK : char {jenis kelamin (L/P)} End. Record Simpul. Mhs = Record Info. Mhs : Mahasiswa, Prev, Next : Point. Mhs End. Record Awal, Akhir : Point. Mhs. Baru, Mhs. Hapus : Mahasiswa
Soal Latihan(lanjutan) Berdasarkan deklarasi list mahasiswa yang sudah didefinisikan, buat algoritma (bukan program) dalam bentuk prosedur berparameter untuk: 1. Operasi penyisipan di belakang 2. Operasi penghapusan di tengah 3. Operasi pengurutan menggunakan metode maximum sort secara ascending berdasarkan Nama mahasiswa
Ketentuan Penyelesaian Soal Latihan 1. 2. 3. 4. Satu mahasiswa hanya boleh menyelesaikan satu soal latihan Satu kelas hanya ada tiga (3) jawaban benar (berarti hanya tiga mahasiswa) Siapa cepat mengirim jawaban yang benar maka dia yang mendapat nilai, jika sudah didapat 3 jawaban benar untuk 3 soal latihan tersebut, maka jawaban-jawaban yang lainnya akan diabaikan. Kirimkan jawabannya ke email, ditunggu sampai hari Kamis 16 April 2020 pukul 13: 30 WIB.
TERIMA KASIH
- Slides: 23