KUM 3 IMPLEMENTASI LIST

dokumen-dokumen yang mirip
KUM 5 IMPLEMENTASI QUEUE

KUM 6 IMPLEMENTASI BINARY TREE

DIG1G3 Implementasi Struktur Data

BAB IX LINKED LIST (SENARAI BERANTAI)

Gambar 1. Single Linked List

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 1)

Gambar 1. Single Linked List

Pemrograman Lanjut. Class : Deeper Look 2

Linked List dan Implementasinya dalam Bahasa Java

List: Pokok Bahasan dan TIK

Variabel dengan tipe dasar hanya dapat menyimpan sebuah nilai

PERTEMUAN III OBJEK DAN CLASS TUJUAN PRAKTIKUM

Gambar 1. Single Linked List

06/03/2018. Tidak memiliki parameter. Melakukan inisialisasi semua variabel private dengan nilai awal.

1. Manakah jawaban yang benar,pada saat Anda mengcompile dan menjalankan class berikut ini:

INTERAKSI ANTAR OBJECT

DIG1G3 Implementasi Struktur Data

LAPORAN PRAKTIKUM IX. Oleh:

Apa yang menjadi output potongan kode diatas? Error karena tidak ada String yang di-passing kedalam konstruktor Bapak

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA STACK

KONSEP POINTER DAN LINKED LIST

Pemrograman Lanjut Review Class dan Object PTIIK

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA LINKED LIST (BAGIAN 2)

Algoritma dan Struktur Data. Queue

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

List Linear (Linked List) Farah Zakiyah Rahmanti 2014

Struktur Data dan Algoritma

MODUL 6 SINGLE & DOUBLE LINKED LIST

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Pertemuan 3. Perubah Dinamis (Dinamic variable) Suatu perubah yang akan dialokasikan hanya pada saat diperlukan, yaitu setelah program dieksekusi.

IKG2I4 / Software Project I

Struktur Data dan Algoritma

Pemrograman Berorientasi. Class dan Obyek 2

Algoritma & Struktur Data. Array. Oleh : Nur Hayatin, M.Kom

Masukan Judul... Infotype àsebuah tipe terdefinisi yang menyimpan informasi sebuah elemen list

03 LINKED LIST. Slide 0 voice. Slide 1 voice. Slide 2 voice. Thompson Susabda Ngoen 1 P a g e

IF PEMROGRAMAN LANJUT TUGAS 1. Oleh : Andri Heryandi, M.T.

Var-arg Cornelius Mellino / Cornelius Koo JavaSchool of Object Technology

BAB 7 Java Array. Sebagai contoh, kita memiliki tiga variabel dengan tipe data int yang memiliki identifier yang berbeda untuk tiap variabel.

PRAKTIKUM 3 KONSTRUKTOR DAN OVERLOADING

Pertemuan 7. REVIEW dan QUIS

IKG2I4 / Software Project I

Pemrograman Lanjut. Instance Variable Access Modifier Set dan Get Method

PRAKTIKUM STRUKTUR DATA QUEUE. SULIDAR FITRI, M.Sc

MODUL PRAKTIKUM STRUKTUR DATA DAN ALGORITMA QUEUE

PENGENALAN List merupakan sebuah pemikiran/konsep struktur data yang sangat dasar pada pemrograman agar lebih fleksibel. Setiap elemen akan ditambahka

IX. Implementasi ADT : Stacks & Queues. Operasi dasar Contoh kegunaan Implementasi Array-based dan linked list-based

Double Linked List. Double Linked List

Gambar 1. Single Linked List

Pemrograman Lanjut. Constructor. Aryo Pinandito, ST, M.MT Team Teaching Pemrograman Lanjut

Modul Praktikum Bahasa Pemrograman 1

03/04/2018. Collection set List Map. Pemrograman Berorientasi Object

SINGLE LINKED LIST (NON CIRCULAR)

Jika Anda ingin bisa/sukses dalam kuliah SDA ini, rajinlah mengimplementasikan ADT dan mengerjakan soal-soal yang diberikan.

1. Keyword mana yang memiliki fungsi sama dengan keyword this dan menyediakan reference ke atribut turunan dari objek? super

Pemrograman Berorientasi. Abstract & Interface

PERTEMUAN 3 OBJEK DAN CLASS

Algoritma dan Struktur Data. Ramos Somya

Class & Object 2 ~Praktikum~ Imam Fahrur Rozi

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

KONSEP POINTER DAN LINKED LIST

KONSEP POINTER DAN LINKED LIST

BAB 2 COLLECTION & THREAD

Pada pembuatan game di java, sering kali para programer. mendefinisikan banyak object seperti suara, gambar, dan grafik geometri yang

Bahasa Pemrograman 2.

Algoritma dan Struktur Data. Ramos Somya, S.Kom., M.Cs.

KONSEP POINTER DAN LINKED LIST

MODUL III ARRAYLIST TUGAS PENDAHULUAN

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 3 Dosen : Bella Hardiyana S. Kom

Modul Praktikum 4 Pemograman Berorientasi Objek

Konsep Dasar Pemrograman Berorientasi Objek

Algoritma Pemrograman & Struktur Data

Pemrograman Lanjut Tipe Data dan Constructor PTIIK

KONSEP POINTER DAN LINKED LIST

IMPLEMENTASI STRUKTUR DATA LIST, QUEUE DAN STACK DALAM JAVA

PEMROGRAMAN BERORIENTASI OBJEK

JAVA BASIC PROGRAMMING Joobshet

Reserved words Reserved words atau keywords merupakan kata-kata spesifik digunakan oleh compiler untuk keperluan pemrograman. Contoh reserved words

Algoritma Pemrograman [BS204]

Data structure :Metode LINK LIST. Kusnawi, S.Kom, M.Eng STMIK AMIKOM Yogyakarta

BAB VIII CLASS ABSTRACT & CLASS INTERFACE. //abstract class bisa, kelas biasa bisa System.out.println("Ini nama");

Membuat dan Menggunakan Class

Praktikum KPLBO Final Object Concept I

Class & Object 2. Imam Fahrur Rozi

PEMROGRAMAN BERORIENTASI OBJEK

Gambar 17.1Representasi Sebuah Node di Double Linked List. Gambar 17.2 Double Linked List

LIST. Dewi Sartika, M.Kom

BAB IX LINKED LIST (SENARAI BERANTAI)

Algoritma Pemrograman [BS204]

STRUKTUR DATA (2) Single Linked List

(INHERITANCE) Nurochman

Array 1 Dimensi pada Java

Senarai berantai. linked list. Pertemuan keenam Struktur data st3telkom.ac.id. by : tenia wahyuningrum & Sisilia Thya Safitri

2 TIPE DATA DAN VARIABEL

MAKALAH STRUKTUR DATA. DOSEN PEMBIMBING Nisa miftachurohmah, S.kom., M.Si PENYUSUN SITI JAMILATUL MU ADDIBAH ( )

Pemrograman Fery Updi,M.Kom

Bab 8. Dasar-Dasar OOP

1. Traversing Untuk algoritma traversing sama seperti pada single Link List

STACK atau TUMPUKAN. Pertemuan 5 STACK (TUMPUKAN)

Enum. Yuliana Setiowati

Transkripsi:

PRAKTIKUM KUM 3 IMPLEMENTASI LIST TUJUAN PEMBELAJARAN: 1. Mengimplementasikan struktur data LIST menggunakan array. 2. Menggunakan interface untuk mendefinisikan sekumpulan method generik dan dapat diimplementasikan oleh struktur data LIST. 3. Mampu mengimplementasikan struktur data list dengan single atau double linked list. PENGANTAR: List List merupakan sekumpulan elemen list yang bertype sama. Elemen list memiliki keterurutan tertentu (elemen ke..., ada pengertian suksesor dan predesesor). Setiap elemen(node) di dalam list memiliki elemen(node) suksesor(penerus) kecuali elemen terakhir, dan setiap elemen list memiliki predesesor(pendahulu) kecuali elemen pertama. Terdapat 2 jenis list yakni single list dan double list. Pengertian list diatas merupakan single list, Adapun double list merupakan list yang setiap node-nya memiliki predesesor dan suksesor. Dalam praktikum ini, kita akan membahas beberapa model implementasi struktur data list dengan menggunalan array dan linked list. Implementasi Array List Array memiliki batasan kapasitas. Salah satu karakteristik penting tipe array di java adalah bahwa ukuran array dapat diketahui dari pemanggilan data member length. Tidak seperti method length pada class String, length pada array merupakan data member, bukan sebuah method, sehingga tidak membutuhkan kurung kurawal untuk memanggilnya. Sebagai contoh, berikut deklarasi array: int scores = new int[10]; Setelah deklarasi diatas, nilai dari scores.length adalah 10. Perlu diketahui bahwa meskipun length bersifat public, nilainya tidak bisa diubah karena dideklarasikan sebagai konstan/final. Nilai valid untuk index array mulai dari 0 sampai dengan panjang array dikurangi satu. Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 1

Java secara aman menangani references invalid daripada index array. Percobaan untuk mengakses invalid index array akan menyebabkan program berhenti dengan eksepsi ArrayIndexOutOfBoundsException. Struktur data LIST memiliki sejumlah method yang harus dimiliki pada saat implementasi. Di java, salah satu pendekatan untuk mengidentifikasi common method yang dapat digunakan oleh bervariasi implementasi list adalah interface. Definisi sebuah interface hampir mirip dengan definisi class, tetapi: Interface tidak dapat memiliki data member. Interface dapat memiliki konstan dan method public static final. Semua method otomatis abstrak, dan tidak memiliki bodi method. Semua method otomatis public. Interface tidak dapat diinstansiasi menjadi objek. Berikut contoh common method yang ada pada interface list.java interface List // Constants & Methods common to List ADTs // Default maximum list size - a constant public static final int DEF_MAX_LIST_SIZE = 10; // List manipulation operations public void insert(object newelement); // Insert Object public void remove( ); // Remove element at cursor public void replace (Object newelement); // Replace element public void clear( ); // Remove all elements from list // List status operations public boolean isempty( ); // Returns true if list is empty public boolean isfull( ); // Returns true if list is full } // interface List Setiap kelas yang mengimplementasikan List, diperlukan untuk menyediakan implementasi publik untuk setiap metode yang tercantum dalam interface. Java compiler akan menghasilkan kesalahan jika salah satu metode dalam interface tidak diberi definisi method. LANGKAH PERCOBAAN 1: Langkah 1 : Buat interface List (seperti di atas) dan simpan dalam file List.java dan kemudian dicompile. Langkah 2: Mengimplementasikan method yang terdapat pada interface List menggunakan array untuk menyimpan elemen list. Anda perlu menyimpan jumlah aktual elemen dalam list (size). class ListArray implements List // Array based list class // Data Member Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 2

private int size, // Jumlah elemen di dalam list private Object [] element; // Tipe elemen Array // Konstruktor public ListArray( ) // Constructor: default size public ListArray(int maxnumber) // Constructor: specific size // Class methods private void setup (int maxnumber) // Called by constructors only // ------ Insert method implementations for the interface list here ------ // } // class ListArray Anda diminta untuk mengisi kode java untuk setiap konstruktor dan method yang diimplementasikan (kurung yang kosong), dan mengisi semua implementasi method yang ada di interface LIST. Langkah 2: Simpan implementasi list yang anda buat dengan nama ListArray.java Langkah 3: Buat class test untuk menguji implementasi list yang anda buat. Implementasi List dengan Single Linked List Single Linked list atau biasa disebut senarai berantai adalah suatu kumpulan data yang saling terhubung antar 1 data dengan data berikutnya. Suatu element (disebut dengan node) dalam linked list selalu mempunyai hubungan dengan data berikutnya. Agar lebih jelas perhatikan contoh berikut: Gambar 1. Contoh Single Linked List Dalam gambar1 di atas, terlihat bahwa ada 4 buah data. Setiap data mempunyai anggota yang menunjuk ke data berikutnya, kecuali elemen terakhir yang berisi NULL. NULL berarti bahwa elemen tersebut tidak menunjuk ke posisi apapun. Selain itu elemen pertama ditunjuk oleh variable Awal dan elemen terakhir ditunjuk oleh variable Akhir. Setiap elemen dari single linked list mempunyai 2 bagian yaitu bagian info (data) yang bernilai dengan angka, dan sebagian lagi adalah penunjuk ke data berikutnya (next). Untuk mengakses elemen dalam single linked list, dimulai dari head(awal) dan menggunakan field next dari elemen selanjutnya untuk berpindah dari elemen ke elemen berikutnya sampai elemen yang diminta dicapai. Dengan single linked list, list dapat dilintasi Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 3

hanya satu arah dari head ke tail karena masing-masing elemen tidak terdapat link dengan elemen sebelumnya. LANGKAH PERCOBAAN 2: Langkah 1: Implementasikan operasi-operasi yang ada di interface LIST dengan menggunakan single linked list. Setiap node di dalam linked list harus memiliki elemen list dan sebuah reference ke node yang memiliki elemen berikutnya dari list. // Facilitator class for the SList class class SListNode // A singly linked list node // Data members private Object element; // List element private SListNode next; // Reference to the next element // Constructor SListNode(Object elem, SListNode nextptr) // Class Methods used by client class SListNode getnext( ) // Return reference to next element SListNode setnext( SListNode nextval ) // Set reference to next element & return that reference Object getelement( ) // Return the element in the current node void setelement(object newelem) // Set current element to newelem } // class SListNode class SList implements List // Singly linked list implementation of the // List ADT // Data members private SListNode head, // Reference to the beginning of the list // Constructors & Helper Method public SList( ) // Default constructor: Creates an empty list public SList( int size ) // Constructor: Creates an empty list, size is // ignored // Class methods private void setup( ) // Called by constructors only: Creates an empty list //- Insert method definitions for the interface List here -// } // class SList Anda diminta untuk mengisi kode java untuk setiap konstruktor dan method yang diimplementasikan (kurung yang kosong), dan mengisi semua implementasi method yang ada di interface LIST. Langkah 2 : Simpan kode anda pada file SlistNode.java dan SList.java Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 4

Langkah 3 : Buat class test untuk menguji list yang anda buat. SOAL POST TEST: Implementasikan List dengan menggunakan Double Linked List, dimana setiap node-nya memiliki suksesor(penerus/next) dan predesesor(pendahulu/prev). LAPORAN PRAKTIKUM BERISI PEMBAHASAN LATIHAN PERCOBAAN DAN SOAL. DIKUMPULKAN MINGGU DEPAN. Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 5