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 :
Berikut Output:
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* 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(); | |
} | |
} |
Komentar
Posting Komentar