document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. import java.util.LinkedList;
  2. import java.util.Scanner;
  3. import java.util.InputMismatchException;
  4.  
  5. /*
  6.  * Example of Simple Java Linked List
  7.  * Author: Muhammad Irfan Luthfi
  8.  * https://github.com/milstrike
  9.  *
  10.  */
  11.  
  12. public class JavaLinkedList {
  13.    
  14.     private static LinkedList<String> dataStorage = new LinkedList<String>();
  15.    
  16.     private static Scanner extracted() {
  17.         return new Scanner(System.in);
  18.     }
  19.    
  20.     private static void displayData(){
  21.         System.out.println("\\nData dalam List: " + dataStorage);
  22.         System.out.println("Total Data     : " + dataStorage.size());
  23.     }
  24.    
  25.     private static void addData() {
  26.         System.out.print("Masukkan Data: ");
  27.         String tempData = extracted().nextLine();
  28.         dataStorage.add(tempData);
  29.         displayData();
  30.     }
  31.    
  32.     private static void addDataToFirst() {
  33.         System.out.print("Masukkan Data: ");
  34.         String tempData = extracted().nextLine();
  35.         dataStorage.addFirst(tempData);
  36.         displayData();
  37.     }
  38.    
  39.     private static void addDataToLast() {
  40.         System.out.print("Masukkan Data: ");
  41.         String tempData = extracted().nextLine();
  42.         dataStorage.addLast(tempData);
  43.         displayData();
  44.     }
  45.    
  46.     private static void addDataAtLocation() {
  47.         boolean status = true;
  48.         int indexData = 0;
  49.         displayData();
  50.         while(status) {
  51.             System.out.print("Pilih Index Data yang ingin disisipi data: [0-" + (dataStorage.size() - 1) + "]: ");
  52.             try {
  53.                 status = false;
  54.                 indexData = extracted().nextInt();
  55.             }
  56.             catch(InputMismatchException e) {
  57.                 System.out.println("Data harus berupa Angka!");
  58.                 status = true;
  59.             }
  60.         }
  61.         System.out.print("Data yang ingin disisipkan pada index data ke- " + indexData + ": ");
  62.         String tempData = extracted().nextLine();
  63.         dataStorage.add(indexData, tempData);
  64.         displayData();
  65.     }
  66.    
  67.     private static boolean searchData(String data) {
  68.         return dataStorage.contains(data);
  69.     }
  70.    
  71.     private static void removeData() {
  72.         boolean status = true;
  73.         int indexData = 0;
  74.         displayData();
  75.         while(status) {
  76.             System.out.print("Pilih Index Data yang ingin dihapus: [0-" + (dataStorage.size() - 1) + "]: ");
  77.             try {
  78.                 status = false;
  79.                 indexData = extracted().nextInt();
  80.             }
  81.             catch(InputMismatchException e) {
  82.                 System.out.println("Data harus berupa Angka!");
  83.                 status = true;
  84.             }
  85.         }
  86.         dataStorage.remove(indexData);
  87.         displayData();
  88.     }
  89.    
  90.     private static void removeDataAtFirst() {
  91.         dataStorage.removeFirst();
  92.         displayData();
  93.     }
  94.    
  95.     private static void removeDataAtLast() {
  96.         dataStorage.removeLast();
  97.         displayData();
  98.     }
  99.    
  100.     private static void removeDataByContent() {
  101.         displayData();
  102.         System.out.print("Masukkan Data yang ingin dihapus: ");
  103.         String data = extracted().nextLine();
  104.         if(searchData(data)) {
  105.             dataStorage.remove(data);
  106.         }
  107.         else {
  108.             System.out.println("Anda memasukkan data yang tidak tersimpan di dalam list");
  109.         }
  110.         displayData();
  111.     }
  112.    
  113.     private static void programExit() {
  114.         System.exit(0);
  115.     }
  116.    
  117.     private static void programTitle() {
  118.         System.out.println("\\nSimple Linked List Program"
  119.                          + "\\nDitulis dalam bahasa pemrograman Java"
  120.                          + "\\nOleh: Muhammad Irfan Luthfi"
  121.                          + "\\ngithub.com/milstrike\\n");
  122.     }
  123.    
  124.     private static void programSwitcher() {
  125.         boolean status = true;
  126.         int indexMenu = 0;
  127.         while(status) {
  128.             try {
  129.                 status = false;
  130.                 System.out.print("Pilih Menu [1~9]: ");
  131.                 indexMenu = extracted().nextInt();
  132.             }
  133.             catch(InputMismatchException e) {
  134.                 System.out.println("Masukan harus berupa Angka!");
  135.                 status = true;
  136.             }
  137.         }
  138.        
  139.         switch(indexMenu) {
  140.             case 1: addData(); break;
  141.             case 2: addDataToFirst(); break;
  142.             case 3: addDataToLast(); break;
  143.             case 4: addDataAtLocation(); break;
  144.             case 5: removeData(); break;
  145.             case 6: removeDataAtFirst(); break;
  146.             case 7: removeDataAtLast(); break;
  147.             case 8: removeDataByContent(); break;
  148.             case 9: programTitle(); break;
  149.             case 10: programExit(); break;
  150.         }
  151.         programMenu();
  152.     }
  153.    
  154.     private static void programMenu() {
  155.         System.out.println("\\n.: PROGRAM MENU :."
  156.                          + "\\n 1. Add Data"
  157.                          + "\\n 2. Add Data at First"
  158.                          + "\\n 3. Add Data at Last"
  159.                          + "\\n 4. Add Data at N Index"
  160.                          + "\\n 5. Remove Data at N Index"
  161.                          + "\\n 6. Remove Data at First"
  162.                          + "\\n 7. Remove Data at Last"
  163.                          + "\\n 8. Remove Data by Data Content"
  164.                          + "\\n 9. About Program"
  165.                          + "\\n10. Program Exit");
  166.         programSwitcher();
  167.     }
  168.    
  169.     public static void main(String[] args) {
  170.         programTitle();
  171.         programMenu();
  172.     }
  173. }
');