You are on page 1of 23

Stacks and Queues

Pengertian
Stack (Tumpukan) adalah kumpulan elemen -
elemen data yang disimpan dalam satu lajur
linear. Kumpulan elemen - elemen data hanya
boleh diakses pada satu lokasi saja yaitu posisi
ATAS (TOP) tumpukan.
Stack (Tumpukan)

Tumpukan digunakan dalam:


•algoritma pengimbas (parsing),
•algoritma penilaian (evaluation) dan
•algoritma penjajahan balik (backtrack).
Stack (Tumpukan)

Elemen-elemennya bertipe integer, real, record


dalam bentuk sederhana atau terstruktur.
Stack (Tumpukan)
Konsep utamanya adalah LIFO (Last In First Out),
benda yang terakhir masuk dalam stack akan
menjadi benda pertama yang dikeluarkan dari
stack.
Stack (Tumpukan)

Ilustrasi tumpukan (Stack) dapat digambarkan seperti


tumpukan CD atau tumpukan sate.
Stack (Tumpukan)

Tumpukan disebut juga


“Push Down Stack”
yaitu penambahan elemen baru (PUSH) dan penghapusan
elemen dari tumpukan (POP).
Stack (Tumpukan)
Operasi-operasi yang biasanya terdapat pada Stack yaitu:
1. Push : digunakan untuk menambah item pada stack pada tumpukan paling atas.
2. Pop : digunakan untuk mengambil item pada stack pada tumpukan paling atas.

3. Clear : digunakan untuk mengosongkan stack.

4. IsEmpty : fungsi yang digunakan untuk mengecek apakah stack sudah kosong.

5. IsFull : fungsi yang digunakan untuk mengecek apakah stack sudah penuh.
Stack (Tumpukan)
Pada proses Push, Stack harus diperiksa apakah jumlah
elemen sudah mencapai masimum atau tidak. Jika sudah
mencapai maksimum (OVERFLOW), artinya Stack penuh
tidak ada elemen yang dapat dimasukkan ke dalam
Tumpukan.
Pada proses Pop, Stack harus diperiksa apakah ada
elemen yang hendak dikeluarkan atau tidak. Jika tidak
ada maka UNDERFLOW, artinya Stack kosong tidak ada
elemen yang dapat diambil.
Macam – macam Stack

1. Stack dengan Array

Sesuai dengan sifat stack, pengambilan atau penghapusan elemen


dalam stack harus dimulai dari elemen teratas.

2. Double Stack dengan Array

Metode ini adalah teknik khusus yang dikembangkan untuk


menghemat pemakaian memori dalam pembuatan dua stack
dengan array. Intinya adalah penggunaan hanya sebuah array
untuk menampung dua stack.
Mendefenisikan Stack

Cara mendefenisikan Stack dengan Array of Struct yaitu:


1. Definisikan Stack dengan menggunakan struct
2. Definisikan konstanta MAX_STACK untuk menyimpan
maksimum isi stack
3. Buatlah variabel array data sebagai implementasi stack
4. Deklarasikan operasi-operasi/function di atas dan buat
implemetasinya.
I. Stacks
 A stack is a container of objects that are inserted and removed
according to the last-in-first-out ( LIFO) principle.
 Objects can be inserted at any time, but only the last (the most-
recently inserted) object can be removed.
 Inserting an item is known as “pushing” onto the stack.
“Popping” off the stack is synonymous with removing an item.
Stack
QUEUE
Antrian dalam kehidupan sehari-hari:
• antrian Mobil diloket Tol
• antrian mahasiswa Mendaftar
• antrian bank, dll
QUEUE
Queue atau antrian adalah sekumpulan data yang
mana penambahan elemen hanya bisa dilakukan
pada suatu ujung disebut dengan sisi belakang
(rear), dan penghapusan (pengambilan elemen)
dilakukan lewat ujung lain (disebut dengan sisi
depan atau front).
QUEUE
Prinsip yang digunakan adalah “Masuk Pertama
Keluar Pertama” atau FIFO (First In First Out).
QUEUE
Karakteristik Queue :
1. elemen antrian
2. front (elemen terdepan antrian)
3. tail (elemen terakhir)
4. jumlah elemen pada antrian
5. status antrian
Operasi QUEUE
• Enqueue
• Dequeue
• Queue Front
• Queue Rear
• Queue Example
Operasi QUEUE - Enqueue
 Memasukkan data baru ke rear.
Operasi QUEUE - Dequeue
 Menghapus data yang ada di front.
Operasi QUEUE - Queue front
 Mengembalikan elemen yang ada di front tanpa
menghapusnya
Operasi QUEUE - Queue rear
 Mengembalikan elemen yang ada di rear tanpa
menghapusnya
II. Queues
 A queue differs from a stack in that its insertion and
removal routines follows the first-in-first-out (FIFO)
principle.
 Elements may be inserted at any time, but only the
element which has been in the queue the longest may be
removed.
 Elements are inserted at the rear (enqueued) and
removed from the front (dequeued)

You might also like