Konsep Linked List Bahasa Java

 

Pengertian dan Konsep Linked List



Linked List saling terhubung dengan bantuan variabel pointer Masing-masing data dalam Linked List disebut dengan node (simpul) yang menempati alokasi memori secara dinamis dan biasanya berupa struct yang terdiri dari beberapa field.

Single : artinya field pointer-nya hanya satu buah saja dan satu arah serta pada akhir node,
Linked List : artinya node-node tersebut saling terhubung satu sama lain. Setiap node pada linked list mempunyai field yang berisi pointer ke node berikutnya, dan juga memiliki field yang berisi data. Node terakhir akan menunjuk ke NULL yang akan digunakan sebagai kondisi berhenti pada saat pembacaan isi linked list. pointernya menunjuk NULL.

 Method yang digunakan :

·         userInput - untuk mendapatkan input user

·         displayData - untuk meng-output setiap data pada linked list

·         addNewData dan addRear - untuk menambahkan data baru

·         addFront - untuk menambahkan data dari depan list

·         addInside - untuk menambahkan data pada index yang dipilih

·         searchData - untuk mencari data pada list

·         removeData - untuk menghapus data dari index yang dipilih

·         removeFirst - untuk menghapus data terdepan dari list

·         removeLast - untuk menghapus data paling belakang dari list

·         removeValue - untuk menghapus data yang dipilih

Berikut Implementasi Linked List pemograman java :
/**
* Write a description of class LinkedElement here.
*
* @author (your name)
* @version (a version number or a date)
*/
import java.util.LinkedList;
import java.util.Scanner;
import java.util.InputMismatchException;
public class LinkedElement{
private static LinkedList<String> data = new LinkedList<String>();
private static Scanner scanner = new Scanner(System.in);
private static void display() {
System.out.println("\\nData dalam List: " + data);
System.out.println("Jumlah data: " + data.size());
}
private static void add() {
System.out.print("Input data: ");
String temp = scanner.nextLine();
data.add(temp);
display();
}
private static void addToFirst(){
System.out.print("Input data: ");
String temp = scanner.nextLine();
data.addFirst(temp);
display();
}
private static void addToLast() {
System.out.print("Input data: ");
String temp = scanner.nextLine();
data.addLast(temp);
display();
}
private static void locationData() {
boolean status = true;
int index = 0;
display();
while(status){
System.out.print("Input data dengan index [0 - " + (data.size() - 1) + "]: ");
try{
status = false;
index = scanner.nextInt();
}
catch(InputMismatchException e){
System.out.println("Data harus angka");
status = true;
}
System.out.print("Input data pada index ke-" + index + ": ");
String temp = scanner.nextLine();
data.add(index, temp);
display();
}
}
private static boolean search(String data) {
return data.contains(data);
}
private static void remove() {
boolean status = true;
int index = 0;
display();
while(status){
System.out.print("Hapus data dengan index [0"+(data.size() - 1) + "]: ");
try {
status = false;
index = scanner.nextInt();
}
catch (InputMismatchException e) {
System.out.println("Data harus angka");
status = true;
}
}
data.remove(index);
display();
}
private static void removeFirst() {
data.removeFirst();
display();
}
private static void removeLast() {
data.removeLast();
display();
}
private static void removeData(){
display();
System.out.print("Data yang ingin dihapus: ");
String temp = scanner.nextLine();
if(search(temp)){
data.remove(temp);
}
else{
System.out.println("Data tidak ditemukan!!");
}
display();
}
private static void programExit() {
System.exit(0);
}
private static void programTitle() {
System.out.println("\\nSimple Linked List Program");
}
private static void programSwitcher() {
boolean status = true;
int indexMenu = 0;
while(status) {
try {
status = false;
System.out.print("Pilih Menu [1~9]: ");
indexMenu = scanner.nextInt();
}
catch(InputMismatchException e) {
System.out.println("Masukan harus berupa Angka!");
status = true;
}
}
switch(indexMenu){
case 1: add();
break;
case 2: addToFirst();
break;
case 3: addToLast();
break;
case 4: locationData();
break;
case 5: remove();
break;
case 6: removeFirst();
break;
case 7: removeLast();
break;
case 8: removeData();
break;
case 9: programTitle();
break;
case 10: programExit();
break;
}
programMenu();
}
private static void programMenu() {
System.out.println("\\n.: MENU :");
System.out.println("\\n 1. Add Data");
System.out.println("\\n 2. Add Data at First");
System.out.println("\\n 3. Add Data at Last");
System.out.println("\\n 4. Add Data at N Index");
System.out.println("\\n 5. Remove Data at N Index");
System.out.println("\\n 6. Remove Data at First");
System.out.println("\\n 7. Remove Data at Last");
System.out.println("\\n 8. Remove Data by Data Content");
System.out.println("\\n 9. About Program");
System.out.println("\\n10. Program Exit");
programSwitcher();
}
public static void main(String[] args) {
programTitle();
programMenu();
}
}
Berikut Output:

Komentar

Postingan Populer