Pertemuan ke:
04 Fakultas
Sains dan Teknologi
QUEUE
Akhir Presentasi
Queue
• Ada 3 Bentuk Queue yang akan dibahas :
1. Linier Queue
2. Circuler Queue
3. Double Ended Queue
• Mengunakan array satu dimensi
Kreativitas Membangkitkan 2
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
LINIER QUEUE ( Antrian Lurus )
• Prinsip :
– FIFO ( FIRST IN FIRST OUT )
– FCFS ( FIRST COME FIRST SERVE )
• Yang lebih awal masuk akan dilayani terlebih dahulu :
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ] X X X
F R
Kreativitas Membangkitkan 3
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
LINIER QUEUE ( Antrian Lurus )
• Menggunakan Pointer F dan R
– F ( Front ) untuk awal antrian
– R ( Rear ) untuk akhir antrian
• Untuk pengambilan data (keluar data) menggunakan
Pointer F
• Untuk pemasukan data menggunakan pointer R
– Syarat F <= R
Kreativitas Membangkitkan 4
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
LINIER QUEUE ( Antrian Lurus )
• Dari ilustrasi diatas :
• R = 5, artinya pernah masuk 6 pengantri yang
menempati 5 elemen dengan urutan masuk mulai Q[0],
Q[1],…….. Jadi yang terkahir masuk sekarang berada di
Q[5]
• F = 2, artinya sudah keluar(sudah dilayani) sebanyak 3
pengantri dengan urutan keluar atau dilayani mulai dari
Q[0], Q[1], Q[2] jadi yang terakhir keluar adalah yang
berada di Q[2]
Kreativitas Membangkitkan 5
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Kondisi Antrian
1. Kondisi Awal (belum ada yang ngantri)
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ]
R F
F = 0 dan R = -1 -> Kondisi awal
F > R / F=R+1 -> Antrian Kosong
R< n-1 -> Antrian bisa di isi
Kreativitas Membangkitkan 6
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Masuk 4 Pengantri/Belum ada yang keluar
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ] X X X X
F R
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ] X
F R
Kreativitas Membangkitkan 8
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Masuk lagi 2 Pengantri
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ] X X X
F R
Kreativitas Membangkitkan 9
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Misal sesudah itu keluar 3 (semua) pengantri
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ]
R F
Kreativitas Membangkitkan 10
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Misal masuk lagi 4 Pengantri
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ] X X X X
F R
Kreativitas Membangkitkan 11
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Misal Keluar/dilayani 4 (Semua ) Pengantri
misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ]
Kreativitas Membangkitkan 12
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Kondisi-Kondisi Queue
KONDISI ANTRIAN CIRI
1 KOSONG F = R+1 dimana saja
2 PENUH R = n -1
3 BISA DI ISI R < n -1
4 ADA ISINYA F < R+1
5 PERLU DI RESET F = R+1 dan R=n-1
Kreativitas Membangkitkan 13
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Proses yang dapat dilakukan
• AWAL (Inisialisasi)
• INSERT ( Sisip, Masuk, Simpan, ngantri)
• DELETE (Hapus, Keluar, Ambil, dilayani)
• RESET ( Kembali Keadaan Awal)
Kreativitas Membangkitkan 14
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
ALGORITMA DASAR PROSES AWAL (INISIALISASI)
Kreativitas Membangkitkan 15
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
ALGORITMA DASAR PROSES INSERT (MASUK)
• Pointer R maju 1 langkah
• Kemudian Isikan data kedalam elemen yang ditunjuk oleh R
void INSERT(void)
{
R = R +1 ;
Q[R]=X;
}
Kreativitas Membangkitkan 16
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
ALGORITMA DASAR PROSES DELETE (HAPUS)
• Pointer F maju 1 langkah
• Kemudian Copy data dari Elemen yang ditunjuk oleh F
ke suatu Variabel.
void DELETE(void)
{
X =Q[F];
F=F+1;
}
Kreativitas Membangkitkan 17
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
ALGORITMA DASAR PROSES RESET
void RESET(void)
{
F = 0;
R = -1;
}
Kreativitas Membangkitkan 18
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Latihan
• Untuk n=100
– Jika F=15 dan R=37, maka jumlah pengantri yang belum
dilayani adalah …
– Jika F=15 dan R=37, maka jumlah kolom yang masih bisa di
isi adalah ….
Kreativitas Membangkitkan 19
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Terima Kasih
Aditiya Hermawan, M.Kom