Queue dan Stack

1.  Pengenalan Queue

Queue jika diartikan secara harfiah, queue berarti antrean, Queue merupakan suatu struktur data linear. Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan penghapusan pada ujung yang bebeda. Pada Stack atau tumpukan menggunakan prinsip “Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada Queue atau antrean prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out). Data-data di dalam antrean dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur.

Queue (antrean) adalah salah satu list linier dari struktur data yang beroperasi dengan cara First In First Out (FIFO) yaitu elemen pertama yang masuk merupakan elemen yang pertama keluar. Contohnya, ialah dalam sebuah antrean pembelian tiket bagi yang pertama masuk maka dia pulalah yang pertama keluar/selesai. Untuk penyisipan (INSERT) hanya dapat dilakukan pada satu sisi yaitu sisi belakang (REAR), sedangkan untuk penghapusan (REMOVE) pada sisi depan (FRONT) dari list.      

Queue/antrean adalah ordered list dengan penyisipan di satu ujung, sedang penghapusan di ujung lain. Ujung penyisipan biasa disebut rear/tail, sedang ujung penghapusa disebut front/head. Fenomena yang muncul adalah elemen yang lebih dulu disisipkan akan juga lebih dulu diambil. Queue merupakan kasus khusus ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan optimasi representasi ADT Queue untuk memperoleh kerja paling optimal.

Misalnya Queue Q= (a1,a2,a3…,an), maka:
1.      Elemen a1 adalah elemen paling depan
2.      Elemen ai adalah diatas elemen ai-1, di mana 1<i<n.
3.      Elemen an adalah elemen paling belakang.

Head (Front) menunjuk ke awal antrean Q (elemen terdepan), sedangkan tail (rear)menunjuk akhir antrean Q (elemen paling belakang). Disiplin FIFO pada Queue berimplikasi jika elemen A, B, C, D, E dimasukkan ke Queue, maka penghapusan/ pengambilan elemen akan terjadi dengan urutan A, B, C, D, E.

Sebagai gambaran, cara kerja queue dapat disamakan pada sebuah antrean di suatu loket dimana berlaku prinsip ‘Siapa yang duluan antre dia yang akan pertama kali dilayani‘, sehingga dapat dikatakan prinsip kerja queue sama dengan prinsip sebuah antrean.   

2.  Pengenalan Stack

Stack juga termasuk salah satu jenis list. Dalam bahasa indonesia stack biasa disebut juga sebagai tumpukan. Sama seperti queue, stack juga memiliki sifat atau operasi tertentu yang membedakannya dari list secara umum. Ukuran stack dapat ditentukan pada saat deklarasi. Jadi stack tersebut hanya mampu menampung sekian elemen sesuai dengan yang dideklarasikan di awal. Hal ini menyebabkan adanya operasi pada stack untuk mengetahui kondisi stack apakah kosong  (isEmpty) atau penuh (isFull). Selain itu, ada dua operasi pada stack yaitu menambahkan tumpukan (Push) atau mengambil tumpukan (Pop). Perintah Push akan menambah jumlah elemen dalam tumpukan dan harus didahului dengan perintah isFull. Hal ini dilakukan untuk menjamin bahwa masih ada ruang yang kosong untuk menambahkan elemen baru pada stack. Adapun perintah Pop akan mengambil elemen paling atas pada tumpukan sehingga jumlah elemen berkurang dan harus didahului dengan perintah isEmpty. Mengapa? karena sebelum mengambil sebuah elemen pada stack harus dipastikan dulu bahwa stack tersebut tidak kosong. Berbeda dengan Queue, Stack menganut prinsip Last In First Out (LIFO). Elemen yang terakhir masuk ke dalam stack akan pertama kali dikeluarkan karena sifat stack yang membatasi operasi hanya bisa dilakukan pada salah satu sisinya saja (bagian atas tumpukan).




Komentar

Postingan populer dari blog ini

SEJARAH KOMPUTER DARI GENERASI KE GENERASI

Sejarah Android