STACK adalah salah satu list linear dalam struktur data yang digunakan untuk menyimpan dan mengambil data dengan konsep LIFO (Last In First Out). Dimana dalam stack ini kumpulan data yang masuk diletakkan di atas data yang lain. Dan berdasar konsep LIFO maka data yang terakhir kali disimpan dalam stack akan menjadi data yang pertama kali diambil. Dalam prosesnya, untuk memasukkan sebuah data ke dalam stack atau dengan kata lain ke bagian atas dari sebuah tumpukan digunakan perintah push. Dan untuk memindahkan data dari tempat tersebut digunakan perintah pop. Sedangkan dalam penyajiannya, stack bisa memakai array atau linked list.
Dari gambar di atas bisa dilihat bahwa data di dalam stack hanya bisa dimasukkan atau diambil melalui bagian ujung saja/top.
Operasi-operasi dasar pada stack :
a. Cek Stack kosong (Isempty)
Fungsi yang melakukan pengecekan apakah stack dalam kondisi kosong.
public int isempty() if(posisi==0) System.out.println("Data Kosong"); return 1; else System.out.println("Data ada"); return 0;
b. Cek Stack penuh (full)
Fungsi yang melakukan pengecekan apakah stack dalam kondisi penuh atau tidak.
public int full() if(posisi==MAX) System.out.println(”Stack Penuh”); return 0; else return 1;
c. Operasi Push
Operasi push dalam stack adalah operasi yang memasukkan elemen yang akan diletakkan pada posisi teratas dari tumpukan.
public void push (int data) if(posisi<MAX_STACK) isistack[++posisi] = data;
d. Operasi Pop
Operasi pop dalam stack adalah operasi untuk mengambil/menghapus elemen yang terletak pada posisi paling atas dari sebuah tumpukan.
public void pop() int y=0; if(posisi != 0) isistack[posisi--]=y;
e. Cek posisi Teratas (Peek)
Operasi peek digunakan untuk mengecek posisi teratas dalam stack.
public void peek() System.out.print("Posisi Atas= "); if(posisi != 0) System.out.print(isistack[posisi]); System.out.println();
Penerapan stack :
Stack digunakan untuk menuliskan ungkapan menggunakan notasi tertentu (Notasi Polish). Biasanya ungkapan yang digunakan adalah ungkapan numeris. Sebagai contoh ungkapan (A + B)*(C – D) apabila ditulis dengan menggunakan notasi Polish menjadi * + A B – C D.
Tidak ada komentar:
Posting Komentar