QUEUE

                         






                                                       QUEUE (ANTREAN)












Struktur Data Antrean (Queue) adalah suatu bentuk
khusus dari List Linier dengan operasi pemasukan data
hanya diperbolehkan pada salah satu sisi, yang disebut
sisi Belakang / ekor (Tail) dan operasi penghapusan
hanya diperbolehkan pada sisi lainnya yang disebut sisi
Depan / kepala (Head) dari LinkedList.
Prinsip Antrean : FIFO (First In First Out)
FCFS (First Come First Serve)
“Yang Tiba lebih awal Maka akan dilayani Terlebih
Dahulu”
PENGERTIAN QUEUE
(ANTREAN)
Deklarasi Queue
0 1 2 3 4 5 6 7 Max = 8
head = -1
tail = -1
• CREATE
Untuk menciptakan dan menginisialisasi Queue
Dengan cara membuat Head dan Tail = -1
• ISEMPTY
Untuk memeriksa apakah queue kosong
• ISFULL
Untuk memeriksa apakah queue sudah penuh
• ENQUEUE
Untuk menambahkan item pada posisi paling belakang
• DEQUEUE
Untuk menghapus item dari posisi paling depan
• CLEAR
Untuk mengosongkan queue
OPERASI QUEUE
• Digunakan untuk membentuk dan menunjukan awal
terbentuknya suatu Antrean / Queue
Fungsi Create
0 1 2 3 4 5 6 7 Max = 8
head = -1
tail = -1
Antrian pertama kali
Void Create()
{
antrian.head = antrian.tail = -1
}
Fungsi IsEmpty
• Untuk memeriksa apakah Antrian penuh atau kosong
• Dengan cara memeriksa nilai Tail, jika Tail = -1 maka
antrian kosong (empty)
• 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
0 1 2 3 4 5 6 7 Max = 8
head = -1
tail = -1
Antrian kosong
Karena tail = -1
Int IsEmpty()
{
if (antrian.tail == -1)
return 1;
else
return 0;
}
Fungsi IsFull
• Untuk mengecek apakah Antrian sudah penuh
atau belum
• Dengan cara :
- Mengecek nilai Tail
- Jika tail = MAX-1 berarti antrian sudah penuh
(MAX-1 adalah batas elemen array dalam
program C++)
5 10 35 20 15 30 40 25
0 1 2 3 4 5 6 7 Max = 8
head = 0
Antrian penuh karena
Head = 0
tail = max - 1
tail = 7
Int IsFull()
{
if (antrian.tail == Max-1)
return 1;
else
return 0;
}
• Untuk menambahkan elemen ke dalam Antrian,
penambahan elemen selalu dilakukan pada
elemen paling belakang
• Penambahan elemen selalu menggerakan variabel
Tail dengan cara menambahkan Tail terlebih dahulu
Fungsi Enqueue

• Digunakan untuk menghapus elemen terdepan (head)
dari Antrian
• Dengan cara : menggeser semua elemen antrian
kedepan dan mengurangi Tail dgn 1. Penggeseran
dilakukan dengan menggunakan looping
Fungsi Dequeue

• 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 sehingga
mengembalikan antrian seperti keadaan semula
Fungsi Clear
Antrian setelah di lakukan Clear
0 1 2 3 4 5 6 7 Max = 8
head = -1
tail = -1
Antrian kosong
Karena tail = -1
Berikan gambaran/ilustrasi dari kasus antrian berikut :
a) Diketahui suatu Antrian/queue dgn max = 6.
b) Lakukan Enqueue 4 elemen ke dalam antrian,
dimanakah posisi Head dan Tail ?
c) Kemudian lakukan Dequeue 2 elemen dari antrian.
Maka dimana posisi Head dan Tail ?
d) Dari keadaan diatas, bagaimanakah kondisi IsFull dan
IsEmpty nya ?
Latihan I Struktur Data
(Pertemuan 6)

0 Response to "QUEUE"

Posting Komentar