Escolar Documentos
Profissional Documentos
Cultura Documentos
MODUL KE-2
SINGLE LINKED LIST & DOUBLE LINKED LIST
A. Tujuan
Mahasiswa mampu :
1. Mengerti bagaimana model penyimpanan data menggunakan struktur data single dan
double linked list.
2. Memahami model pengaksesan elemen dalam struktur data linked list.
3. Mengerti dan menggunakan metode-metode standar di kelas LlinkedList.
B. Alat yang digunakan
Peralatan yang digunakan :
1. Perangkat PC yang terinstall Java
2. Editor Java
C. Dasar Teori
LINKED LIST
Linked list : struktur data yang dibangun dari satu atau lebih node yang menempati
alokasi memori secara dinamis.
Node : tempat penyimpanan data yang terdiri dari dua bagian/field.
Field 1 adalah Data, digunakan untuk menyimpan data/nilai.
Field 2 adalah Pointer, untuk menyimpan alamat tertentu.
Single linked-list
null
Double linked-list
null
null
Link atau pointer
Data
Single : artinya pointer-nya hanya satu buah dan satu arah, yaitu menunjuk ke node
berikutnya.
Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti
pada saat pembacaan isi linked list.
ilustrasi single linked list yang memiliki 4 node :
A0
A1
A2
head
A3
tail
Double : artinya field pointer-nya dua buah dan dua arah, yang menunjuk ke node sebelum
dan sesudahnya.
Berguna bila perlu melakukan pembacaan linkedlist dari dua arah.
Double linked list memiliki 2 buah pointer yaitu pointer next dan prev.
Pointer next : mengarah ke node belakang (tail).
Pointer prev : mengarah ke node depan (head).
Ketika masih ada satu node maka kedua pointer (next dan prev) akan menunjuk ke NULL)
Double linked list dapat diakses dari dua arah :
o Dari depan ke belakang (head ke tail)
o Dari belakang ke depan (tail ke head)
Double Linked List yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara
circular.
D. Prosedur Pelaksanaan
Prosedur pelaksanaan praktikum adalah sebagai berikut :
1. Mahasiswa mencoba latihan yang ada pada modul praktikum
2. Mahasiswa menganalisa hasil dari program pada latihan yang telah dijalankan
3. Mahasiswa mengerjakan tugas yang diberikan
4. Mahasiswa mendemonstrasikan program yang telah dikerjakan pada dosen/assisten
5. Mahasiswa membuat laporan dari tugas yang telah dikerjakan
E. Latihan
2. Buatlah class SingleList, dengan package yang sama dengan class Node
Kemudian Buatlah Main pada class SingleList, yang didalamnya berisi perintah untuk
pemanggilan fungsi addFirst dan addLast, sesuaikan agar didapat output seperti di bawah
ini :
Hasil Output :
Dengan data yang sama sebelumnya, yaitu 70 60 50 10, Buatlah Main pada class SingleList,
yang didalamnya berisi perintah untuk pemanggilan fungsi removeFirst dan removeLast,
sesuaikan agar didapat output seperti di bawah ini :
Hasil Output :
300
200
100
400
3. Tambahkan fungsi insertAfter (Object o, Object key) pada klas DoubleList seperti di
bawah ini , lalu panggil fungsi tersebut pada main.
Ketika kita panggil fungsi insertAfter dengan masukan key 200 yang berada di tengahtengah node, maka program akan berhasil dengan output
Ketika kita panggil fungsi insertAfter dengan masukan key 300 yang berada pada posisi
awal node, maka program akan berhasil dengan output
Ketika kita panggil fungsi insertAfter dengan masukan key 400 yang berada pada posisi
akhir node, maka program akan eror, mengapa ?
F. Tugas Praktikum
Buatlah program dan untuk mengakses semua data pada double linkedlist yang
memiliki dua pilihan tampilan : dari depan dan dari belakang.
Contoh tampilan :
Program Pengaksesan Isi Node
---------------------------------------------------Isi linked list : 1
2
3
4
1. Pengaksesan dari depan
2. Pengaksesan dari belakang
Masukkan pilihan : 1
Output : 1
2
3
4
5
Masukkan pilihan : 2
Output : 5
4
3
2
1
4. Modifikasi method penyisipan yang ada. Buatlah program dan untuk melakukan
replace data pada node tertentu dengan menggunakan double linked list.
Contoh:
Replace(1,A);
Akan me-replace data node yang ada pada index ke-1 dengan A.
5. Buatlah program dan flowchart untuk membalikkan sebuah kalimat dengan
menggunakan double linked list. Gunakan method yang ada pada class String untuk
mendapatkan tiap karakter dari kalimat tersebut agar dapat disimpan pada node satu
per-satu.
Contoh tampilan program :
Program pembalik kata dengan linked list
---------------------------------------------------Kalimat yang dimasukkan : rumah
Data node ke-0 : r
Data node ke-1 : u
Data node ke-2 : m
Data node ke-3 : a
Data node ke-4 : h
Hasil : hamur
6. Buatlah program untuk membuat Single circle linked list. Single Circle linked list
(SCLL) adalah single linked list dimana pointer dari node yang paling belakang
tidak menunjuk ke NULL tetapi menunjuk ke node yang paling depan. (lihat
gambar)
Selamat mengerjakan!
Tidak ada kesulitan, yang ada adalah tantangan. Tidak ada keluhan, yang ada
adalah semangat untuk menang! (N)
Keterangan :