P. 1
bab-4-double-linked-list

bab-4-double-linked-list

|Views: 567|Likes:
Published by Fero Ajah

More info:

Published by: Fero Ajah on Feb 23, 2011
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

04/18/2013

pdf

text

original

23

Bab 4 – Double Linked List_________________

BAB 4 DOUBLE LINKED LIST
TUJUAN PRAKTIKUM Setelah mengenal tipe data single linked list maka : 1. Praktikan diharapkan dapat menggunakan double linked list. 2. Praktikan diharapkan mengerti perbedaan antara single linked list dan double linked list serta jenis-jenis double linked list yang lainnya. 3. Praktikan mampu membuat program pascal dengan menggunakan tipe data double linked list.

TEORI PENUNJANG Linked list yang kita pelajari sebelumnya hanya mempunyai sebuah pointer pada setiap simpulnya. Hal ini merupakan kelemahan bahwa linked list tersebut hanya bisa dibaca dalam satu arah saja, yaitu dari kiri ke kanan. Hal yang seperti ini kurang cepat jika kita ingin mencari data di dalam linked list. Untuk itulah kita memerlukan linked list yang setiap simpulnya mempunyai 2 buah pointer, dengan pointer pertama menunjuk ke simpul sebelumnya (sebelah kiri) dan pointer kedua menunjuk ke simpul sesudahnya (disebelah kanan). Hal ini akan mempermudah pembacaan (bisa dilakukan dari kiri ke kanan dan dari kanan ke kiri), begitu juga untuk penambahan simpul baru dan penghapusan simpul. Linked list seperti ini disebut dengan Seranai Beranai Ganda (Double linkeded list). Juga disebut dengan Two Way List.

4.1. Double Linked list Secara garis besar Double linked list adalah linked list yang memiliki dua buah pointer yang menunjuk ke simpul sebelumnya (Prev) dan yang menunjuk ke simpul sesudahnya (Next). Gambar berikut menunjukkan gambaran Double Linked list:

Modul Praktikum Struktur Data – IT045329

4. b. 3.24 Bab 4 – Double Linked List_________________ Head Tail A B C D Gambar 4. c. Inisialisasi. Var Head. Modul Praktikum Struktur Data – IT045329 . Menambah Simpul (di Depan. Membaca isi linked list (Membaca maju dan mundur). Next : PSimpul. Operasi yang dapat dilakukan pada Double Linked list diantaranya adalah : a. Posisi simpul terakhir pada Doube linked list selalu bernilai NIL karena ia tidak menunjuk pada simpul yang lainnya. 2. diantaranya adalah : 1. Tail : PSimpul. 5. d. Ada beberapa hal yang harus diketahui mengenai Double linked list. Menghapus Simpul (di Depan.1 Double Linked list dengan Empat Simpul Deklarasi Double Linked List di dalam Pascal : Type PSimpul Simpul = = ^Simpul Record Info : Tipe Data. Prev : PSimpul. End. Setiap simpul yang terbentuk selalu memiliki nilai NIL. kecuali jika simpul tersebut sudah ditunjuk oleh simpul yang lainnya (Double Linked list belum terhubung). Belakang dan Tengah). kecuali bentuk circular. Double Linked list selalu memiliki pointer petunjuk yang selalu menunjuk pada awal dari list yang disebut Head. Double Linked list juga selalu memiliki pointer petunjuk menunjuk pada akhir dari list yang disebut Tail. Belakang dan Tengah).

Prev := Head.3. Modul Praktikum Struktur Data – IT045329 .2. sehingga simpul kepala pada saat inisialisasi bisa kita gambarkan sebagai berikut : Head Gambar 4. End. Head^. Inisialisasi Proses ini dilakukan untuk mendefinisikan Circular double linked list untuk pertama kalinya atau dengan kata lain ingin membuat Head. Head^.25 Bab 4 – Double Linked List_________________ 4. Berikut ini merupakan ilustrasi dari circular header double linked list.2 Circular Double Linked list dengan tiga simpul 4. Circular Header Double Linked list Jenis linked list ini merupakan jenis double linked list yang memiliki simpul kepala dan tidak mempunyai tail (Head = Tail). Pada proses ini kita menginginkan agar pointer kiri (Prev) dan kanan (Next) dari simpul kepala tidak bernilai NIL. Fungsi simpul kepala dapat digunakan untuk menyimpan informasi tambahan pada list.3 Inisialisasi Circular Double Linked list Procedure inisialisasi dari gambar diatas dapat kita susun sebagai berikut : Procedure Inisialisasi(Var Head : PSimpul). yaitu : 1.Next := Head. Begin New(Head). Head A B C Gambar 4. Operasi Pada Circular Header Double Linked list Ada empat jenis operasi pada linked list.

Selanjutnya disertakan pula procedure untuk menambah simpul baru pada posisi belakang (Tail).4 Ilustrasi Penambahan Simpul pada Circular Header Double Linked List Modul Praktikum Struktur Data – IT045329 .4 ini merupakan ilustrasi penambahan simpul di belakang. Gambar 4. tapi hanya penambahan yang umum dipakai saja oleh double linked list yang akan dibahas yaitu penambahan simpul di belakang. belakang dan tengah. Head Temp A B C d.26 Bab 4 – Double Linked List_________________ 2. Head Temp A B C c. Head Temp A B C a. Head Temp A B C e. Menambah Simpul Menambah simpul pada double linked list ada tiga macam yaitu menambah di depan. Gambar 3. Head Temp A B C b. Penambahan di belakang maksudnya menambahkan simpul-simpul baru pada posisi Tail.

Next := Temp^. Begin New(Temp). Elemen : Char).Info := Elemen.Next := Head.Prev. Var Temp : PSimpul.Prev.Next.Info = Elemen Then { Jika simpul ketemu } Begin Temp^. Temp := Head. Modul Praktikum Struktur Data – IT045329 . Elemen : Char).Next^. Dispose(Temp). Procedure Hapus selengkapnya adalah sebagai berikut : Procedure Hapus(Var Head : PSimpul. Begin If Head^.Prev^.Prev := Head^.Prev := Temp. Untuk menghapus sebuah simpul diperlukan satu buah tambahan variabel pointer yaitu variabel bantu yang berguna untuk menunjukkan simpul manakah yang akan dihapus. 3. If Temp^.27 Bab 4 – Double Linked List_________________ Procedure Menambah dari gambar di atas dapat kita susun sebagai berikut : Procedure Tambah(Var Head : PSimpul. Head^.Next. Tapi dengan menggunakan double linked list proses pencarian simpul yang akan dihapus menjadi semakin cepat.Next = Head Then { Jika Linked list Masih Kosong } Writeln(‘Double Linked list Masih Kosong’) Else {Menghapus simpul tengah / } Begin {Akhir } Temp := Head { Memulai proses pencarian elemen yang akan dihapus } Repeat Temp := Temp^. Temp^.Prev := Temp^. Temp^. Temp^. belakang dan tengah. Head^.Next := Temp. End. Until (Temp^. Menghapus Simpul Operasi menghapus simpul juga ada tiga macam yaitu menghapus simpul di depan.Prev^. Var Temp : PSimpul. Temp^.Info=Elemen) or (Bantu = Head).

’ ‘).Next. Bagaimana cara pendefinisian circular double linked list. Procedure BacaMundur(Head : PSimpul). Temp := Temp^. End. Repeat Write(Temp^. Until (Temp=Head). Var Temp : PSimpul. Var Temp : PSimpul. End. End. End.28 Bab 4 – Double Linked List_________________ End Else { Simpul yang akan dihapus tidak ketemu } Writeln(‘Simpul Tidak di ketemukan !’). Procedure membaca isi double linked list selengkapnya adalah sebagai berikut : Procedure BacaMaju(Head : PSimpul).Info. LAPORAN PENDAHULUAN 1. Repeat Write(Temp^. Kita hanya menggunakan satu prosedur bantu yang pointer next-nya kita gunakan jika kita ingin membaca mundur atau pointer prev-nya jika kita ingin melakukan pembacaan secara maju. Modul Praktikum Struktur Data – IT045329 . Sebutkan jenis-jenis double linked list beserta penjelasannya. Until (Temp=Head).Info. Membaca Isi Double Linked list Dengan menggunakan double linked list proses pembacaan simpul dapat dilakukan dua arah tanpa harus dilakukan prosedur membalik simpul. Temp := Temp^. 2.Next. 4. Begin Temp := Head^. Begin Temp := Head^.Prev.’ ‘).Prev.

Jelaskan mengenai operasi pada circular double linked list. penyisipan dan penghapusan simpul).29 Bab 4 – Double Linked List_________________ 3. (penggambaran proses penginputan. Modul Praktikum Struktur Data – IT045329 . LAPORAN AKHIR Buat Algoritma dari program sebelumnya ditambah dengan ringkasan materi Double Linked list.

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->