7

17
Queue (antrian) 10/12/2012 1 Nurdiansah PTIK 09 UNM

Transcript of 7

Page 1: 7

Queue (antrian)

10/12/2012 1Nurdiansah PTIK 09 UNM

Page 2: 7

Pendahuluan

Sebuah antrian adalah bagian dari struktur data linear. Konsepnya hampir mirip dengan stack.

Bersifat FIFO (First In First Out) Elemen yang pertama masuk ke antrian

akan keluar pertama kalinya DEQUEUE adalah mengeluarkan satu elemen

dari suatu Antrian Antrian dapat dibuat dengan menggunakan:

Liniear Array dan Circular Array

10/12/2012 2Nurdiansah PTIK 09 UNM

Page 3: 7

10/12/2012 3Nurdiansah PTIK 09 UNM

Page 4: 7

Queue linier array

Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya

Sehingga membutuhkan 2 variabel: Head dan Tail

10/12/2012 4Nurdiansah PTIK 09 UNM

Page 5: 7

Deklarasi queue

# define MAX 8

Typedef struct {

int data [MAX];

int head;

int tail;

} Queue;

Queue antrian;

10/12/2012 5Nurdiansah PTIK 09 UNM

Page 6: 7

Operasi queue

Create()Untuk menciptakan dan menginisialisasi

Queue.Dengan cara membuat Head dan Tail = -1

10/12/2012 6Nurdiansah PTIK 09 UNM

Page 7: 7

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

10/12/2012 7Nurdiansah PTIK 09 UNM

Page 8: 7

10/12/2012 8Nurdiansah PTIK 09 UNM

Page 9: 7

Is Full ()◦ 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

10/12/2012 9Nurdiansah PTIK 09 UNM

Page 10: 7

Enqueue◦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 terlebih dahulu

10/12/2012 10Nurdiansah PTIK 09 UNM

Page 11: 7

10/12/2012 11Nurdiansah PTIK 09 UNM

Page 12: 7

Dequeue()◦ Digunakan untuk menghapus elemen terdepan/pertama (head) dari Antrian

◦ Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1

◦ Penggeseran dilakukan dengan menggunakan looping

10/12/2012 12Nurdiansah PTIK 09 UNM

Page 13: 7

10/12/2012 13Nurdiansah PTIK 09 UNM

Page 14: 7

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

10/12/2012 14Nurdiansah PTIK 09 UNM

Page 15: 7

10/12/2012 15Nurdiansah PTIK 09 UNM

Page 16: 7

Tampil()◦ Untuk menampilkan nilai-nilai elemen Antrian

◦ Menggunakan looping dari head s/d tail

10/12/2012 16Nurdiansah PTIK 09 UNM

Page 17: 7

To be continue…10/12/2012 17Nurdiansah PTIK 09 UNM