STACK
1.
Pengertian Stack
Stack pada struktur
data adalah sebagai tumpukan dari
benda, sekumpulan data yang seolah-olah
diletakkan di atas data yang lain, koleksi dari objek-objek homogen, atau suatu urutan elemen yang elemennya dapat diambil dan
ditambah hanya pada posisi akhir (top)
saja. Secara sederhana
tumpukan bisa diartikan sebagai kumpulan data yang seolaholah diletakkan di
atas data yang lain. Dalam suatu tumpukan akan dapat dilakukan operasi
penambahan (penyisipan) dan pengambilan (penghapusan) data melalui ujung yang
sama, ujung ini merupakan ujung atas tumpukan. Stack pada Struktur
Data dapat diilustrasikan
dengan dua buah kotak yang ditumpuk, kotak yang satu akan ditumpuk diatas kotak
yang lainnya. Jika kemudian stack 2 kotak tadi, ditambah kotak ketiga, keempat,
kelima, dan seterusnya, maka akan diperoleh sebuah stack kotak yang terdiri
dari N kotak. Konsep dasar pada stack sendiri adalah LIFO (Last In First Out) yang artinya data
tersebut terakhir masuk namun data itu keluar pertama kali
2.
Operasi pada Stack
Stack memiliki beberapa operasi, yaitu:
a.
Top
Digunakan
untuk melihat data pada tumpukan paling atas.
b.
Is Empty
Digunakan
untuk memeriksa apkah stack masih dalam kondisi kosong yaitu dengan cara
memeriksa TOP of Stack. Jika TOP masih
= -1 maka berarti stack masih kosong.
c.
Is Full
Digunakan
untuk memeriksa apakah kondisi stack
sudah penuh, dengan cara menambah satu (increment)
nilai TOP of Stack setiap ada
penambahan elemen stack selama stack masih belum penuh atau dengan
mengisikan nilai baru ke stack
berdasarkan indeks TOP of Stuck
setelah di tambah satu (increment).
d.
Push
Digunakan
untuk memasukkan elemen ke dalam stack
dan selalu menjadi elemen teratas stack,
yaitu dengan menambah satu (increment)
nilai TOP of Stack setiap ada
penambahan elemen stack selama stack
masih belum penuh atau dengan mengisikan nilai baru ke stack berdasarkan indeks TOP of Stack setelah ditambah satu (di increment).
e.
Pop
Digunakan
untuk menghaus elemen yang berada pada posisi paling atas dari stack. Dengan cara:
1.
Mengambili lebih
dahulu nilai elemen teratas stack
dengan mengakses TOP of Stack.
2.
Menampilkan
nilai yang akan diambil.
3.
Melakukan decrement nilai TOP of Stack sehingga jumlah elemen stack
berkurang 1.
f.
Create empty
Digunakan
untuk mengosongkan tumpukan.
g.
Clear
Digunakan
untuk mengosongkan stack/membuat stack hampa sehingga top pada stack berada kembali di posisi top = -1.
3.
Contoh Program Stack
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
struct stack
{
int data[5];
int atas;
};
stack tumpuk;
void main()
{
clrscr();
int pilihan, baru, i;
tumpuk.atas=-1;
do
{
clrscr();
cout<<"1. PUSH DATA"<<endl;
cout<<"2. POP DATA"<<endl;
cout<<"3. PRINT DATA"<<endl<<endl;
cout<<"MASUKKAN PILIHAN : ";
cin>>pilihan;
switch (pilihan)
{
case 1 :
if(tumpuk.atas==5-1)
{
cout<<"TUMPUKAN
PENUH";
getch();
}
else
{
cout<<"MASUKKAN DATA : ";
cin>>baru;
tumpuk.atas++;
tumpuk.data[tumpuk.atas]=baru;
}
break;
case 2 :
if(tumpuk.atas==-1)
{
cout<<"TUMPUKAN
KOSONG";
getch();
}
else
{
cout<<"DATA YANG AKAN
DI POP ="<<tumpuk.data[tumpuk.atas]<<endl;
tumpuk.atas--;
getch();
}
break;
case 3 :
if(tumpuk.atas==-1)
{
cout<<"TUMPUKAN KOSONG";
getch();
}
else
{
cout<<"DATA - "<<endl;
for(i=tumpuk.atas;
i>=0; i--)
{
cout<<tumpuk.data[i]<<ends;
}
getch();
}
break;
default :
cout<<"TIDAK ADA DALAM PILIHAN";
break;
}
}
while((pilihan>=1) && (pilihan<=3));
getch();
}
|
SUMBER:
https://www.slideshare.net/MetaPratamaN/stack-49895480
http://suputradwipratama274.blogspot.com/2015/06/v-behaviorurldefaultvmlo.html
http://belajarstackbareng.blogspot.com/p/operasi-pada-stack_27.html
http://aditajulian05.blogspot.com/2017/04/makalah-struktur-data-stack.html