Anda di halaman 1dari 12

2016

MODUL PRAKTIKUM
STRUKTUR DATA

MODUL 4 DOUBLE LINKED LIST


Laboratorium DASPRO
Fakultas Rekayasa Industri
Telkom University

Modul Praktikum
Struktur Data 2016

Modul Praktikum
Struktur Data 2016

Modul 1 :

Array

Modul 2 :

Stack & Queue

Modul 3 :

Linked List

Modul 4 :

Double Linked List

Modul 5 :

Tree

Modul 6 :

Graph

Modul 7 :

Directed Graph

Laboratorium Daspro
Fakultas Rekayasa Industri
Telkom University

Page | 1

Modul Praktikum
Struktur Data 2016

TIM PENYUSUN
Muhammad Widyan Riadhi Fakhrun

(ADI)

1202140247

Amrizal Nurrachman Syahid

(ZAL)

1202144097

Margo Gunatama

(MRG)

1202140109

Mindha Ningrum

(MIN)

1202144099

Arief Rahman Hakim

(RIP)

1202144073

Fikli Perdana Kusuma

(FIK)

1202144145

Fransiska Jesinta Pinem

(FJP)

1202144218

Abdul Aziz

(AZI)

1202144079

Qalbinuril Setyani

(QNS)

1202144192

Dela Youlina Putri

(DYP)

1202144005

Satrio Wibowo

(SAT)

1202144179

Muhammad Abidghozi Gerungan

(ABG)

1202144098

Laras Widiastuti

(YAS)

1202140256

Ari Apridana

(ARI)

1202144228

Muhammad Rafi

(RAF)

1202144197

Suci Laila Ramdhani

(SCR)

1202144083

Page | 2

Modul Praktikum
Struktur Data 2016

MODUL 4 DOUBLE LINKED LIST


A. Tujuan Praktikum
1. Praktikan mampu memahami Double linked list
2. Praktikan mampu memahami perbedaan linked list dengan double linked list
3. Praktikan dapat mengimplementasikan double linked list ke dalam sebuah kasus

B. Landasan Teori
1. Pengenalan Double Linked List
Double Linked List merupakan pengembangan dari Linked List. Linked List
memang lebih unggul dibandingkan dengan Array, tetapi apabila dibandingkan
dengan Double Linked List, Linked List masih memiliki kekurangan.
Kekurangannya adalah dalam hal fleksibilitas arah pembacaan karena setiap elemen
dalam Linked List hanya memiliki pointer untuk menunjukkan ke elemen
selanjutnya. Ketika suatu program atau aplikasi yang akan dibuat membutuhkan
pembacaan elemen yang sebelumnya, penggunaan Linked List sangatlah tidak
efektif dan efisien. Karena Linked List akan melakukan pembacaan elemen dari
awal lagi. Tidak terbayang apabila data yang kita miliki mencapai beratus-ratus atau
bahkan beribu-ribu data harus membaca elemen dari awal lagi. Padahal data yang
akan kita baca hanya satu langkah untuk mencapai data yang dibutuhkan tersebut.

Gambar 1. Struktur dari sebuah linked list biasa

Untuk mengatasi masalah diatas, maka diperlukan modifikasi linked list biasa
yang dapat melakukan pembacaan elemen data baik sebelum ataupun setelah. Dari
hasil modifikasi itulah kita dapat menggunakan Double Linked List. Double Linked
List memiliki kemampuan membaca elemen data sebelum dan sesudah karena di
dalam Double Linked List menambahkan satu buat pointer yang menunjukkan
elemen data yang terletak sebelum elemen data yang bersangkutan. Untuk pointer
yang menunjukkan elemen data selanjutnya, biasa diberi nama next, sedangkan
untuk pointer yang menunjukkan elemen data sebelumnya biasa diberi nama
prev.
Page | 3

Modul Praktikum
Struktur Data 2016

Gambar 2. Struktur dari sebuah elemen Double Linked List

Gambar 3. Ilustrasi Double Linked List


2. Struktur Data Double Linked List
Double Linked List merupakan sebuah struktur data yang memiliki kemampuan
untuk membaca elemen data dengan cara maju atau mundur. Karena dapat
membaca elemen data secara maju dan mudur, maka double linked list memiliki 2
buah pointer yang berfungsi sebagai penunjuk awal dan akhir elemen data dari
double linked list. Untuk link yang menunjukkan awal elemen data dari sebuah
double linked list biasanya dinamakan first, sedangkan untuk link yang
menunjukkan akhir elemen data dari sebuah double linked list biasanya dinamakan
last.
Secara umum, method-method yang dimiliki oleh sebuah Double Linked List
tidak jauh berbeda dengan method yang dimiliki oleh sebuah Linked List. Berikut
ini beberapa method yang dimiliki oleh sebuah Double Linked List :
1. Insert : first, last, after
2. Delete : first, last, deleteKey
3. Memeriksa apakah list kosong atau tidak
4. Menampilkan isi Double Linked List
Contoh dari implementasi dan ilustrasi fungsi-fungsi tersebut dapat dilihat di bawah
ini.

Page | 4

Modul Praktikum
Struktur Data 2016

Berikut ini merupakan ilustrasi dari method insertFirst(). Maksud dari method
insertFirst tersebut adalah kita akan menambahkan link baru pada awal list.
Pengaplikasian insertFirst() sama dengan insertLast() namun pada insertLast kita
akan menambahkan link baru pada akhir list.

Gambar 4. Ilustrasi Method insertFirst()


3. Implementasi Double Linked List
Program terdiri dari beberapa file : Link.java, DoubleLinkedList.java, dan
DoubleLinkedListApp.java
Langkah pertama, kita harus membuat class yang berfungsi untuk
mengimplementasikan sebuah elemen data dari Double Linked List.

Page | 5

Modul Praktikum
Struktur Data 2016

Link.java

DoubleLinkedList.java

Page | 6

Modul Praktikum
Struktur Data 2016

Page | 7

Modul Praktikum
Struktur Data 2016

Langkah ketiga, kita harus membuat class yang berfungsi untuk menjalankan
beberapa class yang telah kita buat sebelumnya.
DoubleLinkedListApp.java

Page | 8

Modul Praktikum
Struktur Data 2016

Setelah itu pada penggunaan DoubleLinkedList kita juga dapat membuat fungsi
untuk memasukkan data di posisi yang kita tentukan, selain itu pada
DoubleLinkedList kita juga dapat membuat fungsi delete yang ditujukan untuk
menghapus data tertentu, hal tersebut dapat digunakan dengan menambahkan 2
method di bawah ini :
A. insertAfter()
Maksud dari method insertAfter tersebut adalah kita akan menambahkan link
baru pada lokasi yang sudah ditentukan. Ilustrasinya sebagai berikut :

Gambar 5. Ilustrasi method insertAfter()


B. deleteKey()
method deleteKey() ini berfungsi untuk menghapus link yang sudah ada di
dalam sebuah list yang ada di dalam lokasi tertentu. Berikut ini merupakan ilustrasi
dari method deleteKey() tersebut.

Gambar 5. Ilustrasi method deleteKey()


Page | 9

Modul Praktikum
Struktur Data 2016

Method insertAfter( )

Method deleteKey( )

Page | 10

Modul Praktikum
Struktur Data 2016

Latihan.
Dalam permainan susun kata, kamu diminta untuk menyusun beberapa kata menjadi satu buah
kalimat yang baik dan benar. Tidak diperkenankan untuk menambahkan atau mengurangi kata
yang telah disediakan.
Kata yang kami disediakan adalah :
Fakultas, Industri, Informasi, Sistem, Studi, Rekayasa, Program
Dan harus tersusun menjadi kalimat :
Program Studi Sistem Informasi Fakultas Rekayasa Industri
*Gunakan struktur data Double linked list untuk menyimpan setiap katanya lalu tampilkan isi
dari Double linked list tersebut sehingga membentuk kalimat diatas

Page | 11

Anda mungkin juga menyukai