STACK DALAM C++
1.
Pengertian
Stack
Stack adalah tipe data abstrak yang
umum digunakan pada seluruh pemrograman komputer. Stack
sendiri sama seperti halnya tumpukan jika di dunia nyata, misalnya tumpukan
piring yang telah selesai dicuci, akan ditumpuk dari bawah ke atas, kemudian
setelah semua bersih maka diambil satu persatu dari atas ke bawah di masukkan
ke lemari atau rak piring.
2. Penjabaran Stack
Ilustrasinya
bisa dilihat pada gambar di bawah :
Dari gambar
di atas menunjukkan bahwa data hanya dapat ditambah dari atas.
Dalam stack
ada 2 istilah yang digunakan yaitu :
· PUSH :
untuk memasukkan data; dan
· POP :
untuk mengeluarkan data.
Berikut ini
adalah ilustrasi dari PUSH :
Mula-mula
stack sudah berisi data yaitu : 24, 61, 14, dan 50. Kemudian akan dilakukan
push data 31, sehingga data pada stack menjadi 24, 61, 14, 50, dan 31.
Untuk POP
berikut ini adalah ilustrasinya :
Pada gambar
di atas bisa dijelaskan bahwa Mula-mula stack sudah berisi data yaitu : 24, 61,
14, 50 dan 31. Kemudian akan dilakukan pop data 31, sehingga data pada stack
menjadi 24, 61, 14, dan 50.
Jenis-jenis
stack ada 2 yaitu :
· SINGLE STACK; dan
· DOUBLE STACK
Disini akan membahas
SINGLE STACK saja.
Single stack sendiri dapat direpresentasikan dengan
menggunakan array 1 dimensi. Berikut ilustrasi dari single stack :
Adapun proses – proses pada single stack, yaitu :
· Awal (inisialisasi);
· PUSH : memasukkan data; dan
· POP : memunculkan data
Berikut ini
adalah kondisi-kondisi stack :
Kondisi
Stack
|
Posisi
TOP
|
KOSONG
|
Top = -1
|
PENUH
|
Top = n-1
|
BISA DIISI
|
Top < n-1
|
ADA ISINYA
|
Top > -1
|
Berikut ini
adalah algoritma dari PUSH :
if
(Top < n-1)
{
Top = Top + 1;
S[Top] = x;
}
else
cout<<“Stack
Penuh”;
PUSH dapat dilakukan jika kondisi stack BISA DIISI.
Dan ini adalah algoritma dari POP :
if
(Top > -1)
{
x = S[Top];
Top = Top - 1;
}
else
cout<<“Stack
Kosong”;
POP dapat dilakukan jika kondisi
stack ADA ISINYA.
Sekarang langsung saja kita ke
studi kasus dan source codenya pada Borland C++.
Studi kasus :
Inputkan 10 data ke stack, kemudian tampilkan data terakhir diinputkan
sampai yang pertama diinputkan.
Source code :
#include<iostream.h>
#include<conio.h>
#define
n 10
void
main()
{
int S[n];
int x,top;
top=-1;
cout<<"-------------------------------"<<endl;
cout<<"STACK"<<endl;
cout<<"-------------------------------"<<endl;
while (top<=n-1)
{
cout<<"INPUTKAN ISI STACK
: ";
cin>>x;
top=top+1;
S[top]=x;
}
cout<<"-------------------------------"<<endl;
cout<<"ISI STACK :
"<<endl;
while (top>=0)
{
x=S[top];
cout<<x<<"
";
top=top-1;
}
cout<<endl<<"-------------------------------"<<endl;
getch();
}
Inilah
hasilnya jika di run :
DAFTAR PUSTAKA
https://bekti.net/blog/implementasi-stack-di-cpp/pada tanggal 13 Maret 2019 pada
pukul 16.22 WITA
pukul 16.22 WITA
Septiawan.Dodhi.,
Juni 2015 STACK
PADA C++
http://dodhieseptiawan.blogspot.com/2015/06/stack-pada-c.html
pada tanggal 13 Maret 2019 pada pukul 16.32
WITA