Membuat Single Linked List dengan Java

Thursday, January 07, 2016
Di dalam struktur data ada istilah yang dikenal dengan Linked List. Linked list merupakan suatu kumpulan data yang tersusun secara sekuensial, saling tersambung dan dinamis. Suatu linked list berisi simpul (node) yang dikaitkan dengan simpul lainnya dalam urutan tertentu. 

Linked list adalah sejumlah node yang dihubungkan secara linier dengan bantuan pointer. Ada beberapa bentuk dari linked list yaitu single linked list, double linked list dan circular linked list.

Pada postingan ini saya fokuskan untuk membahas single linked list. Single linked list merupakan bentuk dari linked list yang paling sederhana, dimana simpul-simpul terhubung oleh suatu pointer. Struktur ini dapat dilintasi dari simpul pertama sampai simpul terakhir. Simpul yang dibuat pertama akan menjadi head dan simpul-simpul yang dibuat setelahnya akan menjadi simpul-simpul pengikut. Berikut gambaran dari single linked list : 


Sudah paham kan? Nah, selanjutnya adalah membuat linked list dalam bahasa java. Berikut saya bagikan source codenya. Saya sarankan mengetik ulang source code di bawah ini daripada mencopas, supaya agan lebih paham.

Pertama buat kelas dengan nama Node.
/**
 *
 * @author Wim Sonevel
 */
public class Node {
    
    int data;
    Node next;

    public Node(int data){
        this.data = data;
    }

    public void tampil(){
        System.out.print("{"+data+"}");
    }
}

Selanjutnya buat kelas dengan nama Linked List. Kelas ini berisi method-method yang akan digunakan untuk mengoperasikan Linked List.
/**
 *
 * @author Wim Sonevel
 */
public class LinkedList {

    Node first ;

    public LinkedList(){
        first = null;
    }

    public boolean isEmpty(){
        return (first==null);
    }

    public void addFirst(int data){
        Node node = new Node(data);
        node.next = first;
        first = node;
    }

    // Menambah data dari simpul terakhir
    public void addLast(int data){
        Node node, help;
        node = new Node(data);
        node.next = null;

        if(isEmpty()){
            first = node;
            first.next = null;
        }else{
            help = first;
            while(help.next!=null){
                help=help.next;
            }
            help.next=node;
        }
    }

    // menghapus data dari simpul pertama
    public Node deleteFirst(){
        if(!isEmpty()){
            Node temp = first;
            first = first.next;
            return temp;
        }else{
            return null;
        }
    }

    // menghapus data dari simpul terakhir
    public Node deleteLast(){
        if(!isEmpty()){
            Node temp, current;
            current=first;
            while(current.next.next != null){
                current=current.next;
            }
            temp=current.next;
            current.next=null;
            return temp;
        }else{
            Node temp = first;
            first = null;
            return temp;
        }
    }

    // menampilkan isi linked list
    public void tampilkan(){
        Node current = first;
        if(current == null){
            System.out.println("Kosong!");
        }else{
            while(current != null){
                current.tampil();
                current = current.next;
            }
            System.out.println();
        }
    }
}

Setelah itu buat kelas dengan nama LinkedListApp. Kelas ini berfungsi untuk memanggil objek kelas LinkedList.
/**
 *
 * @author Wim Sonevel
 */
public class LinkedListApp {
    public static void main(String[] args) {

        LinkedList link = new LinkedList();
        link.addFirst(1);
        link.addFirst(2);
        link.addLast(3);
        link.addLast(4);
        link.tampilkan();
        link.deleteLast();
        link.tampilkan();
       
    }
}

Output :










Sekian dari saya, semoga bermanfaat.
Happy coding :)

Share this :

Previous
Next Post »
2 Komentar
avatar

Bagaimana jika menggunkan Bubble Sort?

Balas

Penulisan markup di komentar
  • Silakan tinggalkan komentar sesuai topik. Komentar yang menyertakan link aktif, iklan, atau sejenisnya akan dihapus.
  • Untuk menyisipkan kode gunakan <i rel="code"> kode yang akan disisipkan </i>
  • Untuk menyisipkan kode panjang gunakan <i rel="pre"> kode yang akan disisipkan </i>
  • Untuk menyisipkan quote gunakan <i rel="quote"> catatan anda </i>
  • Untuk menyisipkan gambar gunakan <i rel="image"> URL gambar </i>
  • Untuk menyisipkan video gunakan [iframe] URL embed video [/iframe]
  • Kemudian parse kode tersebut pada kotak di bawah ini
  • © 2015 Simple SEO ✔

Ads