asd modul 2 (linked list)

Upload: m-s-hakim

Post on 05-Mar-2016

113 views

Category:

Documents


9 download

DESCRIPTION

Modul Algoritma dan struktur Data

TRANSCRIPT

  • 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,