• Tidak ada hasil yang ditemukan

KUM 3 IMPLEMENTASI LIST

N/A
N/A
Protected

Academic year: 2021

Membagikan "KUM 3 IMPLEMENTASI LIST"

Copied!
5
0
0

Teks penuh

(1)

Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 1

PRAKTI

PRAKTI

PRAKTI

PRAKTIKUM

KUM

KUM

KUM 3 IMPLEMENTASI LIST

3 IMPLEMENTASI LIST

3 IMPLEMENTASI LIST

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.

(2)

Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 2 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 {

(3)

Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 3 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

(4)

Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 4 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.

(5)

Abdul Aziz, Jurusan Informatika FMIPA UNS 2012 5 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.

Referensi

Dokumen terkait

Strategi ini bertujuan untuk mendapatkan keuntungan lebih melalui penekanan biaya produksi dengan menemukan pemasok alternatif sehingga harga bahan baku

Ide dalam penelitian ini berawal dari Sistem Informasi Sinode Wilayah GKI (SISWA GKI) yang akan menggunakan banyak platform pada sistem tersebut, seperti web, desktop,

Sex rasio jantan dan betina pada populasi rusa timor di TN Alas Purwo juga tergolong normal dimana jantan lebih banyak dari betina dengan perbandingan 1:4 pada kelas

Dalam kasus yang peneliti angkat, terdapat banyak pelajar yang belum memiliki SIM tetapi sudah mengendarai kendaraan bermotor ke sekolah sendiri. Apa yang

bahwa berdasarkan Peraturan Daerah Kabupaten Belitung Timur Nomor 6 Tahun 2012 tentang Pedoman dan Tata Cara Pembentukan dan Pengelolaan Badan Usaha Milik Desa,

Peneliti : Selain berdasarkan nilai ulangan harian, apakah ada informasi lain yang digunakan dalam menetapkan peserta didik yang harus mengikuti program remedi?. Guru : Tidak

Kita seyogyanya tak perlu merasa rendah diri dengan kemampuan matahari, bulan, angin, laut, maupun setan yang dalam beberapa bidang melangkahi kesanggupan manusia,

Dengan mengikuti training SW 03, Anda diharapkan dapat menggunakan software AnswerTree yang memiliki berbagai metode analisis untuk melakukan prediksi