Minggu, 24 April 2011

Link List

Sebagai lanjutan dari artikel sebelumnya tentang cara menampilkan Linked List, kali ini Ane mau sedikit share tentang cara mengakses linked list.
Oke, pada contoh kali ini nama class yang berisi data adalah Kotak:
berikut ini adalah cara untuk menghapus angka setelah data yang di cari:
public Kotak hapusSetelah(int cari){
        Kotak point = awal;
        while(awal.angka != cari){//Proses selama angka awal tidak sama dengan angka yang dicari
            awal = awal.next;
        }
        return point;
    }
cara untuk menghapus data sebelum data yang dicari:
    public Kotak hapusSebelum(int cari){
        Kotak point = awal;
        while(awal.angka == cari){
            if(awal.next == null){//Proses ini mengeset nilai setelah angka yang di cari null, link list akan berhenti
                return null;
            }
        }
        return point;
    }
cara untuk menghapus salah satu data pada Link List:
Kotak point1 = awal;
        Kotak point2 = awal;
        while(point1.angka != hapus){
            if(point1.next == null){
                return null;
            }
            else{
                point2 = point1;
                point1 = point1.next;
            }
        }
        if(point1 == awal){//proses ini berlaku apabila angka yang keluar dari perulangan while adalah angka yang paling awal
            awal = awal.next;//data awal "loncat" ke data berikutnya sehingga data paling awal tidak dicetak
        }
        else{//proses ini berlaku apabila angka yang keluar dari perulangan while selain angka paling awal
            point2.next = point1.next;
        }
        return point2;
    }
cara untuk mencari data yang diinginkan:
Kotak point1 = awal;
        Kotak point2 = awal;
        while(point1.angka != cari){
            if(point1.next == null){
                return null;
            }
            else{
                point2 = point1;
                point1 = point1.next;
            }
        }
        if(point1 == awal){//apabila angka yang dicari berada paling awal
            point1.next = null;
        }
        else{//apabila angka yang dicari selain data awal
            awal = point2.next;//mengeset nilai awal menjadi data yang di cari
            point1.next = null;//mengeset nilai setelah data yang dicari adalah null, link list berhenti
        }
        return point1;
    }
cara untuk memasukkan data setelah angka yang ditunjuk:
public Kotak insertSetelah(int insert){
        Kotak masuk = new Kotak(7, 7.0, "tujuh");
        Kotak point1 = awal;
        Kotak point2 = awal;
        while(point2.angka != insert){
            if(point2.next == null){
                return null;
            }
            else{
                point2 = point1;
                point1 = point1.next;
            }
        }
        if(point2 == awal){//apabila data yang dimasukkan setelah data awal
            awal.next = masuk;
            masuk.next = point1;
        }
        else{//apabila data yang dimasukkan setelah data selain
            point2.next = masuk;
            masuk.next = point1;
        }
        return point1;
    }
cara untuk memasukkan data sebelum angka yang ditunjuk:
    public Kotak insertSebelum(int insert){
        Kotak masuk = new Kotak(6, 6.0, "enam");
        Kotak point1 = awal;
        Kotak point2 = awal;
        while(point1.angka != insert){
            if(point1.next == null){
                return null;
            }
            else{
                point2 = point1;
                point1 = point1.next;
            }
        }
        if(point1 == awal){
            point1 = null;
        }
        else{
            point2.next = masuk;
            masuk.next = point1;
        }
        return point1;
    }

Jangan lupa bahwa method di atas diletakkan di class KotakList. Untuk lebih jelasnya lihat artikel sebelumnya.
Semoga artikel ini bermanfaat. Mohon maap apabila ada kesalahan :)

Pada artikel mendatang akan dijelaskan tentang penerapan link list.Check it out!!!

Tidak ada komentar:

Posting Komentar