Stack


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