Stack dan Queue


Stack dan Queue
Stack merupakan tumpukan, sedangkan queue merupakan antrian.
Pengertian keduanya, yaitu:
*     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. Tumpukan digunakan dalam algoritma pengimbas (parsing), algoritma penilaian (evaluation) dan algoritma penjajahan balik (backtrack). Elemen-elemen di dalam tumpukan dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur. Stack (tumpukan) sebenarnya secara mudah dapat diartikan sebagai list (urutan) dimana penambahan dan pengambilan elemen hanya dilakukan pada satu sisi yang disebut top (puncak) dari stack.

Dengan melihat definisi tersebut maka jelas bahwa pada stack berlaku aturan LIFO (Last In First Out), yaitu elemen yang terakhir masuk akan pertama kali diambil atau dilayani. Salah satu analogi yang dapat dikemukakan di sini adalah tumpukan piring atau barang lain. Pada saat kita hendak menumpuk piring-piring tersebut tentulah yang kita lakukan adalah meletakkan piring pertama pada tempatnya, selsnjutnya meletakkan piring kedua di atas piring pertama dan demikian seterusnya. Pada saat kita hendak mengambil satu piring dari tumpukan tersebut, tentu yang diambil adalah piring teratas (yang terakhir kali ditaruh), bukan yang terbawah (yang pertama kali diletakkan).

Dua operasi dasar pada stack adalah PUSH (operasi pemasukan elemen ke dalam stack) dan POP (operasi pengambilan satu elemen dari dalam stack).

Contoh dalam Kehidupan sehari-hari :
-        Setumpuk koran, dimana koran yang paling terakhir ditambahkan dan ditaruh diatas adalah koran yang dapat dilihat
-        Seseorang yang sedang mencuci piring, piring yang dicuci pertama pasti akan diletakan dibawah dan akan terus berlanjut sampai tumpukan piring yang terakhir dicuci. Lalu, piring pasti akan di taruh di rak piring dan pasti yang diambil adalah piring yang paling atas yaitu piring yang terakhir dicuci dan yang pertama dicuci pasti akan terakhir.
-        Tumpukan Batu bata yang sedang diturunkan dari mobil pasti yang diambil adalah batu bata yang paling atas, padahal batu bata pertama yang dimasukkan kedalam mobil adalah batu bata yang berada dibawahnya.

Jadi, Stack yaitu sebuah koleksi objek yang menggunakan prinsip LIFO(Last In First Out) dan Stack dapat diimplementasikan sebagai representasi berkait atau kontinyu. Ciri-Ciri Stack diantaranya :
-        Elemen TOP/Puncak diketahui
-        Penyisipan dan Penghapusan selalu dilakukan di TOP
-        LIFO(Last In First Out) 
-        Pemanfaatan Stack yaitu :
Ø  Perhitungan Ekspresi Aritmatitika (posfix)
Ø  Algoritma Backtracking (runut balik)
Ø  Algoritma Rekursif

Operasi Stack yang biasa digunakan diantaranya yaitu :
1.      Push untuk memasukkan atau menginputkan data
2.      Pop  untuk mengeluarkan data
3.      IsFull untuk mengetahui jika tumpikan sudah penuh
4.      IsEmpety untuk mengetahui tumpukan yang kosong, dan
5.      Clear untuk menghapus seluruh data atau membersihkan data. 




*     Queue atau antrian sebenarnya juga merupakan suatu list. Salah satu sifat yang membedakan queue dengan stack adalah bahwa pada queue penambahan elemen dilakukan pada salah satu ujung (ujung depan) dan pengambilan dilakukan pada ujung yang lain (ujung belakang) . Dengan demikian queue menggunakan prinsip FIFO (First In First Out), yaitu elemen yang pertama masuk akan pertama kali pula dikeluarkan. Seperti pada stack, operasi-operasi dasar pada queue adalah operasi penambahan elemen ( sebut "ADDQ") dan operasi pengambilan elemen (sebut DELQ). Di bawah ini diberikan contoh pemakaian operasi PUSH dan POP dan isi stack untuk setiap selesai eksekusi satu operasi.
Sebuah queue di dalam program komputer dideklarasikan sebagai sebuah tipe bentukan baru. Sebuah struktur data dari sebuah queue setidaknya harus mengandung dua tiga variabel, yakni variabel head yang akan berguna sebagai penanda bagian depan antrian, variabeltail yang akan berguna sebagai penanda bagian belakang antrian dan array dari yang akan menyimpan data-data yang dimasukkan ke dalam queue tersebut.

Queue mempunyai beberapa fungsi operasi diantaranya yaitu :
-        EnQueue untuk Memasukkan data kedalam Antrian
-        DeQueue untuk Mengeluarkan data kedalam Antrian.
-        IsFull untuk memeriksa apakah antrian Penuh
-        IsEmpety untuk memeriksa apakah antrian Kosong
-        Clear untuk Menghapus seluruh Antrian.

Dalam kehidupan sehari-hari, ada banyak sekali tentang Queue atau antrian. Contohnya adalah sebagai berikut:
·        Saat seseorang mengantri di sebuah Bank
·        Antrian Loket pembelian sebuah tiket Pesawat, Kereta Api, dan lainnya
·        Pembayaran Tol dan sebagainya.

Contoh dalam Pembelian Tiket Kereta Api :
·        Enqueue  : Seseorang membeli tiket melalui tempat pembayaran tiket yang disediakan.
·        Dequeue  : Setelah membeli tiket, langsung menuju tempat tunggu Kereta Api, dengan sebelumnya petugas memeriksa cek tiket tersebut.
·        Clear    : Pembeli tiket tersebut telah terhapus dari antrian karena sudah melewati pembayaran administrasi tersebut.
·        IsEmpty  : Petugas tiket Kereta  Api melihat tidak ada lagi yang ingin membeli tiket kereta.
·        IsFull       : Petugas Tiket Kereta Api melihat masih ada pembeli tiket kereta.





Komentar

Postingan populer dari blog ini

Linked list - Binery Search Tree

Binary Search Tree