Anda di halaman 1dari 32

QUEUE / ANTRIAN

COPYRIGHT SECOND GROUP FROM 2A INFORMATION SYSTEM UNP KEDIRI @2013

Anggota kelompok :

Ajeng Kartika Irma Hidayati Septianingrum Vita Dwi Arianti Yudha Nur Reza

( 12.1.03.03.0336 ) ( 12.1.03.03.0053 ) ( 12.1.03.03.0224 ) ( 12.1.03.03.0273 ) ( 12.1.03.03.0320 )

Ami Prastyo Putra ( 12.1.03.03.0022 )

Materi yang akan dibahas :


A.

What is Queue ??

B.
C. D. E.

Kegunaan Queue
Karakteristik Queue Queue Implementation Pendefinisian Queue

F.
G. H. I.

Operasi operasi pada Queue


Notasi Pada Queue Deklarasi Ilustrasi linier queue

J.
K. L. M. N.

Ilustrasi circular queue


Jenis-jenis Antrian Contoh Koding Soal Penutup

A. What is Queue ??

Queue / Antrian adalah suatu kumpulan data yang mana penambahan elemen hanya bisa dilakukan pada satu ujung dan penghapusan atau pengambilan elemen dilakukan lewat ujung lain.

Queue menggunakan prinsip Pertama Masuk Pertama Keluar First In First Out (FIFO). Dengan kata lain urutan masuk sama dengan urutan keluar. Contoh yang paling populer

untuk membayangkan sebuah queue adalah antrian pada kasir sebuah bank.

Ketika

seorang pelanggan datang, akan menuju ke belakang dari antrian. Setelah pelanggan dilayani, antrian yang berada di depan akan maju. Pada saat menempatkan elemen pada ujung (tail) dari queue disebut dengan enqueue, pada saat memindahkan elemen

dari kepala (head) sebuah queue disebut dengan dequeue.

Lihat Gambar 5.1 berikut ini yang memperlihatkan sebuah queue serta proses enqueue dan dequeue.

Atau untuk lebih jelasnya mari simak video berikut

B. Kegunaan Queue
Meski Queue sangat sederhana, namun Queue merupakan kakas dasar penyelesaian masalah-masalah besar. Penggunaan Queue yang utama adalah untuk simulasi fenomena antrian di dunia nyata, serta fenomena antrian di pengolahan data. Algoritma Queue juga digunakan dalam sistem operasi untuk mengontrol urutan proses operasi sistem.

Penggunaan Queue dapat dicontohkan seperti dibawah ini :


1.Simulasi antrian di dunia nyata, antara lain : Antrian pembelian tiket di depan loket untuk bis, kereta api, bioskop. Antrian mobil di depan gerbang jalan tol. Antrian kendaraan di jalanan umum. 2. System produksi Barisan bahan atau komponen yang akan diproses suatu mesin. Barisan bahan atau komponen yang akan diproses suatu manusia

C. Karakteristik Queue

Karakteristik penting dari antrian adalah :

1. Elemen antrian yaitu item-item data yang terdapat di elemen antrian 2. Front (elemen terdepan dari antrian) 3. Rear (elemen terakhir dari antrian)

4. Jumlah elemen pada antrian (Count)


5. Status antrian

Kondisi antrian yang menjadi perhatian adalah :

1. Penuh

Bila elemen pada antrian mencapai kapasitas maksimum antrian. Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan kondisi kesalahan Overflow.
2. Kosong Bila tidak ada elemen pada antrian. Pada kondisi ini, tidak mngkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan Overflow.

D. Queue Implementation
1. 2.

Implementasi Queue dengan Linear Array Implementasi Queue dengan Circular Array

1. QUEUE DENGAN LINIEAR ARRAY

Linear array adalah suatu array yang dibuat seakan-akan merupakan suatu garis lurus dengan satu pintu masuk dan satu pintu keluar. Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya Sehingga membutuhkan variabel misalnya Head dan Tail

E. Pendefinisian Queue
#define MAX 8 typedef struct{ int data[MAX]; int head; int tail; } Queue; Queue antrian;

F. Operasi operasi pada Queue


1. Create()

Untuk menciptakan dan menginisialisasi Queue


Dengan cara membuat Head dan Tail = -1

2. Is Empty()

Untuk memeriksa apakah Antrian sudah penuh atau belum Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail

3. IsFull() Untuk mengecek apakah Antrian sudah penuh atau belum Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh

4. Enqueue(data) Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakang Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail

5. Dequeue() Digunakan untuk menghapus elemen terdepan/pertama dari Antrian Dengan cara mengurangi counter Tail dan menggeser semua elemen antrian kedepan. Penggeseran dilakukan dengan menggunakan looping

6. Clear() Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1 Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen elemen Antrian tidak lagi terbaca

7. Tampil() Untuk menampilkan nilai-nilai elemen Antrian Menggunakan looping dari head s/d tail

2. Queue dengan Circular Array


Salah satu variasi array adalah array melingkar (circular array), artinya array dapat diakses mulai dari sembarang indeks (indeks awal) kearah indeks terakhir (maksimum array), lalu memutar ke indeks pertama hingga kembali ke indeks awal. Circular array adalah array yang dibuat seakan-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, maka jumlah data yang dapat ditampung adalah 7.

G. Notasi Pada Queue


1. FRONT(Q) menunjukkan posisi terdepan dari suatu antrian. Contoh jika kita mempunyai antrian Q = [A,B,C,D,E] maka FRONT(Q) = A.

2. REAR(Q) menunjukkan posisi terakhir dari suatu antrian.


Contoh jika kita mempunyai antrian Q = [A,B,C,D,E] maka REAR(Q) = E. 3. NOEL(Q) menunjukkan jumlah elemen di dalam Antrean Q. Contoh jika kita mempunyai antrian Q = [A,B,C,D,E] maka NOEL(Q) = 5.

H. Deklarasi
1.

AWAL (Inisialisasi)

2. INSERT (Sisip, Masuk, Simpan, Tulis)

3. DELETE (Hapus, Keluar, Ambil atau Dilayani, Baca)

4. RESET (Kembali ke keadaan awal)

I. Ilustrasi linier queue

Dapat

dilihat

bahwa

setiap

terjadi

penghapusan elemen pada queue nilai (index) dari Front bertambah satu (1) ; dapat ditulis FRONT = FRONT+1. Begitu

pula bila terjadi penambahan elemen


pada queue nilai (index) Rear bertambah satu (1) ; dapat ditulis REAR = REAR + 1.

J. Ilustrasi circular queue

K. Jenis-jenis Antrian
Selain antrian yang telah kita bahas di atas, masih ada dua tipe antrian lagi yang penggunaannya juga banyak di dalam kehidupan sehari hari atau dalam dunia komputer itu sendiri, diantaranya adalah :
1. 2.

DEQUE ANTRIAN BERPRIORITAS

1. DEQUE
DEQUE adalah antrian dimana elemennya bisa masuk dan keluar lewat kedua ujungnya (berbeda dengan queue yang hany bisa masuk lewat ujung belakang dan keluar lewat ujung depan). Biasanya DEQUE disajikan dengan menggunakan Double link list yang memiliki dua buah pointer yang menunjuk ke posisi sebelumnya dan sesudahnya ( posisi kiri dan kanannya ). Gambar 6.1 menunjukkan struktur umum dari sebuah DEQUE.

DEQUE juga mempunyai dua jenis variasi yaitu :


a. Deque input terbatas : suatu deque yang membatasi pemasukkan elemen hanya pada satu ujung dari list, sementara penghapusan elemen boleh dilakukan pada kedua

ujung list.
b. Deque output terbatas : merupakan kebalikan dari deque input terbatas yaitu suatu deque yang membatasi penghapusan elemen hanya pada satu ujung dari list, sementara pemasukkan elemen boleh dilakukan pada kedua ujung list.

2. ANTRIAN BERPRIORITAS
Antrian berprioritas adalah suatu queue yang setiap elemennya telah diberikan sebuah

prioritas, dan urutan proses penghapusan elemen adalah berdasarkan aturan berikut :
a. Elemen yang prioritasnya lebih tinggi, diproses elemen yang prioritas lebih rendah. b. Dua elemen dengan prioritas yang sama, diproses sesuai dengan urutan mereka sewaktu dimasukkan ke dalam priority queue. Salah satu contoh antrian berprioritas ini adalah sistem berbagi waktu (time sharing system), dimana program yang mempunyai prioritas tinggi akan dikerjakan lebih dahulu dan lebih dahulu dibandingkan dengan

program-program yang berprioritas sama akan membentuk antrian yang biasa.

Contoh : Queue sederhana

M. Soal
1. Jelaskan apa yang dimaksud dengan: a. Queue/Tumpukan b. DEQUE c. Antrian berprioritas. 2. Jelaskan istilah-istilah pada queue berikut ini: a. Create b. Insert c. Remove d. Front e. Rear

f. IsEmpty

SECOND GROUP SAY :

Thanks For Your Attention

Anda mungkin juga menyukai