Anda di halaman 1dari 20

Struktur Data

Pertemuan ke:

04 Fakultas
Sains dan Teknologi
QUEUE

Aditiya Hermawan, M.Kom

Program Studi Pembuka


Teknik Informatika
Daftar Pustaka

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

F=0 -> Belum ada yang keluar


F < R+1 -> antrian ada isinya
R< n -1 -> antrian bisa di isi
Kreativitas Membangkitkan 7
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
Keluar/dilayani 3 pengantri dan belum ada
yang masuk

misal n = 10
n-1
-1 0 1 2 3 4 5 6 7 8 9
Q[ ] X

F R

F=3 -> Sudak keluar 3


F<R -> Antrian ada isinya
R < n-1 -> Antrian bisa di isi

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

F<R -> antrian ada isinya


R< n-1 -> antrian bisa di isi

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

F = R +1 -> antrian kosong


R< n-1 -> antrian bisa di isi

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

F < R +1 -> antrian ada Isinya


R< n-1 -> antrian bisa di isi

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[ ]

F=n -> Semua pengantri sudah dilayani R F


F= R+1 dan R = n-1 -> kondisi khusus, antrian
KOSONG tetapi tidak ada lagi yg bisa dilayani, tapi
disebut jg PENUH karena tidak bias diisi. Untuk keadaan
ini perlu dilakukan RESET yaitu mengembalikan pointer
ke posisi awal, F=0 dan R=1.

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)

• Untuk Proses INSERT menggunakan Pointer R ( Rear )


• Untuk Proses DELETE menggunakan Pointer F ( Front )

Kreativitas Membangkitkan 14
<@adt_lotu
Menu
Menu Akhiri >
Akhiri
Inovasi
s
ALGORITMA DASAR PROSES AWAL (INISIALISASI)

• Dimana Pointer F = 0 dan R = -1


 
void AWAL(void)
{
F = 0;
R = -1;
}

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

Anda mungkin juga menyukai