BrigitaMailaFeriyaniWensen
202001016
Sistem Informasi
What is Queue ?
Queue / Antrian
Queue/ Antrian adalah
suatu kumpulan data yang
mana penambahan elemen
hanya bisa dilakukan
pada satu ujung dan
penghapusan atau
pengambilan elemen
dilakukan lewat ujung
lain.
Menggunakan prinsip FIFO
(First In First Out)
yaitu pertama masuk
pertama keluar artinya
masuk sama dengan urutan
keluar.
Queue serta proses enqueue dan dequeue
Queue dengan 2 elemen
Queue setelah proses
enqueue C,D, dan E
Setelah proses dequeue
A dan B
Karakteristik Queue
Item item data yang
terdapat di elemen
antrian.
Elemen antrian
01
Elemen terdepan
antrian.
Front
03
Elemen terakhir dari
antrian.
Rear
02
Count yaitu jumlah
elemen pada antrian.
Count dan status
antrian
04
KEGUNAAN QUEUE
Kegunaan Queue yaitu untuk simulasi
fenomena antrian di dunia nyata serta
fenomena antrian di pengolahan data.
Algoritma Queue juga digunakan dalam
system operasi untuk mengontrol urutan
proses operasi system.
#define MAK 8
Typedef struct{
Int data[MAK];
Int head;
Int tail;
} Queue;
Queue antrian;
OPERASI – OPERASI PADA QUEQUE
3. Isfull()
2. Is Empty()
4. Enqueue(data)
5. Dequeue()
1. Create()
6. Clear()
1. Create()
 Untuk menciptakan
dan menginisialisasi
Queue
 Dengan cara membuat
head dan tail =-1
Void Create () {
Antrian.head=antrian.
tail=-1; }
2. Is Empty()
 Untuk memeriksa apakah
antrian sudah penuh atau
belum.
 Dengan cara memeriksa
nilai tail, jika tail =
-1 maka empty.
Int Isemty() {
If(antrian.tail==-1)
Return 1;
Else
Return 0; }
3. IsFull()
 Untuk mengecek
apakah antrian sudah
penuh belum.
 Dengan cara mengecek
nilai tail,jika tail
== MAX-1 (karena
MAX-1 adalah batas
elemen array)
berarti sudah penuh.
Int IsFull() {
If (antrian.tail==MAX-1)
Return 1;
Else Return 0; }
ILUSTRASI
4. Enqueue(data)
 Untuk menambahkan
elemen ke dalam
antrian, penambahan
elemen selalu di
elemen paling
belakang.
 Penambahan elemen
selalu menggerakkan
variable tail dengan
cara increment
counter tail.
Void Enqueue (int data) {
If(IsEmpty()==1{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d masuk!",antrian.data[antrian.tail]);}
else if(Isfull() ==0) {
antrian.tail++;
antrian.data[antrian.tail]=data;
Printf("%d masuk!", antrian.data[antrian.tail]);
} }
ILUSTRASI
5.Dequeue ()
 Digunakan untuk menghapus elemen
terdepan/pertama dari antrian.
 Dengan cara mengurangi counter tail dan
menggeser semua antrian ke depan.
 Penggeseran dilakukan dengan menggunakan
looping.
6. Clear ()
 Untuk menghapus elemen elemen antrian dengan
cara membuat tail dan head =-1.
 Penghapusan elemen elemen antrian sebenarnya
tidak menghapus arraynya, namun hanya mengeset
indeks pengaksesan-nya ke nilai -1 sehingga
elemen elemen antrian tidak lagi terbaca.
• Queue dengan Linear
Array
• Queue dengan
Circular Array
 Linear Array adalah suatu array yang dibuat
seakan akan merupakan garis lurus dengan satu
pintu masuk dan satu pintu keluar.
 Terdapat satu buah pintu masuk di suatu ujung
dan satu buah pintu keluar di ujung satunya.
 Sehingga membutuhkan variable misalnya Head dan
Tail.
Queue dengan linear array
Ilustrasi Linear Queue
Dapat dilihat bahwa setiap
terjadi penghapusan elemen
pada queue nilai (index)
dari FRONT bertambah satu
(1) ; dapat ditulis FRONT =
FRONT + 1.
Begitu pula bila terjadi
penambahan elemen pada queue
nilai (index) Rear bertambah
satu (1); dapat ditulis REAR
= REAR + 1.
• Artinya array dapat diakses mulai dari sembarang
indeks (indeks awal) karena indeks terakhir (mak
array), lalu memutar ke indeks pertama hingga Kembali
ke indeks awal.
• Circular array adalah array yang dibuat seakan akan
merupakan sebuah lingkaran dengan titik awal dan
titik akhir saling bersebelahan jika array tersebut
masih kosong. Jumlah data yang dapat ditampung oleh
array ini adalah besarnya ukuran array dikurangi 1.
• Misalnya besar array adalah 8, maka jumlah data yang
dapat ditampung adalah 7.
Queue dengan circular array
Ilustrasi Circular Queue
https://project.ptputrafajar.com/contoh-
program-queue-c-lengkap-dengan-penjelasan/
https://docplayer.info/37287024-Algoritma-
dan-struktur-data-array-stack-dan-queue.html
https://slideplayer.info/slide/3977828/
https://www.scribd.com/doc/208603023/PPT-
Queue-C
Referensi
THANKS

Queue

  • 2.
  • 3.
  • 4.
    Queue / Antrian Queue/Antrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada satu ujung dan penghapusan atau pengambilan elemen dilakukan lewat ujung lain.
  • 5.
    Menggunakan prinsip FIFO (FirstIn First Out) yaitu pertama masuk pertama keluar artinya masuk sama dengan urutan keluar.
  • 6.
    Queue serta prosesenqueue dan dequeue Queue dengan 2 elemen Queue setelah proses enqueue C,D, dan E Setelah proses dequeue A dan B
  • 7.
    Karakteristik Queue Item itemdata yang terdapat di elemen antrian. Elemen antrian 01 Elemen terdepan antrian. Front 03 Elemen terakhir dari antrian. Rear 02 Count yaitu jumlah elemen pada antrian. Count dan status antrian 04
  • 8.
    KEGUNAAN QUEUE Kegunaan Queueyaitu untuk simulasi fenomena antrian di dunia nyata serta fenomena antrian di pengolahan data. Algoritma Queue juga digunakan dalam system operasi untuk mengontrol urutan proses operasi system.
  • 9.
    #define MAK 8 Typedefstruct{ Int data[MAK]; Int head; Int tail; } Queue; Queue antrian;
  • 10.
    OPERASI – OPERASIPADA QUEQUE 3. Isfull() 2. Is Empty() 4. Enqueue(data) 5. Dequeue() 1. Create() 6. Clear()
  • 11.
    1. Create()  Untukmenciptakan dan menginisialisasi Queue  Dengan cara membuat head dan tail =-1 Void Create () { Antrian.head=antrian. tail=-1; }
  • 12.
    2. Is Empty() Untuk memeriksa apakah antrian sudah penuh atau belum.  Dengan cara memeriksa nilai tail, jika tail = -1 maka empty. Int Isemty() { If(antrian.tail==-1) Return 1; Else Return 0; }
  • 13.
    3. IsFull()  Untukmengecek apakah antrian sudah penuh belum.  Dengan cara mengecek nilai tail,jika tail == MAX-1 (karena MAX-1 adalah batas elemen array) berarti sudah penuh. Int IsFull() { If (antrian.tail==MAX-1) Return 1; Else Return 0; }
  • 14.
  • 15.
    4. Enqueue(data)  Untukmenambahkan elemen ke dalam antrian, penambahan elemen selalu di elemen paling belakang.  Penambahan elemen selalu menggerakkan variable tail dengan cara increment counter tail. Void Enqueue (int data) { If(IsEmpty()==1{ antrian.head=antrian.tail=0; antrian.data[antrian.tail]=data; printf("%d masuk!",antrian.data[antrian.tail]);} else if(Isfull() ==0) { antrian.tail++; antrian.data[antrian.tail]=data; Printf("%d masuk!", antrian.data[antrian.tail]); } }
  • 16.
  • 17.
    5.Dequeue ()  Digunakanuntuk menghapus elemen terdepan/pertama dari antrian.  Dengan cara mengurangi counter tail dan menggeser semua antrian ke depan.  Penggeseran dilakukan dengan menggunakan looping.
  • 19.
    6. Clear () Untuk menghapus elemen elemen antrian dengan cara membuat tail dan head =-1.  Penghapusan elemen elemen antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen elemen antrian tidak lagi terbaca.
  • 21.
    • Queue denganLinear Array • Queue dengan Circular Array
  • 22.
     Linear Arrayadalah suatu array yang dibuat seakan akan merupakan garis lurus dengan satu pintu masuk dan satu pintu keluar.  Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya.  Sehingga membutuhkan variable misalnya Head dan Tail. Queue dengan linear array
  • 23.
    Ilustrasi Linear Queue Dapatdilihat bahwa setiap terjadi penghapusan elemen pada queue nilai (index) dari FRONT bertambah satu (1) ; dapat ditulis FRONT = FRONT + 1. Begitu pula bila terjadi penambahan elemen pada queue nilai (index) Rear bertambah satu (1); dapat ditulis REAR = REAR + 1.
  • 24.
    • Artinya arraydapat diakses mulai dari sembarang indeks (indeks awal) karena indeks terakhir (mak array), lalu memutar ke indeks pertama hingga Kembali ke indeks awal. • Circular array adalah array yang dibuat seakan akan merupakan sebuah lingkaran dengan titik awal dan titik akhir saling bersebelahan jika array tersebut masih kosong. Jumlah data yang dapat ditampung oleh array ini adalah besarnya ukuran array dikurangi 1. • Misalnya besar array adalah 8, maka jumlah data yang dapat ditampung adalah 7. Queue dengan circular array
  • 25.
  • 26.
  • 27.