Membuat Stack(Tumpukan) dengan Java



Stack dalam struktur data merupakan suatu tumpukan dari sekumpulan data. Konsepnya adalah LIPO (Last In First Out), data yang pertama masuk akan keluar paling akhir.

Operasi - operasi dalam stack antara lain :
1. Push   : memasukkan data
2. Pop    : mengambil / mengeluarkan data
3. IsEmpty  : memeriksa apakah stack kosong
4. IsFull      : memeriksa apakah stack penuh
5. Clear      : mengosongkan stack

berikut adalah source code nya :

/**
 *
 * @author Wim Sonevel
 */
public class Stackx {
    int data[];
    int top=-1;

    Stackx(int kapasitasData){
        data=new int[kapasitasData];
    }
   
    public boolean isFull(){
        if(top==data.length-1){
            return true;
        }else{
            return false;
        }
    }

    public boolean isEmpty(){
        if(top==-1){
            return true;
        }else{
            return false;
        }
    }

    public void push(int dataBaru){
        if(!isFull()){
            top++;
            data[top]=dataBaru;
        }else{
            System.out.println("Data sudah penuh");
        }
    }

    public void pop(){
        if(!isEmpty()){
            top--;
            System.out.println("data dikeluarkan");
        }else{
            System.out.println("Stack kosong");
        }
    }

    public void tampilkan(){
         int pencacah=0;
         while(pencacah<=top){
            System.out.print("|"+data[pencacah]+"| ");
            pencacah++;
         }
         
         if(isEmpty()){
             System.out.print("Stack Kosong");
         }
         System.out.println();
    }
}


import java.io.*;
public class AplikasiStack {
    public static void main(String[]args){
        Stackx mystack=new Stackx(3);

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        while(true){
            System.out.println("1. Push");
            System.out.println("2. Pop");
            System.out.println("3. Tampilkan data");
            System.out.println("4. Exit");

            try{
                System.out.print("pilihan anda no :");
                int pilih = Integer.parseInt(br.readLine());

                if(pilih==1){
                    System.out.print("Masukkan data :");
                    int data = Integer.parseInt(br.readLine());
                    mystack.push(data);
                }else if(pilih==2){
                    mystack.pop();
                }else if(pilih==3){
                    mystack.tampilkan();
                }else{
                    System.exit(0);
                }
            }catch(Exception e){

            }
        }     
    }
}
output :


1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :1
Masukkan data :10
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :1
Masukkan data :20
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :3
|10| |20|
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :2
data dikeluarkan
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :3
|10|
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :2
data dikeluarkan
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :3
Stack Kosong
1. Push
2. Pop
3. Tampilkan data
4. Exit
pilihan anda no :4

Post a Comment

Previous Post Next Post