iklan

Sunday, May 11, 2014

operasonal stack pada java menggunakan operasi single linked list beserta penjelasannya



Stack adalah sekumpulan data yang seakan-akan diletakkan diatas data yang lain.stack hanya bisa menambah atau menghapus data dari ujung atas. misalnya saya punya 5 bungkus rokok, rokok pertama itu diletakkan di atas meja kemudian rokok kedua diletakkan diatas rokok yang pertama begitupun seterusnya dan ketika ingin diambil maka rokok itu hanya diambil dari barisan paling atas, tidak bisa diambil langsung kebawa. seperti itulah kira2 gambaran dari operasi stack.

sedangkan List merupakan tipe data koleksi yang memiliki indeks kontinyu dan dapat dioperasikan secara dinamis tanpa dibatasi jumlah indeks ataupun tipe data dasarnya. LinkList adalah tipe data koleksi seperti List tetapi memiliki indeks yang diskontinyu. Indeks data LinkList tidak terkait secara fisik, namun indek data terkoneksi melalui link. berikut gambaran dari LinkList.




Dalam operasional stack menggunakan link list terdapat fungsi-fungsi yang harus ada yaitu :

1. Push
Merupakan operasi dalam stack yang digunakan untuk menambahkan data ke dalam sebuah stack.

2. pop
Merupakkan operasi dalam stack yang digunakan untuk menghapus data pada stack dari ujung atas.

3. print
print itu hanya nama dari sebuah fungsi. pada stack bisa digunakan untuk menampilkan semua data yan sudah dimasukkan kedalam stack.

berikut gambaran dari antrian stack

untuk lebih jelasnya mari kita bersama-sama belajar codingnya

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tugprak;

/**
 *
 * @author Fuad H
 */

public class stack { // sebagai class dari data yang ada
    int data;
    stack link;
}

class linklis{
    stack head; // untuk menentukan ujung dari stack

    void push(int a){  // menambah data ke dalam stack
        stack bantu = new stack();
        bantu.data=a;  // bantu itu merupakan data yang akan dimasukkan
        if(head == null){// jika headnya(ujung) itu null(tidak ada nilai)
            head = bantu;//maka head diganti dengan data yang dimasukkan
        } else { // ketiak seebaliknya
            bantu.link = head; //link dari data baru (linknya bantu) dijadikan head
            head = bantu; // headnya di pindah ke bantu lge
        }
    }

    void pop(){ // untuk menghapus data pada stack
        stack bantu=head;//karena data yang ingin di hapus adalah ujung (headnya)
        bantu=head.link;//maka bantu diarahkan ke linknya head
        head = bantu;//  kemudia head di pindah ke  bantu
    }

    void tampil(){
        stack bantu = head;
        while (bantu!=null){  // ulangi selama bantu itu tidak = kosong(null)
                System.out.println(bantu.data); //selama pengulang tampilkan data
                bantu=bantu.link; //bantu itu = link ddari bantu agar megulang sampai data terakhir
            }
        }
 
    public static void main(String[] args) {
        linklis aku = new linklis(); // pemanggilan fungsi
        aku.push(2); // menambah data yang baru
        aku.push(3);//
        aku.push(4);
        aku.push(5);
        aku.pop();  //mengapus 1 data di ujung atas
        aku.tampil(); // untuk menampilkan
    }
}


Semoga tulisan diatas berfaat
mohon maaf apabila ada kekurangan ataupun kelebihan karena saya juga masih dalam proses belajar.....
mohon dimaklumi.....
selamat mencoba dan semoga berhasil......