Wednesday, July 10, 2019

Queue Struktur Data

Queue (Antrian) adalah suatu bentuk khusus dari list linear dengan operasi pemasukkan 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 Antrian :

FIFO (First In First Out)
FCFS (First Come First Server)

Deklarasi Queue:
#define max 8
typedef structr {
int data [MAX];
int head;
int tail;
} Queue;
Queue antrian;

Operasi Queue:
  1. Create : untuk menciptakan dan menginisialisasi Queue dengan cara membuat Head dan Tail=-1.
  2. Isempty : untuk memeriksa apakah queue kosong
  3. Isfull : untuk memeriksa apakah queue sudah penuh
  4. Enqueue : untuk menambahkan item pada posisi paling belakang
  5. Dequeue : untuk menghapus item dari posisi paling depan
  6. Clear : untuk mengosongkan queue

Fungsi Create
Digunakan untuk membentuk dan menunjukkan awal terbentuknya suatu Antrean (Queue)
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
int IsEmpty()

{

if(antrian tail ==-1)

return 1;

else

return 0;

}


Fungsi IsFull

Untuk mengecek apakah antrian sudah penuh atau kosong
Dengan cara : Mengecek nilai tail, Jika tail = Max-1 berarti antrian sudah penuh (MAX-1 adalah batas elemen array dalam program C++)
Int IsFull()

{

if (antrian tail == Max-1)

return 1;

else

return 0;

}


Fungsi Enqueue

Untuk menambahkan elemen kedalam Antrian, penambahan elemen selalu dilakukan pada elemen paling belakang
Penambahan elemen selalu menggerakan variabel Tail dengan cara menambahkan Tail terlebih dahulu
void Enqueue (Int data) {

if (IsEmpty () == 1) {

antrian head = antrian tail = 0;

antrian data [antrian tail] = data;

printf ("%d masuk!", antrian data [antrian tail]);

} else

if (IsFull () == 0) {

antrian tail ++;

antrian data [antrian tail] = data;

printf ("%d masuk!", antrian data [antrian tail]);

}

}


Fungsi Dequeue

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

Int i;

Int e = antrian data [antrian head];

for (i= antrian head; i<=antrian tail-1; i++) {

antrian data [i] = antrian data [i+1];

}

antrian tail --;

return e;

}


Fungsi Clear

Untuk menghapus elemen-elemen dengan cara membuat Tail dan Head =-1
Penghapusan elemen-elemennya ke nilai -1 sehingga elemen-elemen antrian lagi terbaca sehingga mengembalikan antrian seperti semula.
void Clear () {

antrian head = antrian tail = -1;

printf ("data clear");

}

No comments:

Post a Comment