Stack atau Tumpukan
adalah suatu struktur data yang terbentuk dari barisan hingga yang terurut dari
satuan data. Pada Stack, penambahan dan penghapusan elemennya hanya dapat
dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut Puncak
atau Top dari stack.Pada stack berlaku konsep LIFO (Last In First Out) atau
jika di analogikan seperti memarkir kendaraan di suatu gang buntu, jika gang
terisi penuh oleh mobil sehingga mobil yang parker paling akhir akan keluar
paling awal.
Ada 2 jenis Stack yaitu :
- Single Stack
- Double Stack
Operasi-operasi pada
Stack
- Push: digunakan untuk menambah data
pada stack.
- Pop: digunakan untuk mengambil data
pada stack.
- Print: digunakan untuk mencetak semua
data.
- IsEmpty : fungsi yang digunakan untuk
mengecek apakah stack sudah kosong.
- IsFull : fungsi yang digunakan untuk
mengecek apakah stack sudah penuh.
Adapun Algoritma pada
Stack yaitu :
1.Push
2.Pop
Keterangan :
x= Variabel inputan.
S= Variabel yang
digunakan untuk menyimpan stack.
top= Tumpukan paling
atas.
Kondisi pada Stack
(Single Stack)
1.Kondisi Stack Kosong top=-1;
2.Kondisi Stack Penuh top=n-1;
3.Kondisi Stack Bisa
diisi top=n-1;
4.Kondisi Stack Ada
isinya top>-1;
Keterangan :
n= Jumlah elemen dalam stack (array)
Double Stack
Double stack / stack
ganda.Prinsip dari double stack adalah LIFO (Last In First Out) baik untuk stack1 dan stack2.
Dalam double stack terjadi beberapa proses diantaranya :
- Awal
(Inisialisasi)
- Push1 (Push
untuk stack1)
- Pop1 (Pop
untuk stack1)
- Push2 (Push
untuk stack2)
- Pop2 (Pop
untuk stack2)
Kondisi
pada Double Stack :
1.Stack1
Kosong top1=-1;
2.Stack2
Kosong top2=n;
3.Stack
Penuh top2-top1=1;
4.Stack1/2
Bisa diisi top2-top1>1;
5.Stack
1 Ada isinya top1>-1;
6.Stack
2 Ada isinya top2
Algoritma
pada Double Stack :
-Push1 : memeriksa stack1 bisa diisi
-Pop1 : memeriksa stack1 ada isinya
-Push2 : memeriksa stack2 bisa diisi
-Pop2 : memeriksa stack2 ada isinya
Studi Kasus :
1.Buatlah sebuah program
untuk menginputkan beberapa nilai pada stack/antrian !
Pembahasan :
1.Input nilai pada stack