Senin, 25 Mei 2015

Coding Netbeans | Source Code Linkedlist

Nih ana ada tugas kuliah nyari sourcecode linkedlist yang diterapkan dengan bahasa pemrograman java di aplikasi netbeans. unutk basa basi sedikit apasih itu linkedlist. Linked List adalah suatu struktur data linier. Berbeda dengan array yang juga merupakan struktur data linier dan tipe data komposit, linked list dibentuk secara dinamik. Pada saat awal program dijalankan elemen linked list belum data. Elemen linked list (disebut node) dibentuk sambil jalan sesuai instruksi. Apabila setiap elemen array dapat diakses secara langsung dengan menggunakan indeks, sebuah node linked list diakses dengan menggunakan pointer yang mengacu (menunjuk) ke node tersebut.

Langsung saja buka aplikasi netbeans dan new project :-)

Buatlah class dengan nama Node.java
Souce code:

public class Node {
private String data;
private Node next;

public Node (String isi){
data = isi;
}

public void setNext(Node n){
next = n;
}

public Node getNext(){
return next;
}

public String getData(){
return data;
}
}
Buatlah class dengan nama LinkList.java
Sourcs code :

public class LinkList {
    
   private Node first;
   private Node last;
   private Node index;
   private Node temp;

   public void addFirst(Node n){
       if(last == null){
           first = n;
           last = n;
       }
       else {
           n.setNext(first);
           first = n;
       }
   }

   public void addLast(Node n){
       if(last==null){
           last = n;
           first = n;
       }
       else{
           last.setNext(n);
           last = n;
       }
   }

   public void addAfterFirst(Node n){
       if(last==null){
           last=n;
           first=n;
       }
       else if(first==last){
           addLast(n);
       }
       else{
           Node index = first.getNext();
           n.setNext(index);
           first.setNext(n);
       }
   }

   public void addBeforeLast(Node n){
       if(last==null){
           last=n;
           first=n;
       }
       else if(first==last){
           addFirst(n);
       }
       else{
           n.setNext(last);
           Node index = first;

           while (last !=index.getNext()){
                index = index.getNext();
           }
           index.setNext(n);
       }
   }

   public Node removeFirst(){
       if(last==null || first==null){
           System.out.println("Data Kosong");
       }
       else if(first==last){
           first=null;
           last=null;
       }
       else{
           temp = first;
           first = first.getNext();
       }
       return temp;
   }

   public Node removeAfterFirst(){
       if (last==null || first==null){
           System.out.println("data Kosong");
       }
       else if(first==last){
           first=null;
           last=null;
       }
       else{
           Node temp = first.getNext();
           if(first==last){
               removeFirst();
           }
           else{
               first.setNext(temp.getNext());
           }
       }
       return temp;
   }

   public Node removeLast(){
       if(last==null || first==null){
         System.out.println("Data Kosong");
       }
       else if(last==first){
           first=null;
           last=null;
       }
       else{
           Node temp = last;
           Node index = first;
           if(first==last){
               removeFirst();
           }
           else{
               while(index.getNext() != last){
                   index = index.getNext();
               }
               last = index;
               last.setNext(null);
           }
       }
       return temp;
   }

   public Node removeBeforeLast(){
       if(last==null || first==null){
           System.out.println("Data Kosong");
       }
       else if(last==first){
           first = null;
           last = null;
       }
       else{
           Node temp = index;
           Node index = first;
           if(first==last){
               removeFirst();
           }
           else{
               while(index.getNext() != last){
                   index = index.getNext();
               }
           }
           temp = index.getNext();
           index.setNext(last);
       }
       return temp;
   }

   public Node remove(int posisi){
       if(last==null || first==null){
           System.out.print("Data Kosong");
       }
       else if(last==first){
           first=null;
           last=null;
       }
       else{
           Node index = first;
           for(int i = 0; i<=posisi-1; i++){
               index = index.getNext();
           }
           Node temp = index.getNext();
           index.setNext(temp);
       }
       return temp;
   }

   public void add(Node n, int posisi){
       if(first==null){
           addFirst(n);
       }
       else if(first==last){
           addAfterFirst(n);
       }
       else{
           Node index = first;
           for(int i =0; i
    }
    }
Buatlah class mainLinkList.java
Source code :

import java.util.Scanner;
import java.util.Date;
public class mainLinkList {
    public static void main(String []args){

        LinkList objek = new LinkList();

        boolean kondisi = true;
        Scanner kal = new Scanner(System.in);
        while(kondisi){

            System.out.println("\n\n===============================");
            System.out.println("Memilih menu.");
            System.out.println("1. Input awal.");
            System.out.println("2. Input akhir.");
            System.out.println("3. Input setelah awal");
            System.out.println("4. Input sebelum akhir.");
            System.out.println("5. Hapus awal. ");
            System.out.println("6. Hapus akhir.");
            System.out.println("7. Lihat awal.");
            System.out.println("8. Lihat akhir.");
            System.out.println("9. Tampilkan waktu.");
            System.out.println("0. Keluar.");
            System.out.print("Memilih : ");
           

           
            int menu = kal.nextInt();

            if(menu==1){
                System.out.print("Memasukan data : ");
                String inAwal = kal.next();
                Node n = new Node(inAwal);
                objek.addFirst(n);
            }
            else if(menu==2){
                System.out.print("Memasukan data : ");
                String inAkhir = kal.next();
                Node n = new Node(inAkhir);
                objek.addLast(n);
            }
            else if(menu==3){
                System.out.print("Memasukan data : ");
                String inSetAwal = kal.next();
                Node n = new Node(inSetAwal);
                objek.addAfterFirst(n);
            }
            else if(menu==4){
                System.out.print("Memasukan data : ");
                String inSetAkhir = kal.next();
                Node n = new Node(inSetAkhir);
                objek.addBeforeLast(n);
            }
            else if(menu==5){
                objek.removeFirst();
            }
            else if(menu==6){
                objek.removeLast();
            }
            else if(menu==7){
                Node n = objek.getFirst();
                System.out.println(">> "+n.getData());
            }
            else if(menu==8){
                Node n = objek.getLast();
                System.out.println(">> "+n.getData());
            }
            else if(menu==9){
                Date dt = new Date();
                int detik = dt.getSeconds();
                int menit = dt.getMinutes();
                int jam = dt.getHours();
                int har = dt.getDay();
                int tanggal = dt.getDate();
                int month = dt.getMonth();
                int tahun  =dt.getYear();

                //yang menentukan am pm
                String wkt = "AM";
                if(jam>12){
                    wkt = "PM";
                }
                System.out.print("\n===================================\n");
                String[] ha = {"Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jum,at",
"Sabtu"};
                String[] bulan = {"January", "February", "Maret", "April", "Mei", "Juni",
"Juli", "Agustus", "September", "Oktober", "November", "Desember"};
                System.out.print("Sekarang : "+jam+":"+menit+" "+wkt+"\npada "+ha[har]+
" Tgl : "+tanggal+", Bln : "+bulan[month]+" 2013");
                System.out.print("\n===================================\n");
            }
            else if(menu==0){
                System.exit(0);
                kondisi = false;
            }
            else{
                System.out.println("Situ ngisi inputnya nggak sesuai aturan,
matiin aja laptopnya");
                System.exit(0);
                kondisi = false;
            }
        }
    }
}

 Sekian dulu gan.. silahkan coba sendiri deh :-)

1 komentar: