Belajar Menggunakan LinkedList pada Java
Assalamualaikum Warahmatullahi Wabarakatuh.
Pada bahasa pemrograman Java, LinkList merupakan sebuah collection yang digunakan sebagai tempat penyimpanan data yang terdiri dari node-node (simpul-simpul) yang saling terhubung. Setiap element dihubungkan dengan element lain menggunakan sebuah Pointer, Pointer (penunjuk) adalah sebuah variabel yang digunakan sebagai penunjuk alamat dari variabel lain. Dalam Java, LinkedList mewarisi AbstractSequentialList serta mengimplementasi interface List dan Deque.
LinkedList pada Java, digunakan untuk strukturisasi data, fungsinya hampir sama dengan ArrayList. Yang membedakannya adalah terletak pada cara menyimpan serta memaintain suatu objek. Jika pada ArrayList, lebih fokus ke dalam aspek , menyimpan ,dan mengakses. Di LinkedList, lebih fokus ke dalam aspek , memanipulasi data, seperti insert dan delete.
Materi Lainnya Yang Direkomendasikan:
- Belajar Menggunakan ArrayList pada Java
- Belajar Menggunakan Wrapper Class pada Java
- Belajar Menggunakan Iterator pada Java
Misalnya jika kita menyimpan data 89, 12, 40 dan 24 dalam Array, contoh gambar konsep dari Single LinkedList seperti berikut ini:
Akhir dari LinkedList ditandai dengan Node terakhir akan menunjuk ke Null yang akan digunakan sebagai kondisi berhenti pada LingkedList.
Selain Single LinkedList, pada umumnya terdapat 3 jenis LinkedList yaitu, Single LinkedList, Double LinkedList, dan Circular LinkedList:
Double LinkedList:
LinkedList dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data dari node tersebut.
Pointer next dan prev-nya menunjuk ke null.
Single Circular LinkedList:
Single LinkedList yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.
Double Circular LinkedList:
Double LinkedList:
LinkedList dengan menggunakan pointer, dimana setiap node memiliki 3 field, yaitu: 1 field pointer yang menunjuk ke pointer berikutnya, 1 field pointer yang menunjuk ke pointer sebelumnya dan field yang berisi data dari node tersebut.
Pointer next dan prev-nya menunjuk ke null.
Single Circular LinkedList:
Single LinkedList yang pointer next-nya menunjuk ke dirinya sendiri, jika terdiri dari beberapa node maka pointer terakhirnya akan menunjuk ke pointer terdepannya.
Double Circular LinkedList:
Double LinkedList yang pointer next dan prev-nya menunjuk ke dirinya sendiri secara circular.
Contoh 1, Membuat Program Sederhan dengan LinkedList
Pada tutorial kali ini, saya akan mengajarkan pada kalian, bagaimana cara menggunakan LinkedList pada Java, disini kita akan membuat program sederhana, dengan menggunakan LinkedList.
Di dalam program tersebut, kita akan membuat sebuah objek dari LinkedList, dimana pada objek tersebut akan kita tambahkan beberapa data, untuk kita manipulasi. Contoh source codenya seperti berikut ini:
package WILDAN_TECHNO_ART;
import java.util.LinkedList;
public class latihan_java {
public static void main(String[] args){
//Membuat Instance/Objek dari LinkedList
LinkedList<String> buah = new LinkedList<>();
//Menambahkan Data pada Objek buah
buah.add("Jeruk");
buah.add("Jambu");
buah.add("Apel");
buah.add("Melon");
buah.add("Semangka");
buah.add("Nanas");
buah.add("Sirsak");
//Mencetak/Menampilkan Data
System.out.println("Nama Buah: "+buah);
//Menghitung Jumlah/Ukuran pada Objek LinkedList
System.out.println("Jumlah Buah: "+buah.size());
}
}
Demo:
Untuk menambahkan data pada Objek buah, kita menggunakan fungsi add(), lalu menampilkan nilainya pada statement System.out.println(), dan untuk melihat ukuran atau jumlah data yang terdapat pada Objek buah, kita bisa menggunakan fungsi size().
Contoh 2, Menambahkan Element pada Objek LinkedList
Pada contoh program berikut ini, kita dapat menambahkan data pada urutan nomor index paling atas dan paling bawan, dengan menggunakan fungsi addFirst() dan addLast(), serta kita juga dapat menambahkan dan mengubah data berdasarkan nomor index tertentu, menggunakan fungsi set(). Seperti berikut ini:
Contoh 2, Menambahkan Element pada Objek LinkedList
Pada contoh program berikut ini, kita dapat menambahkan data pada urutan nomor index paling atas dan paling bawan, dengan menggunakan fungsi addFirst() dan addLast(), serta kita juga dapat menambahkan dan mengubah data berdasarkan nomor index tertentu, menggunakan fungsi set(). Seperti berikut ini:
buah.addFirst("Paling Atas");//Menambahkan Data pada Index Teratas
buah.addLast("Paling Bawah");//Menambahkan Data pada Index Tebawah
buah.set(2, "Diubah");// Mengubah Data pada No Index 2
buah.set(5, "Diubah");// Mengubah Data pada No Index 5
//Mencetak/Menampilkan Data
System.out.println("Nama Buah: "+buah);
Demo:
Pada program tersebut, kita menambahkan data pada index paling atas dan paling bawah, serta mengubah data Jambu (No Index 2) dan Semangka (No Index 5), menggunakan fungsi set().
Contoh 3 Mengambil Element pada LinkedList
Selain menambahkan data sesuai dengan no index tertentu, kita juga dapat mengambil element atau data pada urutan pertama dan terakhir, menggunakan getFirst() dan getLast(), serta mengambil data sesuai dengan no index tertentu, menggunakan fungsi get(), seperti berikut ini:
//Menambahkan Data pada Objek buah
buah.add("Jeruk"); //No Index 0
buah.add("Jambu"); //No Index 1
buah.add("Apel"); //No Index 2
buah.add("Melon"); //No Index 3
buah.add("Semangka"); //No Index 4
//Mengambil Data pada Urutan Teratas
System.out.println("Data Teratas: "+buah.getFirst());
//Mengambil Data pada Urutan Terbawah
System.out.println("Data Terbawah: "+buah.getLast());
//Mengambil Data pada Nomor Index 1
System.out.println("Data NoIndex 1: "+buah.get(1));
//Mengambil Data pada Nomor Index 3
System.out.println("Data NoIndex 3: "+buah.get(3));
Demo:
Contoh 4, Menghapus Element pada LinkedList
Selain menambahkan dan mengambil data, pada LingkedList, kita juga dapat menghapus data pada urutan paling atas dan bawah, menggunakan fungsi removeFirs() dan removeLast(), atau sesuai dengan no index tertentu, menggunkan fungsi remove():
//Menambahkan Data pada Objek buah
buah.add("Jeruk");
buah.add("Jambu");
buah.add("Apel");
buah.add("Melon");
buah.removeFirst(); //Menghapus Data pada Urutan Paling Atas
buah.removeLast(); //Menghapus Data pada Urutan Paling Bawah
buah.remove(1); //Menghapus Data pada No Index 1
//Mencetak Data
System.out.println(buah);
Demo:
Contoh 5, Mecek Kondisi Element pada LinkedList
Terakhir, ada beberapa fungsi lainnya yang bisa kalian gunakan untuk mengecek sebuah element, apakah ada atau tidak, dengan menggunakan fungsi isEmpty() dan contains(), seperti berikut ini:
public static void main(String[] args){
//Membuat Instance/Objek dari LinkedList
LinkedList<String> barang = new LinkedList<>();
//Menambahkan Data pada Objek buah
barang.add("Laptop");
barang.add("Komputer");
barang.add("Radio");
//Mengecek Apakah Data pada Objek barang, Kosong
if(barang.isEmpty()){
System.out.println("Data Kosong");
}else{
System.out.println("Data Penuh");
}
//Mengecek Apakah Sebuah Element ada Didalam LingkedList
if(barang.contains("Komputer")){
System.out.println("Barang Ditemukan");
}else{
System.out.println("Barang Tidak Ditemukan");
}
}
Demo:
Terimakasih atas kunjungannya, semoga meteri yang saya berikan bisa bermanfaat untuk kalian semua, selebihnya, mohon maaf bila ada kesalahan.
Wassalamualaikum Warahmatullahi Wabarakatuh.