January 7, 2016 thumb Belajar Java #11 : LinkedList

salam, tulisan ini merupakan sambungan dari tulisan sebelumnya Belajar Java #10 : Keuntungan Menggunakan Tipe Data Referral Object. dan merupakan seri dari belajar. kali ini saya ingin membahas tentang penggunaan LinkedLlist. sebelum lebih jauh apa itu LinkedList.

LinkedList adalah salah satu bentuk Struktur data yang berisi kumpulan data (Baik Tipe Data Primitive Maupun Tipe Data Object) yang tersusun secara sequential dan saling menyambung yang mana memiliki ukuran yang dinamis.

LinkedList muncul karena kelemahan dari Array (jika bingung apa itu array silakan buka Belajar Java #7 : Menggunakan Tipe data Referral Array), array panjangnya fixed, jadi misalnya kita telah membuat sebuah Array dengan Panjang 5 Slot. maka ketika data kita lebih dari 5 Slot kita tidak bisa memasukan data lagi. berikut ini adalah Contoh potongan Array yang mana kita alokasikan 5 Slot tetapi data kita isi dengan slot, sehingga program akan error.

package goblooge.main;
import goblooge.main.Manusia; //import dahulu kelas Manusia

/**
 * Class Sederhana dalam java 
 * untuk belajar Menggabungkan dan Memecah String 
 * @author goblooge
 *
 */
public class Goblooge {
	/**
	 * Belajar String
	 * @param args
	 */
	public static void main(String args[]){
		
		/* inisialisasi data manusia*/
		Manusia[] daftar_manusia=new Manusia[5];	//kita sediakan 5 daftar_manusia
		daftar_manusia[0]=new Manusia("Nurul Huda", 26, 'A',"-- Kosong --" );					
		daftar_manusia[1]=new Manusia("Eka Safitri", 25, 'B',"-- Kosong --" );					
		daftar_manusia[2]=new Manusia("Salman Al-Farisi Ibnu Al-Huda", 1, 'A',"-- Kosong --" );	
		daftar_manusia[3]=new Manusia("Abdul Malik", 1, 'A',"Lamongan" );						
		daftar_manusia[4]=new Manusia("Muniswatin", 1, 'A',"Gresik" );							
		daftar_manusia[5]=new Manusia("Sutikno", 1, 'A',"Gresik" ); //akan terjadi error disini karena slotnya sudah lebih dari 5
		
		
		/*mencetak data manusia*/
		System.out.println(daftar_manusia[0].getBiodata());
		System.out.println(daftar_manusia[1].getBiodata());
		System.out.println(daftar_manusia[2].getBiodata());
		System.out.println(daftar_manusia[3].getBiodata());
		System.out.println(daftar_manusia[4].getBiodata());
		System.out.println(daftar_manusia[5].getBiodata());
	}
}

ketika dijalankan akan menghasilkan error peringatan.

Array Index Out Of Bound

Array Index Out Of Bound

Exception in thread “main” java.lang.ArrayIndexOutOfBoundsException: 5
at goblooge.main.Goblooge.main(Goblooge.java:24)

ArrayIndexOutOfBoundException peringatan bahwa slot array telah lebih dari yang disediakan sehingga agar kode ini jalan kita harus mendefinisikan supaya arraynya lebih besar. cuku dengan mengubah baris ke – 18 menjadi

Manusia[] daftar_manusia=new Manusia[6];	//kita sediakan 6 daftar_manusia

dan fuala, ketika dijalankan akan berjalan dengan normal. permasalahnya adalah apakah setiap kali kita ingin menambah daftar_manusia kita harus menambah Array-nya. bagaimana jika ini adalah menjadi program siap pakai. apakah setiap kali kita ingin memakai data yang lebih besar kita harus compile ulang hanya untuk memperbesar definisi Array, tentu tidak efektif. atau cara paling mudah adalah dengan mendefiniskan Array Sejumlah 1000 slot, padahal yang dibutuhkan mungkin maksimal hanya 100 Slot, tentu tidak efisien.

keuntungan jika kita menggunakan LinkedList. setiap kali kita memasukan data LinkedList akan membesar dan mengecil sesuai kebutuhan, jadi jika  butuh 10 Slot, LinkedList akan memberi 10 Slot, ketika butuh 11 Slot LinkedList akan memberi 11 Slot, tidak kurang dan tidak lebih. sehingga keuntunganya tidak terlalu over menaikan Slot yang disediakan dan kebutuhan Slot selalu mencukupi (Selama Memory Fisik Komputer masih tersedia). berikut ini adalah Contoh Penggunaan LinkedList.

package goblooge.main;
import java.util.LinkedList;

import goblooge.main.Manusia; //import dahulu kelas Manusia

/**
 * Class Sederhana dalam java 
 * untuk belajar Menggabungkan dan Memecah String 
 * @author goblooge
 *
 */
public class Goblooge {
	/**
	 * Belajar String
	 * @param args
	 */
	public static void main(String args[]){
		
		LinkedList daftar_manusia=new LinkedList();
		
		/* inisialisasi data manusia*/
		Manusia satu=new Manusia("Nurul Huda", 26, 'A',"-- Kosong --" );					
		Manusia dua=new Manusia("Eka Safitri", 25, 'B',"-- Kosong --" );					
		Manusia tiga=new Manusia("Salman Al-Farisi Ibnu Al-Huda", 1, 'A',"-- Kosong --" );	
		Manusia empat=new Manusia("Abdul Malik", 1, 'A',"Lamongan" );						
		Manusia lima=new Manusia("Muniswatin", 1, 'A',"Gresik" );						
		Manusia enam=new Manusia("Sutikno", 1, 'A',"Gresik" ); //akan terjadi error disini karena slotnya sudah lebih dari 5
		
		daftar_manusia.add(satu);
		daftar_manusia.add(dua);
		daftar_manusia.add(tiga);
		daftar_manusia.add(empat);
		daftar_manusia.add(lima);
		daftar_manusia.add(enam);
		
		/*mencetak data manusia*/
		System.out.println(daftar_manusia.get(0).getBiodata());
		System.out.println(daftar_manusia.get(1).getBiodata());
		System.out.println(daftar_manusia.get(2).getBiodata());
		System.out.println(daftar_manusia.get(3).getBiodata());
		System.out.println(daftar_manusia.get(4).getBiodata());
		System.out.println(daftar_manusia.get(5).getBiodata());
	}
}

ketika dijalankan maka akan menghasilkan Output Sebagai Berikut.

Hasil Running LinkedList

Hasil Running LinkedList

seperti yang dilihat. hasilnya sama baik menggunakan Array ataupun LinkedList, akan tetapi dengan LinkedList system akan lebih fleksible karena kita tidak mendefinisikan berapa slot yang harus disediakan komputer, karena LinkedList akan menyediakan secara dinamis. berikutnya saya akan lanjutkan ke Belajar Java #12 : Methode dalam Linkedlist. jangan lupa like, share dan comment.

Download Source Code.

Comments

total comments