28/04/2021
STRUKTUR DATA : IMPLEMENTASI LINKED LIST JAVA
Linked List
Berikut kode implementasi dari linked list :
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
import java.util.LinkedList;
import java.util.Scanner;
import java.util.InputMismatchException;
public class JavaLinkedList {
private static LinkedList<String> dataStorage = new LinkedList<String>();
private static Scanner extracted() {
return new Scanner(System.in);
}
private static void displayData(){
System.out.println("\nData dalam List: " + dataStorage);
System.out.println("Total Data : " + dataStorage.size());
}
private static void addData() {
System.out.print("Masukkan Data: ");
String tempData = extracted().nextLine();
dataStorage.add(tempData);
displayData();
}
private static void addDataToFirst() {
System.out.print("Masukkan Data: ");
String tempData = extracted().nextLine();
dataStorage.addFirst(tempData);
displayData();
}
private static void addDataToLast() {
System.out.print("Masukkan Data: ");
String tempData = extracted().nextLine();
dataStorage.addLast(tempData);
displayData();
}
private static void addDataAtLocation() {
boolean status = true;
int indexData = 0;
displayData();
while(status) {
System.out.print("Pilih Index Data yang ingin disisipi data: [0-" + (dataStorage.size() - 1) + "]: ");
try {
status = false;
indexData = extracted().nextInt();
}
catch(InputMismatchException e) {
System.out.println("Data harus berupa Angka!");
status = true;
}
}
System.out.print("Data yang ingin disisipkan pada index data ke- " + indexData + ": ");
String tempData = extracted().nextLine();
dataStorage.add(indexData, tempData);
displayData();
}
private static boolean searchData(String data) {
return dataStorage.contains(data);
}
private static void removeData() {
boolean status = true;
int indexData = 0;
displayData();
while(status) {
System.out.print("Pilih Index Data yang ingin dihapus: [0-" + (dataStorage.size() - 1) + "]: ");
try {
status = false;
indexData = extracted().nextInt();
}
catch(InputMismatchException e) {
System.out.println("Data harus berupa Angka!");
status = true;
}
}
dataStorage.remove(indexData);
displayData();
}
private static void removeDataAtFirst() {
dataStorage.removeFirst();
displayData();
}
private static void removeDataAtLast() {
dataStorage.removeLast();
displayData();
}
private static void removeDataByContent() {
displayData();
System.out.print("Masukkan Data yang ingin dihapus: ");
String data = extracted().nextLine();
if(searchData(data)) {
dataStorage.remove(data);
}
else {
System.out.println("Anda memasukkan data yang tidak tersimpan di dalam list");
}
displayData();
}
private static void programExit() {
System.exit(0);
}
private static void programTitle() {
System.out.println("\nSimple Linked List Program\n");
}
private static void programSwitcher() {
boolean status = true;
int indexMenu = 0;
while(status) {
try {
status = false;
System.out.print("Pilih Menu [1~9]: ");
indexMenu = extracted().nextInt();
}
catch(InputMismatchException e) {
System.out.println("Masukan harus berupa Angka!");
status = true;
}
}
switch(indexMenu) {
case 1: addData(); break;
case 2: addDataToFirst(); break;
case 3: addDataToLast(); break;
case 4: addDataAtLocation(); break;
case 5: removeData(); break;
case 6: removeDataAtFirst(); break;
case 7: removeDataAtLast(); break;
case 8: removeDataByContent(); break;
case 9: programTitle(); break;
case 10: programExit(); break;
}
programMenu();
}
private static void programMenu() {
System.out.println("\n.: PROGRAM MENU :."
+ "\n 1. Add Data"
+ "\n 2. Add Data at First"
+ "\n 3. Add Data at Last"
+ "\n 4. Add Data at N Index"
+ "\n 5. Remove Data at N Index"
+ "\n 6. Remove Data at First"
+ "\n 7. Remove Data at Last"
+ "\n 8. Remove Data by Data Content"
+ "\n 9. About Program"
+ "\n10. Program Exit");
programSwitcher();
}
public static void main(String[] args) {
programTitle();
programMenu();
}
}
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
import java.util.LinkedList; | |
import java.util.Scanner; | |
import java.util.InputMismatchException; | |
public class JavaLinkedList { | |
private static LinkedList<String> dataStorage = new LinkedList<String>(); | |
private static Scanner extracted() { | |
return new Scanner(System.in); | |
} | |
private static void displayData(){ | |
System.out.println("\nData dalam List: " + dataStorage); | |
System.out.println("Total Data : " + dataStorage.size()); | |
} | |
private static void addData() { | |
System.out.print("Masukkan Data: "); | |
String tempData = extracted().nextLine(); | |
dataStorage.add(tempData); | |
displayData(); | |
} | |
private static void addDataToFirst() { | |
System.out.print("Masukkan Data: "); | |
String tempData = extracted().nextLine(); | |
dataStorage.addFirst(tempData); | |
displayData(); | |
} | |
private static void addDataToLast() { | |
System.out.print("Masukkan Data: "); | |
String tempData = extracted().nextLine(); | |
dataStorage.addLast(tempData); | |
displayData(); | |
} | |
private static void addDataAtLocation() { | |
boolean status = true; | |
int indexData = 0; | |
displayData(); | |
while(status) { | |
System.out.print("Pilih Index Data yang ingin disisipi data: [0-" + (dataStorage.size() - 1) + "]: "); | |
try { | |
status = false; | |
indexData = extracted().nextInt(); | |
} | |
catch(InputMismatchException e) { | |
System.out.println("Data harus berupa Angka!"); | |
status = true; | |
} | |
} | |
System.out.print("Data yang ingin disisipkan pada index data ke- " + indexData + ": "); | |
String tempData = extracted().nextLine(); | |
dataStorage.add(indexData, tempData); | |
displayData(); | |
} | |
private static boolean searchData(String data) { | |
return dataStorage.contains(data); | |
} | |
private static void removeData() { | |
boolean status = true; | |
int indexData = 0; | |
displayData(); | |
while(status) { | |
System.out.print("Pilih Index Data yang ingin dihapus: [0-" + (dataStorage.size() - 1) + "]: "); | |
try { | |
status = false; | |
indexData = extracted().nextInt(); | |
} | |
catch(InputMismatchException e) { | |
System.out.println("Data harus berupa Angka!"); | |
status = true; | |
} | |
} | |
dataStorage.remove(indexData); | |
displayData(); | |
} | |
private static void removeDataAtFirst() { | |
dataStorage.removeFirst(); | |
displayData(); | |
} | |
private static void removeDataAtLast() { | |
dataStorage.removeLast(); | |
displayData(); | |
} | |
private static void removeDataByContent() { | |
displayData(); | |
System.out.print("Masukkan Data yang ingin dihapus: "); | |
String data = extracted().nextLine(); | |
if(searchData(data)) { | |
dataStorage.remove(data); | |
} | |
else { | |
System.out.println("Anda memasukkan data yang tidak tersimpan di dalam list"); | |
} | |
displayData(); | |
} | |
private static void programExit() { | |
System.exit(0); | |
} | |
private static void programTitle() { | |
System.out.println("\nSimple Linked List Program\n"); | |
} | |
private static void programSwitcher() { | |
boolean status = true; | |
int indexMenu = 0; | |
while(status) { | |
try { | |
status = false; | |
System.out.print("Pilih Menu [1~9]: "); | |
indexMenu = extracted().nextInt(); | |
} | |
catch(InputMismatchException e) { | |
System.out.println("Masukan harus berupa Angka!"); | |
status = true; | |
} | |
} | |
switch(indexMenu) { | |
case 1: addData(); break; | |
case 2: addDataToFirst(); break; | |
case 3: addDataToLast(); break; | |
case 4: addDataAtLocation(); break; | |
case 5: removeData(); break; | |
case 6: removeDataAtFirst(); break; | |
case 7: removeDataAtLast(); break; | |
case 8: removeDataByContent(); break; | |
case 9: programTitle(); break; | |
case 10: programExit(); break; | |
} | |
programMenu(); | |
} | |
private static void programMenu() { | |
System.out.println("\n.: PROGRAM MENU :." | |
+ "\n 1. Add Data" | |
+ "\n 2. Add Data at First" | |
+ "\n 3. Add Data at Last" | |
+ "\n 4. Add Data at N Index" | |
+ "\n 5. Remove Data at N Index" | |
+ "\n 6. Remove Data at First" | |
+ "\n 7. Remove Data at Last" | |
+ "\n 8. Remove Data by Data Content" | |
+ "\n 9. About Program" | |
+ "\n10. Program Exit"); | |
programSwitcher(); | |
} | |
public static void main(String[] args) { | |
programTitle(); | |
programMenu(); | |
} | |
} |
Komentar
Posting Komentar