Skip to main content

Senarai Berantai (LinkedList)t

Linked List atau senarai berantai adalah kumpulan atau koleksi dari komponen yang dinamakan node. Setiap node menyimpan informasi tentang alamat dari node berikutnya (Malik, 2003). Sebuah node terdiri dari dua bagian, yaitu data dan link.

Apabila kita menggunakan java, konsep linked list ini sudah terlingkupi dalam Java Collection Framework (JCF). Dengan Java, kita tidak perlu lagi membuat LinkedList. Kita tinggal menggunakan class yang sudah disediakan dalam JCF.
Berikut syntax yang anda tuliskan kalau anda menggunakan JCF:

import java.util.*;

public class CobaLinkedList {
    public static void main(String[] args) {
        LinkedList list = new LinkedList();
        list.add(new PhoneBook("Arwan","0812157826"));
        list.add(new PhoneBook("Roni","Ra duwe"));

        list.remove(1);
        
        Iterator it = list.iterator();
        while (it.hasNext()) {
            PhoneBook tampil = (PhoneBook) it.next();
            System.out.println("nama: " + tampil.nama);
            System.out.println("No HP: " + tampil.noHP);
        }
    }
}

class PhoneBook {
    String nama;
    String noHP;

    public PhoneBook(String nama, String noHP) {
        this.nama = nama;
        this.noHP = noHP;
    }
}

Kalau anda ingin membuat class linked list sendiri, berikut class listnya:

public class MyList {
    Object elemen;
    MyList next;

    public MyList(Object elemen) {
        this.elemen = elemen;
        this.next = null;
    }
}


Untuk menambahkan list di depan, terlebih dahulu anda harus menghubungkan list yang baru dngan list yang sudah ada, kemudian memindahkan ujung depan dari list menjadi list yang baru anda masukkan. Berikut syntax untuk tambah depan:

    public static MyList tambahDepan(MyList list, Object elemen) {
        MyList temp = new MyList(elemen);
        temp.next = list;
        return temp;
    }

Untuk menambahkan di belakang, maka terlebih dahulu anda harus mencari list yang paling belakang, kemudian mengarahkan list paling belakang ke dalam list yang baru anda masukkan. Berikut syntax untuk tambah belakang:

    public static MyList tambahBelakang(MyList list, Object elemen) {
        MyList temp = new MyList(elemen);
        MyList depan = list;
        while (list.next != null) {
            list = list.next;
        }
        // sudah di akhir
        list.next = temp;
        return depan;
    }


Untuk menambahkan di tengah, ini yang agak harus hati-hati. Jangan sampai anda menghilangkan link ke list berikutnya. Utuk itu anda harus mencari posisi yang tepat, kemudian mengarahkan link list baru anda dengan list setelah list, baru kemudian mengarahkan link dari list ke list baru anda. Berikut syntax untuk tambah tengah:

    public static MyList tambahTengah(MyList list, Object elemen, int index) {
        MyList temp = new MyList(elemen);
        MyList depan = list;
        int i=0;
        while ((list.next != null) && (i < (index-1))) {
            i++;
            list = list.next;
        }
        temp.next = list.next;
        list.next = temp;
        
        return depan;
    }

Demikian, semoga bermanfaat.

Comments

Berbagi iLmu said…
Wah.... bisa nambah ilmu nih.... :)
Makasih Pak....!

oh ya Pak...! :)
Biasanya kan Pak Arwan suka ngasih selingan video video keren waktu ngajar.... nah ini ada video keren tentang masa depan :

http://www.youtube.com/watch?v=rxVS5nYFnkA
http://www.youtube.com/watch?v=hwAYRbtcBN8

semoga bermanfaat. :)
Anonymous said…
makasih ilmunya pak..

bs sekalian contoh jadi, untuk sintak tambah depan, tengah dan belakang.

jika tidak bisa, tidak apa.

masih.
Anonymous said…
sip pak........

makasih yach pak.......
Anonymous said…
-Himawan-

Sorry pak br bisa posting! wah kalo menggunakkan Linked List dari collection Framework dapat dikolaborasikan dengan operasi hasil query dari DBMS pak!
misalnya kita mengquery suatu database hasilnya kita masukkan ke objek LinkedList yang udah terstruktur. jadi gak perlu melakukan query terus menerus khan tinggal eksplorasi data yang udah tersimpan di objek Linkedlist.

Popular posts from this blog

Find JIRA issues mentioned in Confluence Page

I have been walking through a lot of pages in internet but have not found any answer except one. However, the answer is not complete, so I will share my experience here. This feature is very useful, especially to summarize the issues found during certain tests, where the tests are reported in a confluence page. I found that there are so many questions about this, but Atlassian seems does not want to bother with this request. I found one way to do this by the following tricks Take one JIRA issue that related to the target confluence page (in this case, say it is GET-895) Find the global ID of a JIRA issue: http://bach.dc1.scram.com:8080/rest/api/latest/issue/GET-895/remotelink It will show the JSON like this: [{"id":28293,"self":"http://bach.dc1.scram.com:8080/rest/api/latest/issue/GET-895/remotelink/28293","globalId":"appId=662e1ccf-94da-3121-96ae-053d90587b29&pageId=105485659","application":{...

If and For in Wolfram Mathematica (with examples)

IF Condition in Wolfram Mathematica The syntax is as follows xxxxxxxxxx If [ condition , what to do if true , what to do if false ] Some examples Example 1. Simple command x x = - 3 ; If [ x < 0 , - x , x ] 3 Example 2. If condition in a function abs [ x_ ] := If [ x < 0 , - x , x ] abs /@ { - 3 , 2 , 0 , - 2 } { 3 , 2 , 0 , 2 }   For in Wolfram Mathematica The syntax is as follows For [ start , test , inc , what to do ] Some examples Example 1. Simple Loop xxxxxxxxxx For [ i = 0 , i < 4 , i ++, Print [ i ]] 0 1 2 3 Example 2. Another simple loop For [ i = 10 , i > 0 , i --, Print [ i ]] 10 9 8 7 6 5 4 3 2 1 Example 3. Print list a = { 10 , 3 , 9 , 2 } For [ i = 1 , i < 5 , i ++, Print [ a [[ i ]]]] 10 3 9 2  

Android studio in ubuntu - problem: 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE.

I love coding, especially Java. Because Android apps is written in Java, I would love to make one as well. Unfortunately, when I tried to install Android Studio on my Ubuntu yesterday, I got this error message: 'tools.jar' seems to be not in Android Studio classpath. Please ensure JAVA_HOME points to JDK rather than JRE. When I google on this error, there are so many websites and forums discuss about this error as well as the solutions. However, in linux (or ubuntu in my case), sometime we have different environment so that the solution will not always work (sometimes we have to do another thing before or after that solution). And this also happen in this case. Here are what I did then: 1. Know what exactly the problem is: the problem is that the JAVA_HOME in my system did not point to JDK. Instead, it points to a JRE. JRE can only be used to run java applications, not to build them. 2. Check the java path used by the system. In terminal, I typed the following: ...