Stack (Tumpukan)
Stack (Tumpukan)
TI Politala Algoritma Pemrograman 2B
A. Pengertian Stack (Tumpukan)
Stack (tumpukan) merupakan
sebuah cara dalam mengorganisasikan data-data yang dimiliki. Stack digunakan
sebagai penyimpanan data di dalam memori. Stack merupakan suatu tumpukan dari
benda dengan konsep utamanya adalah LIFO (Last In First Out). Dalam artian
benda yang masuk terakhir dalam stack akan menjadi benda pertama yang
dikeluarkan dari stack.
B. Operasi Dasar Stack
Ada
beberapa operasi-operasi dalam stack:
1. Push
yaitu untuk menambahkan item pada
tumpukan paling atas.
Langkah-langkah
operasi stack yaitu:
a.
Memeriksa tumpukan apakah penuh atau tidak
b.
Jika tumpukan penuh dan tak ada ruang untuk memasukkan data, maka cukup
tampilkan pesan bahwa tumpukan sudah penuh.
c.
Jika tumpukan tidak penuh dan masih ada ruang, maka tambahkan satu nilai pada
tumpukan atas (top) untuk menunjukkan ke ruang kosong selanjutnya.
d.
Tambahkan data pada ruang kosong yang ditunjukan oleh top
Contoh
potongan program operasi push
If
(top < n-1)
{
top = top + 1;
S[top] = x;
}
Else
{
Cout<<”stack
Penuh”;
}
2. Pop
yaitu untuk mengambil item yang paling
atas.
Langkah-langkah
operasi pop yaitu:
a. Memeriksa
tumpukan apakah kosong atau tidak
b. Jika
tumpukan kosong dan sudah tidak ada data untuk dihapus, maka cukup tampilkan
pesan bahwa tumpukan kosong
c. Jika
tumpukan tidak kosong, maka akses data yang paling atas (top).
d. Kemudian
kurangi nilai dengan petunjuk dari top
Contoh
potongan program operasi pop :
If
(top > -1)
{
x = S[top];
Top=
top-1;
}
Else
{
Cout<<”stack
kosong”;
}
3. Clear
yaitu untuk mengosongkan stack.
4. IsEmpty
yaitu fungsi yang digunakan untuk mengecek apakah stack sudah kosong. IsFull
yaitu fungsi yang digunakan untuk mengecek apakah stack sudah penuh.
5. Selain
operasi-operasi diatas, ada operasi lain yang dapat terjadi dalam stack yaitu:
6. Proses
deklarasi yaitu proses pendeklarasian stack.
7. Proses
inisialisasi yaitu proses pembuatan stack kosong, biasanya dengan pemberian
nilai untuk top.
C. Program STACK
1. Untuk mendeklarasikan program stack pada c++,
dibutuhkan 3 metode yaitu fungsi push( );, pop( );, dan printStack( ); untuk
menampilkan data yang ditumpukkan.
2.
Selain fungsi diatas, buat 2 fungsi opsional untuk mengecek apakah tumpukan
kosong isEmpty( ) dan tumpukan penuh isFull( ).
3.
Untuk menyimpan data dapat menggunakan empety array dengan maksimum array yang
akan didefinisikan sebagai maksimum tumpukan.
4.
Agar data tumpukkan terstruktur kita bisa menggunakan struct sehingga mudah
mengakses data top dan array data seperti sebuah object.
5.
Karena merupakan program konsole maka juga akan dibuat fungsi main( ).
Contoh Program Stack
#include <iostream>
using namespace std;
#define MAXSTACK 5
typedef struct
{
char item [MAXSTACK];
int top;
}stack;
void InisialsasiStack (stack &s)
{
s.top = 0;
}
int IsFull(stack &s)
{
if (s.top == MAXSTACK)
return 1;
else
return 0;
}
bool push (stack &s, char c)
{
if (IsFull(s))
{
cout<<" Stack Penuh"<<endl;
return 1;
}
else
{
s.top++;
s.item[s.top]=c;
return 0;
}
}
bool IsEmpty(stack &s)
{
if (s.top == 0)
{
return true;
}
else
{
return false;
}
}
char pop (stack &s)
{
char c =' ';
if (!IsEmpty(s))
{
c = s.item[s.top];
s.item[s.top]=' ';
s.top=s.top-1;
}
return c;
}
int main()
{
stack stack;
InisialsasiStack(stack);
push(stack, 'A');
push(stack, 'D');
push(stack, 'F');
push(stack, 'C');
push(stack, 'A');
push(stack, 'X');
push(stack, 'Y');
push(stack, 'Z');
cout<<" Urutan teratas : "<<stack.top<<endl;
cout<<" Isi urutan teratas : "<<stack.item[stack.top]<<endl;
cout<<" Urutan yang keluar : "<<pop(stack)<<endl;
return 0;
}
Hasil Running :
Download juga contoh program Stack lainya pada link dibawah ini :
DAFTAR PUSTAKA
http://www.klikartikel.com/2014/12/mengenal-stack-pada-c.html
https://bekti.net/blog/implementasi-stack-di-cpp/
https://primaangelsnote.blogspot.com/2019/03/algoritma-dan-pemrograman-2-stuck.html
0 komentar:
Posting Komentar