Jurusan Informatika
Fakultas Teknik Industri
Universitas Pembangunan Nasional “Veteran” Yogyakarta
Struktur
Data
Andi Nurkholis, S.Kom., M.Kom.
Queue: Konsep
& Implementasi
29 September 2025
Definisi Queue
Queue merupakan struktur data linear yang menyimpan elemen secara
berurutan dengan aturan khusus. Proses penyisipan dilakukan di rear
(belakang), sedangkan penghapusan elemen dilakukan di front (depan). Queue
menerapkan prinsip FIFO (First In, First Out), sehingga elemen pertama yang
dimasukkan akan keluar lebih dahulu. Analogi mudahnya adalah antrian loket
tiket, di mana orang yang datang lebih awal akan dilayani terlebih dahulu
dibanding yang datang belakangan.
Queue memiliki dua operasi utama:
ĂĽ Enqueue: Menambahkan elemen ke akhir queue.
ĂĽ Dequeue: Menghapus elemen dari awal queue.
Karakteristik
Queue
1. FIFO (First In, First Out)
2. Akses Terbatas
3. Panjang Dinamis
Karakteristik Queue
1. FIFO (First In, First Out): Prinsip utama Queue adalah elemen pertama yang
masuk akan keluar terlebih dahulu. Contohnya antrian loket tiket, di mana
orang yang datang lebih awal dilayani lebih dulu. Dalam pemrograman, data
yang masuk harus menunggu giliran hingga semua data sebelumnya
diproses, sehingga sesuai untuk sistem yang membutuhkan keadilan urutan
pemrosesan.
Karakteristik Queue
2. Akses Terbatas: Queue hanya memungkinkan dua operasi: enqueue untuk
menambah elemen dari belakang dan dequeue untuk menghapus dari depan.
Tidak seperti array atau linked list, keterbatasan ini justru menjaga efisiensi
dan keteraturan.
3. Panjang Dinamis: Queue dapat dibuat dengan array (kapasitas tetap) atau
linked list (kapasitas fleksibel). Array membatasi ukuran, sementara linked list
menyesuaikan kebutuhan selama memori tersedia.
Operasi Dasar
Queue
1. Enqueue
2. Dequeue
3. Peek
4. IsEmpty
5. Size
OperasiEnqueue
1. Periksa kondisi queue untuk memastikan tidak penuh atau memori masih
tersedia.
2. Geser rear ke posisi berikutnya atau buat node baru.
3. Simpan data baru pada posisi rear.
4. Perbarui rear agar menunjuk ke elemen terakhir.
5. Konfirmasi elemen masuk, queue kini bertambah sesuai prinsip FIFO.
OperasiDequeue
1. Periksa kondisi queue untuk memastikan tidak kosong (underflow).
2. Ambil data dari posisi front sebagai elemen yang akan dihapus.
3. Geser front ke posisi berikutnya (pada array) atau pindahkan pointer ke
node berikutnya (pada linked list).
4. Lepaskan elemen lama dari memori (jika linked list).
5. Konfirmasi elemen keluar, queue kini berkurang sesuai prinsip FIFO.
OperasiPeek
1. Periksa kondisi queue terlebih dahulu untuk memastikan queue tidak
kosong.
2. Jika queue menggunakan array, langsung akses elemen pada posisi front
tanpa mengubah nilai variabel front maupun rear.
3. Jika queue menggunakan linked list, akses data pada node yang ditunjuk
head tanpa memindahkan pointer head.
4. Kembalikan nilai elemen tersebut sebagai hasil peek.
OperasiIsEmpty
1. Mulai pemeriksaan kondisi queue menggunakan variabel penunjuk.
2. Pada array queue, cek apakah front > rear atau queue belum pernah diisi.
3. Pada linked list queue, cek apakah head = NULL.
4. Jika kondisi menunjukkan tidak ada elemen, kembalikan true (queue
kosong).
5. Jika tidak terpenuhi, kembalikan false (queue masih berisi data).
OperasiSize
1. Inisialisasi variabel size untuk menyimpan jumlah elemen.
2. Periksa kondisi queue, jika kosong langsung kembalikan nilai 0.
3. Pada array queue, hitung jumlah elemen dengan rumus (rear - front + 1).
4. Pada linked list queue, lakukan traversal dari head hingga node terakhir
sambil menambah penghitung.
5. Kembalikan nilai size sebagai total elemen dalam queue.
Aplikasi Queue
1. Manajemen Proses dalam Sistem Operasi: Queue digunakan untuk
mengatur eksekusi proses, misalnya pada Round Robin Scheduling, di mana
proses menunggu giliran CPU secara bergantian. Selain itu, queue dipakai
pada task scheduling, print queue, hingga I/O request queue.
2. Pemrosesan Data dalam Jaringan Komputer: Data dipecah menjadi paket
yang ditampung dalam buffer berbasis queue. Router, switch, dan server
memanfaatkan queue untuk mengelola paket agar aliran data tetap teratur
dan menghindari packet loss.
3. Sistem Antrian Layanan: Queue memodelkan antrian nyata seperti bank,
rumah sakit, atau loket tiket. Dalam simulasi, queue merepresentasikan
kedatangan, layanan, dan urutan pelanggan.
Aplikasi Queue
4. Algoritma Pencarian pada Graf: Pada Breadth-First Search (BFS), queue
digunakan untuk menelusuri graf secara bertahap. Simpul awal diproses, lalu
tetangga simpul dimasukkan ke queue. Cara ini menjamin penelusuran
berjalan sistematis dari level ke level.
5. Buffer Data pada Multimedia dan Streaming: Aplikasi streaming menyimpan
potongan audio atau video ke dalam queue sebelum diputar. Mekanisme ini
menjaga kelancaran pemutaran sekaligus mengurangi gangguan akibat
latency.
6. Simulasi dan Pemodelan Sistem: Queue dipakai pada Discrete Event
Simulation (DES) untuk memodelkan antrian nyata, misalnya call center, jalur
produksi, atau distribusi logistik.
Kelebihan Queue
1. Sederhana dan Mudah Diimplementasikan: Queue mengikuti prinsip FIFO,
mirip antrean loket, sehingga mudah dipahami dan dipraktikkan mahasiswa
dalam pemrograman.
2. Akses Fleksibel: Operasi enqueue hanya di belakang dan dequeue hanya di
depan, menjamin pengelolaan data yang adil serta teratur.
3. Penggunaan Memori Efisien: Implementasi dengan linked list membuat
ukuran queue dinamis, menyesuaikan data tanpa pemborosan memori
seperti pada array statis.
4. Mendukung Banyak Aplikasi Nyata: Queue dipakai di sistem operasi,
jaringan komputer, pemrograman multitasking, sehingga penting dipelajari.
Kekurangan Queue
1. Keterbatasan Ukuran: Pada array statis, kapasitas queue ditentukan sejak
awal. Jika terlalu kecil terjadi overflow, jika terlalu besar ruang memori
terbuang.
2. Overflow dan Underflow: Overflow muncul saat menambah elemen pada
queue penuh, sedangkan underflow terjadi ketika menghapus elemen dari
queue kosong. Keduanya dicegah dengan pengecekan kondisi.
3. Akses Terbatas: Queue hanya memungkinkan operasi di depan dan
belakang, tidak mendukung akses acak seperti array atau linked list.
4. Manajemen Memori Kompleks: Implementasi dinamis dengan pointer lebih
fleksibel, tetapi berisiko memory leak bila tidak hati-hati.
Jurusan Informatika
Fakultas Teknik Industri
Universitas Pembangunan Nasional “Veteran” Yogyakarta
Andi Nurkholis, S.Kom., M.Kom.
29 September 2025
Sekian
Terima
Kasih

Struktur Data - 7 Queue

  • 1.
    Jurusan Informatika Fakultas TeknikIndustri Universitas Pembangunan Nasional “Veteran” Yogyakarta Struktur Data Andi Nurkholis, S.Kom., M.Kom. Queue: Konsep & Implementasi 29 September 2025
  • 2.
    Definisi Queue Queue merupakanstruktur data linear yang menyimpan elemen secara berurutan dengan aturan khusus. Proses penyisipan dilakukan di rear (belakang), sedangkan penghapusan elemen dilakukan di front (depan). Queue menerapkan prinsip FIFO (First In, First Out), sehingga elemen pertama yang dimasukkan akan keluar lebih dahulu. Analogi mudahnya adalah antrian loket tiket, di mana orang yang datang lebih awal akan dilayani terlebih dahulu dibanding yang datang belakangan. Queue memiliki dua operasi utama: ĂĽ Enqueue: Menambahkan elemen ke akhir queue. ĂĽ Dequeue: Menghapus elemen dari awal queue.
  • 3.
    Karakteristik Queue 1. FIFO (FirstIn, First Out) 2. Akses Terbatas 3. Panjang Dinamis
  • 4.
    Karakteristik Queue 1. FIFO(First In, First Out): Prinsip utama Queue adalah elemen pertama yang masuk akan keluar terlebih dahulu. Contohnya antrian loket tiket, di mana orang yang datang lebih awal dilayani lebih dulu. Dalam pemrograman, data yang masuk harus menunggu giliran hingga semua data sebelumnya diproses, sehingga sesuai untuk sistem yang membutuhkan keadilan urutan pemrosesan.
  • 5.
    Karakteristik Queue 2. AksesTerbatas: Queue hanya memungkinkan dua operasi: enqueue untuk menambah elemen dari belakang dan dequeue untuk menghapus dari depan. Tidak seperti array atau linked list, keterbatasan ini justru menjaga efisiensi dan keteraturan. 3. Panjang Dinamis: Queue dapat dibuat dengan array (kapasitas tetap) atau linked list (kapasitas fleksibel). Array membatasi ukuran, sementara linked list menyesuaikan kebutuhan selama memori tersedia.
  • 6.
    Operasi Dasar Queue 1. Enqueue 2.Dequeue 3. Peek 4. IsEmpty 5. Size
  • 7.
    OperasiEnqueue 1. Periksa kondisiqueue untuk memastikan tidak penuh atau memori masih tersedia. 2. Geser rear ke posisi berikutnya atau buat node baru. 3. Simpan data baru pada posisi rear. 4. Perbarui rear agar menunjuk ke elemen terakhir. 5. Konfirmasi elemen masuk, queue kini bertambah sesuai prinsip FIFO.
  • 8.
    OperasiDequeue 1. Periksa kondisiqueue untuk memastikan tidak kosong (underflow). 2. Ambil data dari posisi front sebagai elemen yang akan dihapus. 3. Geser front ke posisi berikutnya (pada array) atau pindahkan pointer ke node berikutnya (pada linked list). 4. Lepaskan elemen lama dari memori (jika linked list). 5. Konfirmasi elemen keluar, queue kini berkurang sesuai prinsip FIFO.
  • 9.
    OperasiPeek 1. Periksa kondisiqueue terlebih dahulu untuk memastikan queue tidak kosong. 2. Jika queue menggunakan array, langsung akses elemen pada posisi front tanpa mengubah nilai variabel front maupun rear. 3. Jika queue menggunakan linked list, akses data pada node yang ditunjuk head tanpa memindahkan pointer head. 4. Kembalikan nilai elemen tersebut sebagai hasil peek.
  • 10.
    OperasiIsEmpty 1. Mulai pemeriksaankondisi queue menggunakan variabel penunjuk. 2. Pada array queue, cek apakah front > rear atau queue belum pernah diisi. 3. Pada linked list queue, cek apakah head = NULL. 4. Jika kondisi menunjukkan tidak ada elemen, kembalikan true (queue kosong). 5. Jika tidak terpenuhi, kembalikan false (queue masih berisi data).
  • 11.
    OperasiSize 1. Inisialisasi variabelsize untuk menyimpan jumlah elemen. 2. Periksa kondisi queue, jika kosong langsung kembalikan nilai 0. 3. Pada array queue, hitung jumlah elemen dengan rumus (rear - front + 1). 4. Pada linked list queue, lakukan traversal dari head hingga node terakhir sambil menambah penghitung. 5. Kembalikan nilai size sebagai total elemen dalam queue.
  • 12.
    Aplikasi Queue 1. ManajemenProses dalam Sistem Operasi: Queue digunakan untuk mengatur eksekusi proses, misalnya pada Round Robin Scheduling, di mana proses menunggu giliran CPU secara bergantian. Selain itu, queue dipakai pada task scheduling, print queue, hingga I/O request queue. 2. Pemrosesan Data dalam Jaringan Komputer: Data dipecah menjadi paket yang ditampung dalam buffer berbasis queue. Router, switch, dan server memanfaatkan queue untuk mengelola paket agar aliran data tetap teratur dan menghindari packet loss. 3. Sistem Antrian Layanan: Queue memodelkan antrian nyata seperti bank, rumah sakit, atau loket tiket. Dalam simulasi, queue merepresentasikan kedatangan, layanan, dan urutan pelanggan.
  • 13.
    Aplikasi Queue 4. AlgoritmaPencarian pada Graf: Pada Breadth-First Search (BFS), queue digunakan untuk menelusuri graf secara bertahap. Simpul awal diproses, lalu tetangga simpul dimasukkan ke queue. Cara ini menjamin penelusuran berjalan sistematis dari level ke level. 5. Buffer Data pada Multimedia dan Streaming: Aplikasi streaming menyimpan potongan audio atau video ke dalam queue sebelum diputar. Mekanisme ini menjaga kelancaran pemutaran sekaligus mengurangi gangguan akibat latency. 6. Simulasi dan Pemodelan Sistem: Queue dipakai pada Discrete Event Simulation (DES) untuk memodelkan antrian nyata, misalnya call center, jalur produksi, atau distribusi logistik.
  • 14.
    Kelebihan Queue 1. Sederhanadan Mudah Diimplementasikan: Queue mengikuti prinsip FIFO, mirip antrean loket, sehingga mudah dipahami dan dipraktikkan mahasiswa dalam pemrograman. 2. Akses Fleksibel: Operasi enqueue hanya di belakang dan dequeue hanya di depan, menjamin pengelolaan data yang adil serta teratur. 3. Penggunaan Memori Efisien: Implementasi dengan linked list membuat ukuran queue dinamis, menyesuaikan data tanpa pemborosan memori seperti pada array statis. 4. Mendukung Banyak Aplikasi Nyata: Queue dipakai di sistem operasi, jaringan komputer, pemrograman multitasking, sehingga penting dipelajari.
  • 15.
    Kekurangan Queue 1. KeterbatasanUkuran: Pada array statis, kapasitas queue ditentukan sejak awal. Jika terlalu kecil terjadi overflow, jika terlalu besar ruang memori terbuang. 2. Overflow dan Underflow: Overflow muncul saat menambah elemen pada queue penuh, sedangkan underflow terjadi ketika menghapus elemen dari queue kosong. Keduanya dicegah dengan pengecekan kondisi. 3. Akses Terbatas: Queue hanya memungkinkan operasi di depan dan belakang, tidak mendukung akses acak seperti array atau linked list. 4. Manajemen Memori Kompleks: Implementasi dinamis dengan pointer lebih fleksibel, tetapi berisiko memory leak bila tidak hati-hati.
  • 16.
    Jurusan Informatika Fakultas TeknikIndustri Universitas Pembangunan Nasional “Veteran” Yogyakarta Andi Nurkholis, S.Kom., M.Kom. 29 September 2025 Sekian Terima Kasih