Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue

Queue (antrian) adalah barisan elemen/data dimana proses memasukkan/menambah elemen/data dilakukan pada posisi belakang (rear) dan proses mengeluarkan/mengambil elemen/data dilakukan pada elemen/data di posisi depan (front)  FIFO.

Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Operasi Dasar Queue
Kamus:   Const      MaxQueue = …..   Type      Larik_Queue = array [1..MaxQueue] of  tipedata Queue : Larik_Queue      {nama variabel queue}   Front, Rear : Integer     {Front penunjuk depan   queue, Rear penunjuk belakang queue}

Contoh Pendeklarasian Queue  (Array Statis-Algoritma)

Kamus:

  Const

      MaxQueue = 4

  Type

      Larik_Queue = array [1..MaxQueue] of integer

  Queue : Larik_Queue    {nama variabel queue}

  Front, Rear : integer           {penunjuk queue}

Contoh Pendeklarasian Queue  (List-Algoritma)

Kamus:

  Type

      PointerQueue = ↑SimpulQueue

      SimpulQueue = Record

          MedanData : tipedata,

         MedanSambungan : PointerQueue

   EndRecord

  Front, Rear  :  PointerQueue    {penunjuk queue}

Contoh Pendeklarasian Queue  (Linked List -Algoritma)

Kamus:

  Type

     PointerQueue = ↑SimpulQueue

     SimpulQueue = Record

         Angka : integer ,

        Next    : PointerQueue

  EndRecord

   Front, Rear : PointerQueue    {penunjuk queue}

Proses mempersiapkan Queue dengan cara memberi harga nol pada array statis atau memberi harga nil/NULL pada linked list untuk penunjuk queue (Front dan Rear). 

Operasi kosong digunakan untuk memeriksa apakah keadaan Queue kosong atau tidak kosong. Operasi kosong didapat dengan memeriksa harga Rear dari Queue. Jika Rear bernilai 0 (nol), maka queue kosong. 

Catatan:

Pada Queue yang menggunakan Array Statis, operasi kosong digunakan saat Enqueue dan Dequeue.

Tapi pada Queue yang menggunakan Linked List, operasi kosong digunakan saat Enqueue.

Fungsi penuh berguna untuk memeriksa apakah keadaan queue telah penuh atau belum.  Jika penunjuk Rear sama dengan nilai MaxQueue, maka Queue telah penuh.

Catatan:

Fungsi penuh hanya ada pada queue yg direpresentasikan menggunakan array statis dan dilakukan pada proses Enqueue.

Fungsi Satu Simpul berguna untuk memeriksa apakah keadaan Queue memiliki satu simpul (data) atau lebih dari satu simpul. Jika penunjuk Rear sama dengan penunjuk Front, maka Queue memiliki satu simpul(data).

Catatan:

Fungsi Satu Simpul hanya ada pada Queue yg direpresentasikan menggunakan Linked List dan dilakukan pada proses Dequeue.

Enqueue dilakukan dengan cara:

Periksa keadaan Queue. Jika kondisi queue tidak penuh, maka periksa lagi keadaan Queue apakah kosong atau tidak.

Jika keadaan kosong, maka harga Front dan Rear bernilai 1. Jika tidak kosong, maka harga Rear bertambah 1.

Kemudian data yang baru dimasukkan ke dalam Queue pada posisi Rear.

Catatan:

Pada Linked List proses Enqueue sama dengan proses penyisipan di akhir/di belakang.

Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue

Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue


Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue

Proses dequeue bisa dilakukan jika queue dalam keadaan tidak kosong, dengan cara: 

Periksa apakah elemen/data di queue hanya ada satu atau lebih, jika satu elemen/data maka keluarkan elemen/data pertama dari Queue, lalu harga front dan rear menjadi 0 (nol).

Jika lebih dari satu setelah mengeluarkan elemen/data dari queue maka lakukan proses pergeseran data dimana data di posisi kedua akan menempati Queue pada posisi pertama, data di posisi ketiga akan menempati Queue pada posisi kedua, dan seterusnya, kemudian posisi Rear akan berkurang 1.

Catatan :

Pada Linked List proses dequeue sama dengan proses penghapusan di awal/di depan

Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue


Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue

Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue


Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue


Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue

Proses Enqueue pada Queue Circular (Array Statis), dengan cara:

Penambahan data dilakukan jika kondisi queue tidak penuh. 

Jika keadaan kosong, maka posisi Front dan Rear bernilai 1. Tetapi jika tidak kosong, maka nilai Rear bertambah 1, tapi jika Rear ada di posisi maksimum queue, maka Rear = 1

Kemudian data baru disimpan di queue pada posisi Rear.

Operasi dequeue pada Queue Circular (Array Statis), dengan cara :

Periksa apakah Queue kosong atau tidak

Periksa kembali apakah Queue berisi satu elemen atau lebih

Jika berisi satu elemen, maka harga Front dan rear menjadi 0 (nol)

Jika berisi lebih dari satu elemen, maka periksa apakah Front berada di posisi maksimum queue atau tidak, jika ya maka harga Front = 1, jika tidak maka harga Front bertambah 1.

Queue atau antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisi belakang (rear), dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front). Pada tumpukan menggunakan prinsip“Masuk terakhir keluar pertama”atau LIFO (Last In First Out), Maka pada antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out).

Operasi-operasi pada Queue dalam bahasa CKarakteristik Queue atau antrian :


  1. Elemen antrian
  2. Front (elemen terdepan antrian)
  3. Tail (elemen terakhir)
  4. Jumlah elemen pada antrian
  5. Status antrian
Operasi pada Queue atau antrian
  1. Tambah(menambah item pada belakang antrian)
  2. Hapus (menghapus elemen depan dari antrian)
  3. Kosong( mendeteksi apakah pada antrian mengandung elemen atau tidak)
Tujuh Operasi-operasi Queue:
  1. Create()
  2. IsEmpty()
  3. IsFull
  4. Enqueue
  5. Dequeue()
  6. Clear()

  7. Tampil()
Penjabaran dari masing-masing Operasi-operasi Queue :Berfungsi untuk menciptakan dan menginisialisasi Queue dengan cara membuat Head dan Tail = -1
Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption

Berfungsi 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.

Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption

IsFull

Untuk mengecek apakah Antrian sudah penuh atau belumDengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh
Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption
Untuk menambahkan elemen ke dalam Antrian, penambahan elemen selalu ditambahkan di elemen paling belakangPenambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu
Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption

Digunakan untuk menghapus elemen terdepan/pertama (head) dari AntrianDengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail dgn 1Penggeseran dilakukan dengan menggunakan looping.
Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption

Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1Penghapusan elemen-elemen Antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesan-nya ke nilai -1 sehingga elemen-elemen Antrian tidak lagi terbaca
Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption
Untuk menampilkan nilai-nilai elemen AntrianMenggunakan looping dari head s/d tail
Bagaimana proses dari operasi-operasi dasar yang ada dalam queue .bagaimana prinsip dari queue
Add caption