Anda di halaman 1dari 12

STRUKTUR DATA & ALGORITMA

“QUEUE dan CIRCULAR QUEUE”

Disusun untuk memenuhi tugas


Mata Kuliah : Struktur Data dan Algoritma
Dosen Mata Kuliah : Mirza Sutrisno, S.Si., M.Kom.

Disusun oleh Kelompok 3 :


Muhammad Farhan – 22040700056 (Ketua
kelompok)
Aryaguna Fadlurrahman Priadi – 22040700012
Muhammad Daffa Saptrian – 22040700033
Muhammad Ihsanul Amal – 22040700026
Putra Pebriano Nurba – 22040700039
Yasir Abduzzhohir – 22040700053

KELAS A1
JURUSAN TEKNIK INFORMATIKA
FAKULTAS TEKNIK
UNIVERSITAS MUHAMMADIYAH JAKARTA
2023
KATA PENGANTAR
Puji syukur kita panjatkan kehadirat Allah SWT atas limpahan nikmat rahmat dan
hidayah-Nya sehingga makalah ini dapat tersusun dengan baik dan tepat waktu.

Adapun tujuan dibuatnya makalah ini ialah demi memenuhi tugas Stuktur Data
dan Algoritma yang membahas tentang “Queue dan Circular Queue”. Dalam
penyusunan makalah ini, kami mendapat banyak bantuan dari pihak-pihak
tertentu. Maka dari itu, kami mengucapkan banyak terima kasih atas bantuan dan
dukungannya dalam penyelesaian makalah ini.

Meskipun kami telah berusaha sebaik mungkin untuk menyempurnakan makalah


ini, namun tentunya masih banyak kesalahan yang terdapat di dalamnya karena
tidak ada yang sempurna di dunia ini. Oleh karenanya, kami meminta maaf dan
memohon agar pembaca member kritik dan saran agar dimasa mendatang
makalah selanjutnya akan lebih baik lagi. Semoga makalah ini bermanfaat bagi
para pembacanya terlebih terhadap kami sendiri.

Jakarta, 25 Maret 2023

Kelompok 3
DAFTAR ISI
BAB I
PENDAHULUAN

I.1. Latar Belakang

Dalam pemrograman, struktur data sangat penting untuk menyimpan,


mengakses, dan memanipulasi data. Salah satu struktur data yang umum
digunakan adalah queue. Queue adalah struktur data yang mengikuti konsep
"First-In & First-Out" (FIFO). Dalam struktur ini, elemen pertama yang
dimasukkan akan menjadi elemen pertama yang keluar. Beberapa operasi
dasar pada queue adalah enqueue (menambahkan elemen baru), dequeue
(menghapus elemen pertama), dan peek (melihat elemen pertama tanpa
menghapusnya).

Circular queue adalah variasi dari queue yang memiliki sifat "circular" atau
melingkar. Dalam circular queue, elemen terakhir diikuti oleh elemen
pertama, sehingga queue dapat terus berputar tanpa harus memindahkan
semua elemen. Circular queue berguna untuk aplikasi yang membutuhkan
penggunaan buffer, seperti dalam sistem operasi atau jaringan komputer.
Beberapa operasi dasar pada circular queue adalah enqueue, dequeue, peek,
dan isFull (memeriksa apakah queue penuh) dan isEmpty (memeriksa apakah
queue kosong).

I.2. Rumusan Masalah

I.3. Tujuan Penulisan


BAB II
PEMBAHASAN

I.1. Queue

Queue (antrian) adalah struktur data yang berfungsi untuk menyimpan


elemen-elemen yang diurutkan berdasarkan prinsip “First-In & First-Out”
(FIFO). Elemen yang pertama kali dimasukkan ke dalam antrian akan
pertama kali juga dikeluarkan dari antrian.

Queue digunakan dalam berbagai situasi, seperti pemrosesan antrian


dalam sistem operasi, pengantrian di bank, pemrosesan permintaan
dalam jaringan komputer, dan lain-lain. Queue dapat diimplementasikan
dengan menggunakan array atau linked list.
Berikut adalah ilustrasi dari queue :

Dari Queue di atas kita lihat bahwa 5 elemen (A,B,C,D,E) dimasukkan secara
berturut-turut dari belakang. Maka Elemen A yang merupakan elemen
pertama masuk sehingga menempati posisi paling depan, Elemen E yang
merupakan elemen terakhir masuk sehingga elemen E menempati posisi
paling belakang.

Dalam istilah pemrograman, menempatkan elemen dalam struktur data queue


disebut enqueue, sedangkan operasi menghapus/mengeluarkan elemen dari
queue disebut dequeue.

I.1.A.
Operasi pada Queue
Operasi dasar yang umum dilakukan pada struktur data queue adalah :

 Enqueue : Menambah elemen baru ke dalam queue di ujung belakang


(tail).
 Dequeue : Mengeluarkan elemen dari queue di ujung depan (head).
 IsEmpty : Memeriksa apakah queue kosong
 IsFull : Memeriksa apakah queue sudah penuh
 Peek : Mendapatkan nilai bagian depan queue tanpa menghapusnya
 Initialize : Membuat queue baru tanpa elemen data (kosong)

Namun, secara umum queue memiliki 2 operasi utama,


yaitu enqueue dan dequeue.

 Operasi Penyisipan Elemen Queue (Enqueue)


Operasi ini digunakan untuk menyisipkan elemen ke dalam Queue.
Elemen dapat disisipkan ke dalam Queue selama Queue tidak dalam
keadaan penuh. Setiap penyisipan elemen dilakukan maka penunjuk
belakang akan bertambah satu. Untuk jelasnya perhatikan gambar
berikut sebagai ilustrasi penyisipan elemen Queue :

Dari gambar di atas kita lihat bahwa gambar (a) menunjukkan bahwa
Queue dalam keadaan kosong. Gambar (b) menunjukkan bahwa elemen
A disisipkan ke Queue sehingga penunjuk Blk (Belakang) naik satu.
Demikian seterusnya hingga elemen Q disisipkan dan penunjuk Blk
sama dengan MaxQ.

 Operasi
Penghapusan
Elemen Queue (Dequeue)
Operasi ini digunakan untuk menghapus elemen dari Queue. Elemen
dalam suatu Queue dapat dihapus selama Queue tidak dalam keadaan
kosong. Setiap penghapusan elemen dilakukan maka semua elemen
berikutnya harus bergeser satu posisi ke depan kemudian penunjuk
belakang akan berkurang satu. Untuk jelasnya perhatikan berikut
sebagai ilustrasi penghapusan elemen Queue :

I.2. Circular Queue


Kelemahan dari penghapusan
elemen Queue adalah
setiap melakukan
penghapusan harus diikuti dengan pergeseran dari setiap elemen yang ada
dalam Queue satu posisi ke depan. Untuk mengatasi kelemahan ini dapat
dilakukan dengan Queue Melingkar (Circular Queue).
Circular Queue adalah
suatu Queue yang
dibuat seakan-akan
merupakan sebuah
lingkaran. Misalka kita
memiliki suatu Queue
dengan maksimal 8
elemen yang dibuat
secara melingkar
seperti pada gambar
berikut :

I.2.A. Operasi Penyisipan Elemen pada Circular Queue

Operasi ini digunakan untuk menyisipkan elemen ke dalam Queue.


Setiap kali elemen dimasukkan ke Queue maka penunjuk belakang naik
1 (Belakang+1) jika belakang lebih dari maksimum elemen array.
Tetapi jika belakang sama dengan maksimum elemen array maka
belakang diset menjadi 1 (Belakang=1). Elemen dapat dimasukkan ke
dalam Queue selama Queue belum penuh. Suatu Queue dikatakan
penuh jika Depan=1 dan Belakang=Maksimum atau Depan-
Belakang=1. 

Untuk jelasnya perhatikan gambar berikut sebagai ilustrasi penyisipan


elemen Queue :
Dari gambar di atas dapat kita lihat bahwa penyisipan elemen, penunjuk
belakang selalu bertambah satu jika belakang masih lebih kecil dari
maksimum. Queue penuh jika Depan=1 dan Belakang=Maksimum.
Suatu Queue juga dikatakan penuh jika Depan – Belakang = 1.
Perhatikan Gambar berikut :
I.2.B. Operasi Penghapusan Elemen pada Circular Queue

Operasi ini digunakan untuk mengambil atau menghapus elemen dari


suatu Queue. Operasi penghapusan elemen pada Circular yang dihapus
adalah selalu yang ada di depan sehingga penunjuk depan akan naik
satu (Depan+1) jika depan lebih kecil dari maksimum elemen array.
Tetapi depan diset menjadi satu (Depan=1) jika depan sama dengan
maksimum elemen array.

Untuk jelasnya perhatikan gambar berikut sebagai ilustrasi


penghapusan elemen Queue :

Perhatikan gambar di atas. Setiap kali penghapusan elemen maka depan


akan naik satu atau diset menjadi 1. Operasi penghapusan dapat
dilakukan selama  Queue belum kosong.
I.3. Kelebihan Struktur Data Queue
Beberapa kelebihan dari struktur data queue yang bisa anda rasakan adalah :

 Dapat mengelola data dalam jumlah besar secara efisien

 Dapat melakukan operasi penyisipan dan penghapusan dengan mudah


karena mengikuti aturan masuk pertama keluar pertama

 Dapat membantu layanan tertentu bila digunakan oleh banyak konsumen

 Dapat mempercepat komunikasi atau proses setiap data

 Dapat digunakan dalam implementasi struktur data lainnya

I.4. Kekurangan Struktur Data Queue


Walaupun memiliki banyak kelebihan, struktur data queue juga memiliki
beberapa kekurangan, diantaranya adalah :

 Operasi penyisipan dan penghapusan elemen dari tengah dapat memakan


banyak waktu

 Elemen baru hanya dapat dimasukan saat elemen yang ada sudah dihapus
dari antrian pada queue konvensional

 Membutuhkan time complexity O(N) saat mencari elemen data pada


struktur queue
 Harus menentukan ukuran maksimum antrian sebelum membuat struktur
secara lengkap

Anda mungkin juga menyukai