Anda di halaman 1dari 17

MAKALAH STRUKTUR DATA

TENTANG
QUEUE (ANTRIAN)

Disusun Oleh :

Agil Adrian Andinata

Npm :

23105111161

FAKULTAS TEKNIK
PRODI TEKNIK INFORMATIKA (S1)
UNIVERSITAS JABAL GHAFUR
2024
KATA PENGANTAR

Puji syukur kita sampaikan ke hadiran Tuhan Yang Maha Esa,


karena berkat-Nya makalah ini dapat diselesaikan sesuai yang
diharapkan. Dalam makalah ini membahas mengenai “ Struktur Data
Tentang Queue (Antrian) ”, suatu materi yang seringkali dibahas
dalam pelajaran Struktur Data.

Dengan harapan semoga makalah ini dapat menambah pengetahuan


dan pengalaman bagi para pembaca,Dimana tujuan kami membuat
makalah berisikan tema tersebut adalah untuk memperdalam
pengertian serta pemahaman kita khususnya serta masyarakat
umumnya yang akan membaca makalah yang disusun ini. Dimana
makalah ini menjadi tugas kami sebagai mahasiswa yang mengikuti
mata kuliah Struktur Data.

Untuk ke depannya dapat memperbaiki bentuk maupun menambah


isi makalah agar menjadi lebih baik lagi.Karena keterbatasan
pengetahuan maupun pengalaman penulis, yakin masih banyak
kekurangan dalam makalah ini, Oleh karena itu penulis sangat
mengharapkan saran dan kritik yang membangun dari pembaca demi
kesempurnaan makalah ini.Oleh sebab itu, penulis pada kesempatan
ini Demikian makalah ini kami buat semoga bermanfaat kedepannya
saya ucapkan banyak terima kasih.
DAFTAR ISI

KATA PENGANTAR
DAFTAR ISI
BAB I PENDAHULUAN
1.1 Latar Belakang
1.2 Rumusan Masalah
1.3 Manfaat
BAB II PEMBAHASAN
2.1 Pengertian Queue
BAB III PENUTUP(KESIMPULAN)
3.1 Kesimpulan
3.2 Saran
BAB IV DAFTAR PUSTAKA
BAB I
PENDAHULUAN

1.1 Latar Belakang masalah

Queue/antrian 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
berdisiplin FIFO (First In, First Out). Queue merupakan kasus khusus
ordered list. Dengan karakteristik terbatas itu maka kita dapat melakukan
optimasi representasi ADT

Beberapa fenomena dunia nyata berupa antrian diantaranya : antrian


pembelian tiket di depan oket untuk bis, kereta api, bioskop; antrian mobil di
depan gerbang jalan tol; antrian kendaraan di jalanan umum; dll.

1.2. Rumusan Masalah

Berdasarkan yang sudah kami diskusikan, dengan ini kami merumuskan


masalah yang akan kami kaji adalah mengerti hal hal yang berkisar seputar
Struktur Data Dalam Algoritma ,menjelaskan perumusan mengenai Struktur
Data Dalam Algoritma dari segi pandangan berbagai sumber.

1.3. Manfaat

Manfaat dari membaca makalah ini tentu saja dapat mengenal dan mengerti
lebih jauh mengenai Struktur Data Dalam Algoritma.
BAB II

PEMBAHASAN

2.1 Pengertian Queue

Queue merupakan kumpulan data dengan penambahan data hanya dapat


dilakukan melalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya
melalui sisi depan (head). Queue bersifat FIFO(First In First Out), yaitu data
yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk
akan keluar terakhir.

Elemen yang pertama kali masukkedalam queue disebutelemendepan


(front/head of queue), sedangkanelemen yang terakhir kali masukke queue
disebutelemenbelakang (rear/tail of queue).

Aturan penambahan dan penghapusan elemen pada queue, yaitu pada


penambahan elemen selalu di lakukan melalui salah satu ujung, menempati
posisi di belakang elemen-elemen yang sudah masuks ebelumnya atau
menjadi elemen paling belakang. Sedangkan penghapusan elemen dilakukan
di ujung yang berbeda, yaitu pada posisi elemen yang masuk paling awal atau
elemen terdepan.

Operasi-operasi dasar dari sebuah queue adalah :1.Enqueue : proses


penambahanelemen di posisibelakang
2.Dequeue : proses pengambilanelemen di posisidepan
Selain operasi dasar di atas, ada pula operasi-operasi lain yang dapat
dilakukan terhadap sebuah queue yaitu :

1. CREATE (Q) Operator yang menunjukkan suatu antrean hampa


Q.
Berarti : Noel (Q) = 0
Front (Q) & Rear (Q) = tidak terdefinisi
2. ISEMPTY (Q) Operator yang menunjukkan apakah antrean Q
hampa.
Operand : tipe data antrean
Hasil : tipe data boolean
ISEMPTY (CREATE (Q)) = True
3. INSERT (E, Q) Operator yang menginsert elemen E ke dalam
antrean Q.
E ditempatkan di bagian belakang antrean.
Hasil : antrean yang lebih besar.
REAR (INSERT (E, Q)) = E
ISEMPTY (INSERT (E, Q)) = False

4. REMOVE (Q)Operator yang menghapus elemen bagian depan dari


antrean Q.
Hasil : antrean yang lebih pendek.
Pada setiap operasi, Noel (Q) berkurang 1 dan elemen ke-2 menjadi
elemen terdepan.
Jika Noel (Q) = 0 maka Q = hampa
Remove (Q) = kondisi error (underflow condition)
Remove (Create (Q)) = kondisi error (underflow condition)
Jika ada elemen baru yang akan masuk pada gambar (a), maka ia akan
diletakkan disebelah kanan F (gambar (b)). Jika ada elemen yang akan dihapus,
maka A akan dihapus lebih dulu (gambar (c)).

Contoh deklarasi antrian :

Const max = 5

Varantrian : array [1..max] of char;

Belakang, depan : integer; x : char;


Dengan menggunakan array, maka overflow dapat terjadi jika antrian telah
penuh, sementara masih ingin menambah elemen kedalam antrian. Dengan
mengabaikan adany aoverflow, maka penambahan elemenbaru yang
dinyatakanolehvar x dapat diimplementasikan denganstatemen :

belakang := belakang + 1;

antrian [belakang] := x;

Operasi penghapusan bisadi implementasikan dengan ;

x := antrian [depan];

depan := depan + 1;

Padagambar (a) posisidepan = 1 danbelakang = 0. Padagambar (b) keadaan


setelah penambahan empat buah elemen dimana posisi depan = 1 dan
belakang = 4. Pada gambar(c) keada ansetelah penghapusan duabuahel emen
dimanaposisidepan = 3 danbelakang =4. Padagambar (d)
keadaansetelahpenambahanduabuahelemendiamanaposisidepan =3
danbelakang = 5.

Jika akan ditambah elemen baru, maka nilai belakang harus ditambah satu
menjadi 6. Sedangkan larik antrian tersebut hanya terdiri dari 6 elemen
sehingga tidak bias ditambah lagi meskipun sebenarnya larik tersebut masih
kosong di dua tempat. Oleh karena itu dilakukan dengan metode penggeseran
dimana jika ada elemen yang dihapus, maka semua elemen lain digeser
sehingga antrian selalu dimulai dari depan = 1.

x := antrian [1];

for i := 1 to belakang-1 do

begin

antrian [ i] := antrian [i +1];

end;

Pada gambar (a) posisi depan = 1 dan belakang = 0. Pada gambar (b) keadaan
setelah penambahan empat buah elemen di mana posisi depan = 1 dan
belakang = 4. Padagambar(c) keadaan setelah penghapusan dua buah elemen
dimana posisi depan = 1 dan belakang= 2. Pada gambar (d) keadaan setelah
penambahan dua buah elemen di mana posisi depan =1 dan belakang = 4.Cara
penggeseran elemen tidak efisien untuk larik berukuran besar.Oleh karena itu
dilakukan dengan larik yang menyimpan elemen antrian sebagai larik
memutar (circular).

b. Dengan Menggunakan Circular Array

Salah satuvariasi array adalah array melingkar (circular array), artinya array
dapat diakses mulai dari sembarang indeks (indeksawal) kearah indeks
terakhir (maksimum array), lalu memutar ke indeks pertama hingga kembali
ke indeks awal. Circular array adalah array yang dibuatseakan-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, makajumlah data yang dapat ditampung adalah 7.

Dengan circular array, meskipun posisi terakhir telah terpakai, elemen baru
tetap dapat ditambahkan pada posisi pertama jika posisi pertama dalam
keadaan kosong.Jika nilai head dan tail mencapai maksimum, maka akan
dikembalikan keposisiawal. Queue dengan circular array dapat dibayangkan
sebagaiberikut :

Aturan-aturandalam queue yang menggunakan circular array adalah :

1. Proses penghapusan dilakukan dengan cara nilai depan (front) ditambah


1 : depan = depan + 1.
2. Proses penambahan elemen sama dengan linear array yaitu nilai
belakang ditambah 1 : belakang = belakang + 1.

3. Jika depan = maka s dan ada elemen yang akan dihapus, maka nilai
depan = 1.

4. Jika belakang = maks dan depan tidak 1 maka jika ada elemen yang
akan ditambahkan ,nilai belakang=1

5. Jika hanya tinggal 1 elemen di queue (depan = belakang), dan akan


dihapus maka depan di isi 0 dan belakang di isi dengan 0 (queue
kosong).

Front dan Tail akanbergerakmaju, jika ;

1. Untuk penambahan.

2. Tail sudah mencapai elemen terakhir array akan memakai elemen


pertama array yang telah dihapus.

3. Untuk pengahapusan.

4. Front telah mencapai elemen terakhir array, maka akan menuju elemen
pertama jika antrian masih berisi elemen.

Keunggulan representasi circular adalah seluruh kapasitas antrian bisa terpakai


seleruhnya.Berdasarkan ilustrasi sebelumnya dapat disusun prosedur untuk
menambah dan menghapus elemen antrian sebagai berikut ini :

Constmax_elemen = 5;

Type antri = array [1..max_elemen] of char;


Varantrian :antri;

depan, belakang : integer;

Nilai awal untuk depan dan belakang masing-masing 0.

Depan := 0; Belakang := 0;

Proses dequeue hanya bisa dilakukan jika queue dalam keadaan tidak
kosong.Ada beberapa kondisi yang harus diperhatikan ketika dequeue elemen
queue yaitu :

 Kondisi ketika posisi depan sama dengan posisi belakang (queue hanya
memiliki 1elemen) maka nilai depan dan belakang di isi dengan 0
(queue kosong).

 Jika posisi depan sama dengan posisi maks_queue maka posisi depan
berpindah ke 1.

 Selain itu, posisi depan ditambah dengan 1 : depan = depan + 1

Impelementasinya dalam bahasa Pascal adalah :

function dequeue (var q : antri) : char;

begin

if (depan=0) and 9belakang=0) then then

write (‘ antriankososng’);
else

begin

dequeue := q [depan];

ifdepan = max_elemen then

depan := 1

else

depan := depan + 1;

end;

end;

DEQUE (Queue Ganda atau Double Queue)

Suatu linear list, yang penambahan dan penghapusan elemen dapatdilakukan


pada kedua sisi ujung list, tetapi tidak dapat dilakukanditengah-tengah list.

Deque (menggunakan array sirkular)Menggunakan 2 pointer/penunjuk :

1. LEFT : sisi kiri dari deque

2. RIGHT : sisi kanan dari deque

Asumsi : elemen deque berurut dari kiri ke kanan.


Contoh : Menggambarkan 2 buah deque, masing-masing berisi 4elemen, yang
ditempatkan di dalam sebuah Array dengan 8 lokasimemori

2 variasi deque, yaitu :

1. Deque Input Terbatas : Pemasukan elemen pada satu ujung list,


penghapusan elemen pada kedua ujung list.

2. Deque Output Terbatas : Pemasukan elemen pada kedua ujung list,


penghapusan elemen pada salah satu ujung list.

Antrean Berprioritas

Himpunan elemen, yang setiap elemennya telah diberikan sebuah prioritas,


dan urutan proses penghapusan elemen adalah berdasarkan aturan berikut :

1. Elemen yang prioritasnyalebihtinggi, diproses lebih dahulu


dibandingkan dengan elemen yang prioritasnya lebih rendah.
2. Dua elemen dengan prioritas yang sama, diprosesse suai dengan
urutannya sewaktu dimasukkan kedalam antrean berprioritas.
BAB III

PENUTUP

3.1 Kesimpulan

1. Antrian (queue) adalah sebuah bentuk struktur yang berdasarkan pada


proses FIFO (First In First Out)

2. Contoh Antrian (queue) bisa kita temukan di kehidupan sehari-hari seperti


antrian masuk jalan tol dan loket antrian.

3. Pengoperasian Antrian (qeue) berbagai macam seperti, Create, Enque,


Deque, IsEmpty, IsFull, Tampil, Clear, dsb.

4. Antrian dapat diimplementasikan dengan menggunakan array atau linked


list

Dengan pemahaman di atas, kita dapat memahami pengertian, penggunaan,


pengoprasian serta implementasi dari struktur data Antrian (queue). Kita pun bisa
membuat program dengan struktur data tersebut

3.2 Saran
Saran saya sebagai penulis ialah, bahwa setidaknya kita harus selalukonsisten dalam
belajar agar dapat bersaing di era globalisasi sehingga kita selaku mahasiswa ataupeserta
didik dapat dibekali dengan kepandaian menggunakan komputer sebagai sarana dalam
mencapai tujuan sehari-hari. Sekiranya saran yang saya buat ini jika ada kata dan penulisan
yang salah mohon dimaafkan
BAB IV

DAFTAR PUSTAKA

https://www.jejakwaktu.com/data-komputer/

http://mani-lely.blogspot.com/2016/02/tipe-data-dasar-dan-tipe-data-bentukan.html

http://cynthia281999.blogspot.com/2016/01/tipe-data-konstanta-ekspresi-operator.html

Anda mungkin juga menyukai