Stack java

Pengertian Stack

    Stack adalah salah satu struktur data yang ada pada bahasa pemrograman java yang memiliki karakteristik LIFO (Last in First out) yaitu data yang dimasukkan terakhir akan dieksekusi/dilayani pertama.

Analogi stack sebagai berikut

    saya memiliki 4 buah buku (1.matematika, 2. bahasa inggris, 3. bahasa indonesia, 4. agama) yang akan saya tumpuk dirak buku sesuai urutan nomornya. 

    jadwal pelajaran untuk besok adalah agama maka saya akan mengambil buku agama untuk dibawa keesokan harinya.

Ilustrasi Stack/Tumpukan


Tumpukan buku

Method-Method Pada Stack

1. Inisialisasi
    Berfungsi untuk pengidentifikasian awal ukuran stack/tumpukan
2. Empty
    Berfungsi untuk memeriksa apakah elemen stack/tumpukan kosong atau tidak
3. Insert/push
    Berfungsi untuk menginput data pada stack/tumpukan
4. Pick/Pop
    Berfungsi untuk mengambil data pada stack/tumpukan
5. Find
    Berfungsi untuk mencari suatu data pada stack/tumpukan
6. Display
    Berfungsi untuk menampilkan data pada stack/tumpukan

Contoh implementasi stack


/*
Satriadilars.blogspot.com

 */
package belajar_Stack;

public class Stack {
    public static int ukuran, top;
    public static int []stack;
    
    static void inisialisasi (int i){
        ukuran =i;
        stack =new int [ukuran];
        top=0;
    }
    static boolean isempty(){
        return top<=0;
    }
    static boolean isfull(){
        return top>=ukuran;
    }
    static void insert (int i){
        if (isfull()){
            System.out.println("Maaf, Tumpukan penuh");
        }else {
            System.out.println("Nilai "+i+" masuk tumpukan");
            stack[top++]=i;
        }
    }
    static void pick(){
        if (isempty()){
            System.out.println("Maaf, tumpukan kosong");
        }else {
            top--;
            System.out.println("Nilai "+stack[top]+" Keluar tumpukan");
        }
    }
    static void display (){
        int i=top-1;
        while (i>=0){
            System.out.println("Nilai Stack ke : "+(i+1)+" : "+stack[i]);
            i--;
        }
    }
    static void find (int i){
        boolean hasil=false;
        int temp=0;
        while (temp<top){
            if (i==stack[temp]){
                hasil=true;
                break;
            }temp++;
        }
        if (hasil)
            System.out.println("Nilai ditemukan pada tumpukan ke : ");
        else 
            System.out.println("Nilai tidak ditemukan");
    }
    public static void main(String[] args) {
        Stack a=new Stack();
        inisialisasi(5);
        a.pick();
        a.insert(1);
        a.insert(2);
        a.insert(3);
        a.insert(4);   
        a.display();
        a.pick();
        a.find(3);
        a.display();
    }  
}


Output





0 Komentar