Senin, 02 Desember 2013

Stack

Stack (tumpukan) dapat dibayangkan seperti tumpukan piring atau kardus mie instant, dimana hanya data terakhir yang dapat diperoleh (diakses) dengan satu langkah. Data-data yang terletak di bawahnya hanya bisa diambil (pop) setelah data data yang berada di atasnya diambil (dikeluarkan). Sehingga stack bisa disebut dengan penyimpanan yang menggunakan mekanisme LIFO (Last In First Out). Penambahan elemen (push) dan penghapusan elemen (pop) dilakukan pada posisi yang sama.


Istilah – istilah yang sering dipakai dalam stack :
•    Push : memasukkan data baru dalam stack
•    Pop : mengeluarkan data dari stack
•    Top : data yang letaknya paling atas pada sebuahstack
Untuk Stack biasanya nama array dibuat = S.
Misal n=8
n -1

Proses awal → menyiapkan indeks penunjuk stack untuk pertama kali yaitu dengan instruksi:
Top = -1;

Kondisi single stack
 
Berikut adalah contoh implementasi penggunaan stack dengan bahasa pemrograman java :

Buat class stack1 :

package tugas_stack;

public class stack1 {
     private int Max_Stack;
    private String stack1[];
    private int top;

    public stack1(int s) {
        Max_Stack = s;
        stack1 = new String[Max_Stack];
        top = -1;
    }

    public void push(String j) {
        stack1[++top] = j;
    }

    public String pop() {
        return stack1[top--];
    }

    public String peek() {
        return stack1[top];
    }

    public boolean isEmpty() {
        return (top == -1);
    }

    public boolean isFull() {
        return (top == Max_Stack - 1);
    }

    public void cetak() {
        int i = top;
        while (i >= 0) {
            System.out.print(stack1[i]);
            System.out.print("  ");
            i--;
        }
        System.out.println("");
    }
}


Buat class stack :

package tugas_stack;

public class stack {
    public static void main(String[] args) {
        stack1 stack = new stack1(10);

        System.out.println("Melakukan Push pada stack..!!");
        stack.push("A");
        stack.cetak();
        stack.push("B");
        stack.cetak();
        stack.push("C");
        stack.cetak();
      
        System.out.println();

        System.out.println("Melakukan Pop pada stack..!!");
        stack.pop();
        stack.pop();
        stack.cetak();
        stack.cetak();
        System.out.println();
       
        System.out.println("Hasil Stack Akhir :");
        while (!stack.isEmpty()) {
            String nilai = stack.pop();
            System.out.println(nilai);
            System.out.print("");
        }
    }
}


selamat mencoba.. :)


Nama    : Nur Laily Kartiningsih
NIM     : 1200631014

Tidak ada komentar:

Posting Komentar