0% menganggap dokumen ini bermanfaat (0 suara)
108 tayangan13 halaman

Queue

Queue adalah struktur data yang menerapkan konsep FIFO (First In First Out) dimana data pertama yang masuk akan keluar pertama. Queue digunakan untuk mengimplementasikan antrian dengan operasi enqueue untuk menambah data dan dequeue untuk menghapus data paling depan."

Diunggah oleh

Ramadhani AK
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
108 tayangan13 halaman

Queue

Queue adalah struktur data yang menerapkan konsep FIFO (First In First Out) dimana data pertama yang masuk akan keluar pertama. Queue digunakan untuk mengimplementasikan antrian dengan operasi enqueue untuk menambah data dan dequeue untuk menghapus data paling depan."

Diunggah oleh

Ramadhani AK
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 13

Queue

Queue

Queue adalah bentuk lain dari konsep implementasi linked list. Berbeda dengan Stack,
yang menerapkan konsep LIFO (Last In First Out), Queue justru mempunyai konsep
yang berbeda yakni FIFO (First In First Out).

Setiap data yang pertama kali masuk, dialah yang akan keluar duluan atau di proses
lebih dahulu.
Queue ..

Contoh paling simple dalam kehidupan sehari hari adalah antrian pengunjung bank.
Biasanya saat masuk, kita akan diberi nomor antrian terlebih dahulu sebelum
dipanggil oleh teller.

Kita akan menunggu sampai urutan kita barulah kita dapat bertransaksi di teller.
Ilustrasi dan Operasi pada Queue

Operasi enqueue

Memasukkan sebuah data atau nilai ke dalam queue.

Tail berjalan seiring masuknya data baru ke dalam


antrian, sedangkan head akan tetap pada posisi ke-1.

Operasi dequeue

Menghapuskan sebuah data atau nilai yang paling


awal masuk ke dalam queue. Operasi ini menaikkan
nilai head satu level.
Operasi dasar pada queue

Fungsi dasar queue sebagai berikut : 

Menginisialisasi queue menjadi empty queue.

Menentukan / memastikan apakah queue dalam keadaan penuh ( is full) atau
kosong (is Empty).

Apabila queue belum penuh, maka data baru akan insert ke pada bagian ujung
pangkal queue, dan jika queue kososng, maka remove dari data bagian ujung
depan queue.
Enqueue

• Operasi push pada antrian disebut juga enqueue.


• Operasi ini digunakan untuk menambah sebuah elemen baru. Elemen baru akan
dimasukkan ke belakang antrian.
• Menentukan kondisi antrian, apakah antrian dalam keadaan kosong atau tidak.
• Jika kosong maka mendeklarasikan data baru yang akan dimasukkan ke dalam antrian.
• Memasukkan nilai data yang baru.
• Melakukan perulangan untuk memasukkan data hingga batas penuh antrian dengan
cara menempatkan penunjuk front menunjuk ke elemen terdepan (head) pada antrian
dan rear menunjuk ke elemen baru yang ditambahkan dan nilai count bertambah satu .
• Jika antrian sudah penuh maka selesai.
Dequeue

• Operasi pop pada antrian disebut juga dequeue.

• Operasi ini digunakan untuk menghapus elemen pada antrian. Elemen yang akan
dihapus adalah elemen yang terletak paling depan pada antrian.

• Melakukan pengecekan kondisi antrian, ada isi data atau tidak.

• Jika terdapat data pada antrian, maka lakukan penghapusan data dengan cara
memindahkan head (elemen terdepan antrian) ke elemen setelahnya atau membuat
penunjuk front menunjuk ke elemen setelah elemen terdepan pada queue.

• Kemudian menghapus elemen terdepan antrian dan nilai count antrian berkurang satu.

• Jika tidak terdapat data pada antrian maka selesai.


Stack dan Queue

Stack = tumpukan, queue = antrian. Perbedaannya terdapat pada aturan penambahan


dan penghapusan.

Stack bersifat LIFO (Last in first out)


yaitu data yang terakhir masuk adalah data yang pertama keluar.

Queue bersifat FIFO ( First in first out)


yaitu data yang pertama masuk akan pertama kali keluar.
Stack

Kelebihan penambahan dan penghapusan data dapat dilakukan dengan cepat, yaitu O
(1). Selama memori masih tersedia, penambahan data bisa terus dilakukan. Dengan
demikian tidak ada kekhawatiran terjadinya stack overflow.

Kekurangan Setiap sel tidak hanya menyimpan value saja, melainkan juga pointer ke sel
berikutnya. Hal ini menyebabkan implementasi stack memakai linked list akan
memerlukan memori yang lebih banyak dari pada kalau di implementasikan dengan
Array.Tiap elemen pada linked list hanya bisa diakses dengan cara sekuensial, sehingga
lambat, yaitu O (n).
Queue

Kelebihan

Data yang pertama masuk maka akan pertama dilayani

Kekurangan

Data yang terakhir masuk, bila waktu pelayanan habis kemungkinan bisa tidak dilayani.
Full Source code queue
#include<stdio.h>
else
#include<conio.h>
{
#include<iostream>
cout<<"ANTRIAN PENUH";
#include<stdlib.h>
}
#define n 3
}
using namespace std;

void deleteq()
int q[n], f, r, x; //hanya menampilkan satu data terdepan
//pakai while kalau mau menampilkan semua data antrian
void awal() {
{ if(f<r+1)
f=0; {
r=-1; x=q[f];
} f=f+1;
cout<<x;
void insert() if((f==r+1) && (r==n-1))
{ {
if (r<n-1)
awal();
{ }

r=r+1; }

else
q[r]=x;

}
lanjutan
{ cout<<"MASUKKAN BILANGAN : ";
cout<<"ANTRIAN KOSONG"; cin>>x;
} insert();
} }
else {
int main() cout<<"ANTRIAN PENUH";
{ }
int pilih; goto atas;
awal(); break;
atas: case 2 :

cout<<endl<<"1. INSERT DATA"<<endl; deleteq();


break;
cout<<"2. DELETE DATA"<<endl;
case 3 :
cout<<"3. EXIT DATA"<<endl;
exit;
cout<<"MASUKKAN PILIHAN ANDA : ";
break;
cin>>pilih; default :
switch(pilih) cout<<"MASUKKAN ANGKA ANTARA 1 SAMPAI 3";
{ goto atas;

case 1 : break;
}
if(r<n-1)
getch();
{
}
Thank
You

Anda mungkin juga menyukai