Anda di halaman 1dari 25

Struktur Data

Pertemuan 5

Queue
Disampaikan untuk Proses Belajar Mengajar untuk Mata Kuliah Pemrograman Web
Teknik Informatika Institut Teknologi Nasional Malang

Dosen Pengampu :
1. Yosep Agus Pranoto, S.T., M.T.
2. Dr. Agung Panji Sasmito, S.Pd.,M.Pd.
3. Nurlaily Vendyansyah, S.T.,M.T.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
Queue
Seperti Stack, Antrian (Queue) adalah struktur linier yang mengikuti
urutan tertentu di mana operasi dilakukan.
Urutannya adalah First In First Out (FIFO).
Contoh antrian yang baik adalah antrian konsumen untuk sumber
daya tempat konsumen yang datang terlebih dahulu dilayani terlebih
dahulu.
Perbedaan antara stack (tumpukan) dan queue (antrian) adalah dalam
menghapus. Dalam tumpukan kami menghapus item yang paling baru
ditambahkan; dalam antrian, kami menghapus item yang paling awal
ditambahkan.
Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 2
Queue
Sebuah queue di dalam program komputer dideklarasikan sebagai
sebuah tipe bentukan baru. Sebuah struktur data dari sebuah queue
setidaknya harus mengandung dua atau tiga variabel, yakni variabel
head yang akan berguna sebagai penanda bagian depan antrian, variable
tail yang akan berguna sebagai penanda bagian belakang antrian dan
array dari yang akan menyimpan data-data yang dimasukkan ke dalam
queue tersebut.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 3
Ilustrasi Linier Queue (cont’d)

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 4
Ilustrasi Circular Queue (cont’d)

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 5
Fungsi Dasar Queue (cont’d)

1) Enqueue: Menambahkan item ke antrian. Jika antrian penuh, maka


dikatakan kondisi Overflow.
2) Dequeue: Menghapus item dari antrian. Barang-barang muncul
dalam urutan yang sama di mana mereka didorong. Jika antrian
kosong, maka dikatakan sebagai kondisi Underflow.
3) Front/Head: Item depan dari antrian.
4) Rear/Tail: Item terakhir dari antrian.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 6
Equeue (cont’d)

Memasukkan data baru ke REAR

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 7
Dequeue (cont’d)

Menghapus data yang ada di front.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 8
Queue Front (cont’d)

Mengembalikan elemen yang ada di front tanpa menghapusnya

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 9
Queue Rear (cont’d)

Mengembalikan elemen yang ada di rear tanpa menghapusnya

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 10
Linier Queue : Kode Program
1. Prepocessor dan Header File

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 11
Queue : Kode Program (cont’d)

2. Struct Data

Pada struct kita mendeklarasikan front, rear dan


array data[] dengan jumlah array dari data
maksimum yang telah di definisikan sebelumnya
yaitu MAX.
Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 12
Linier Queue : Kode Program (cont’d)

Kedua fungsi ini akan digunakan untuk memeriksa


3. Memeriksa Antrian apakah antrian penuh isFull() (fungsi pertama) dan
antrian kosong isEmpty(), keduanya
mengembalikan nilai boolean, jadi kita cukup
mengembalikan nilai perbandingan pada fungsi
masing - masing.

Pada fungsi isFull() akan mengembalikan nilai true


jika nilai Q.rear sama dengan maksimum data array
yang telah ditentukan MAX, atau false jika tidak
sama.
Pada fungsi isEmpty() akan mengembalikan nilai
Teknik Informatika S1
Fakultas Teknologi Industri
true jika nilai Q.rear sama dengan 0, atau false jika
Institut Teknologi Nasional Malang
tidak sama.
nurlaily.vendyansyah@lecturer.itn.ac.id 13
Linier Queue : Kode Program (cont’d)

4. Menampilkan Antrian

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 14
Linier Queue : Kode Program (cont’d)

5. Input Data Antrian

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 15
Linier Queue : Kode Program (cont’d)

6. Mengambil Data Antrian

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 16
Linier Queue : Kode Program (cont’d)

7. Menampilkan Menu

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 17
Queue (cont’d)

Sebenarnya di C++ sudah ada library untuk membuat queue, jadi untuk
membuat queue kita cukup menambahkan header file queue pada awal
baris dan selanjutnya kita bisa menggunakan method dan fungsi yang
telah disediakan untuk membuat antrian seperti empty, size, front, back,
push_back, pop_front dan lainnya.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 18
Queue pada Circular Array
Dalam Antrian normal, kita dapat menyisipkan elemen hingga antrian
menjadi penuh. Tapi begitu antrian menjadi penuh, kita tidak bisa
memasukkan elemen berikutnya bahkan jika ada ruang di depan
antrian.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 19
Queue pada Circular Array (cont’d)

Circular Queue adalah struktur data linier di


mana operasi dilakukan berdasarkan prinsip
FIFO (First In First Out) dan posisi terakhir
dihubungkan kembali ke posisi pertama untuk
membuat lingkaran. Ini juga disebut ‘Ring
Buffer’.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 20
Aplikasi Queue pada Circular Array (cont’d)

1. Manajemen Memori: Lokasi memori yang tidak digunakan dalam


kasus antrian biasa dapat digunakan dalam antrian melingkar.

2. Sistem lalu lintas: Dalam sistem lalu lintas yang dikendalikan


komputer, antrian melingkar digunakan untuk menyalakan lampu
lalu lintas satu per satu berulang kali sesuai waktu yang ditetapkan.

3. Penjadwalan CPU: Sistem operasi sering memelihara antrian proses


yang siap dijalankan atau sedang menunggu peristiwa tertentu
terjadi.
Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 21
Queue pada Circular Array (cont’d)

Dengan circular array, meskipun posisi terakhir telah dipakai, elemen


baru tetap dapat ditambahkan pada posisi pertama jika posisi pertama
dalam keadaan kosong. Jika akhir = MAX dan awal = 1, nilai head dan
Tail mencapai maksimum, maka akan dikembalikan ke posisi awal.
Operasi-operasi yang terdapat pada circular array tidak jauh berbeda
dengan operasi pada linear array.

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 22
Aturan Queue pada Circular Array (cont’d)

1) Proses penghapusan dilakukan dengan cara nilai depan(Head) ditambah


1 ; depan += 1
2) Proses penambahan elemen sama dengan linear array yaitu nilai
belakang ditambah 1 ; belakang += 1
3) Jika depan = maks 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 diisi 0 dan belakang diisi dengan 0 (queue kosong)
Contoh : Untuk mempermudah, elemen dari queue bertipe karakter.
Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 23
Aturan Queue pada Circular Array (cont’d)

Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 24
Teknik Informatika S1
Fakultas Teknologi Industri
Institut Teknologi Nasional Malang
nurlaily.vendyansyah@lecturer.itn.ac.id 25

Anda mungkin juga menyukai