Upload
m-s-hakim
View
113
Download
9
Embed Size (px)
DESCRIPTION
Modul Algoritma dan struktur Data
Citation preview
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
PRAKTIKUM ALGORITMA DAN STRUKTUR DATA
MODUL KE-2
SINGLE LINKED LIST & DOUBLE LINKED LIST
LABORATORIUM TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH MALANG
2015
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
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.
Linked list dibedakan menjadi 2 : Single linked list Double linked list
null
Link atau pointer
Data
null
null
Single linked-list Double linked-list
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
SINGLE LINKED LIST
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 :
SINGLE CIRCULAR LINKED LIST
Single Linked List yang pointer next-nya menunjuk ke dirinya sendiri Jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer
terdepannya.
DOUBLE LINKED LIST
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)
A0 A1 A2 A3
head tail
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
DOUBLE CIRCULAR LINKED LIST
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
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
E. Latihan
A. Single Link List 1. Buatlah class Node seperti dibawah ini : (untuk nama package bebas)
2. Buatlah class SingleList, dengan package yang sama dengan class Node
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
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 :
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
3. Buatlah fungsi removeFirst pada class SingleList seperti dibawah ini
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 :
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
B. Double Link List
1. Buatlah class Node berikut : (untuk nama package bebas)
2. Buatlah class DoubleList berikut:
Nama package sama dengan class Node
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
Hasil Output :
300
200
100
400
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
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 tengah-
tengah 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
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
Ketika kita panggil fungsi insertAfter dengan masukan key 400 yang berada pada posisi
akhir node, maka program akan eror, mengapa ?
F. Tugas Praktikum
1. Lengkapilah percobaan A (Single Link List) dengan menambah prosedur
prosedur untuk :
insertAfterKey
insertBeforeKey
removeKey
2. Lengkapilah program latihan 2 (Double Linked List) dengan menambahkan
prosedur-prosedur untuk:
insertBeforeKey (Object o , Object key) parameter harus sesuai dan fungsi
tersebut harus bisa menyelesaikan tiga kondisi, yaitu saat key di awal node,
ditengah node, maupun di akhir node.
removeFirst.
removeLast.
removeNode fungsi ini harus bisa menghapus data dengan key, baik saat
key di awal node, di tengah node, maupun di akhir node.
3. 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 5
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
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
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)
Dokumen Laboratorium Teknik Informatika UMM @ 2015 Modul Praktikum Algoritma dan Struktur Data
Keterangan :
1. Tugas praktikum dikerjakan sendiri, jika ketahuan mengcopas, mencontoh, mereplika,
menjiplak dll akan dikenakan sanksi nilai x .
2. Tidak ada demo susulan, sesuai dengan jadwal yang telah ditentukan, kecuali ada
alasan yang logis dan dapat di maklumi.
3. Kriteria penilaian praktikum:
a. 25% Absensi.
b. 50% demo tugas.
c. 25% laporan praktikum.
d. Tambahan nilai (sesuai kebijakan aslab masing-masing), misal keaktifan dll.
4. Kriteria penilaian laporan:
a. Menggunakan template yang sudah disediakan.
b. Melampirkan hasil praktikum (latihan dan tugas modul) dan screenshot hasil
programdan penjelasannya.
c. Dikerjakan sendiri, jika ketahuan mengcopas, mencontoh, mereplika, menjiplak dll
akan dikenakan sanksi pengosongan nilai laporan.
Penting!
Tetap semangat, jangan menyerah dan pasti bisa jika mau berusaha, jangan lupa juga
untuk terus berdoa agar dapat mencapai hasil yang maksimal, jangan pernah takut untuk
bertanya jika masih ada kebingungan yang melanda, diselingi terus berolah raga, makan
yang banyak dan sehat sesuai 4 sehat 5 sempurna serta minum multivitamin agar tetap
bugar :D,