Jumat, 22 Maret 2019

Queue Dalam Algoritma Pemrograman C++

| |

QUEUE

TI Politala Algoritma Pemrograman 2B

A. Pengertian Queue


     Queue dalam struktur data atau yang diartikan sebagai antrian merupakan sekumpulan data dimana saat menambahkan elemen hanya bisa dilakukan pada suatu ujung disebut sisi belakang (rear) dan penghapusan (pengambilan elemen) dilakukan lewat ujung lain/sisi depan(front). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO (First In First Out), yaitu data yang pertama masuk maka akan menjadi yang pertama kali keluar begitu pun sebaliknya.
       Tumpukan disebut juga dengan "Waiting Line" yaitu suatu penambahan elemen baru dilakukan pada bagian belakang dan penghapus elemen dilakukan dilakukan pada bagian depan. Elemen-elemen dicdalam antrian dapat bertipe integer, real, record dalam bentuk sederhana atau terstruktur. Queue merupakan salah satu contoh aplikasi dari pembuatan double linked list yang cukup sering ditemui di kehidupan sehari-hari, midalnya saat pengantrian tiket. Istilah yang cukup sering dipakai adalah enqueue yaitu apabila seseorang masuk dalam sebuah antrian. Sedangkan dequeue adalah istilah yang dipakai saat seseorang keluar dari antrian.

B.  Deklarasi Queue dengan Array

      Proses pendeklarasian antrian adalah proses pembuatan struktur antrian dalam memori. Struktur antrian terdiri dari data dalam array, head untuk menunjukkan ujung dari antrian dan tail untuk menunjukkan akhir dari antrian.
#define MAX 5
#include <iostream>
using namespace std;
typedef struct
{
    int data [MAX];
    int head;
    int tail;
}Queue;

C. Inisialisasi Queue

     Inisialisasi antrian adalah proses pembuatan suatu antrian kosong. Proses inisialisasi untuk antrian yang menggunakan array adalah dengan mengisi nilai field head dan tail dengan nilai 0 (nol) jika elemen pertama diawali dengan nomor 1. Kalau elemen pertama array dimulai dengan nilai 0 (nol) maka head dan tail diisi dengan nilai -1.
void Create()
{
    antrian.head=antrian.tail=-1;
}

D. Operasi-Operasi pada Queue

1. Create Queue (Q)
    Untuk menciptakan dan menginisialisasi Queue, dengan cara membuat Head dan Tail = -1
    Berikut deklarasi prosedur create pada queue :
    void create()
   {
       antrian.HEAD = -1;
       antrian.TAIL = -1;
    }

2. Make NullQ (Q)
    Mengosongkan antrian Q, jika ada elemen maka semua elemen dihapus.

3. 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.
    Berikut deklarasi prosedur EnQueue:
    void enqueue()
   {
       if (IsEmpty())
       {
           antrian.HEAD=antrian.TAIL=0;
           cout<<”Masukkan data : “;
           cin>>antrian.data[antrian.TAIL];
        }
       else
       if(IsFull())
      {
          cout<<”ANTRIAN SUDAH PENUH!”;
      }
   }

4. DeqQueue
   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.
      Berikut deklarasi fungsi DeQueue:
      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;
      }

5. 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.
     Berikut deklarasi fungsi clear:
     void clear()
    {
         antrian.HEAD = -1;
         antrian.TAIL = -1
         cout<<"Antrian sudah dikosongkan! ";
     }

6. IsEmpty
    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.
    Berikut deklarasi fungsi IsEmpty :
    int IsEmpty()
   {
       if (antrian.HEAD=antrian.TAIL==-1)
      {
       return 1;
       }
       else
      {
       return 0;
       }
    }

7. 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.
    Berikut deklarasi fungsi IsFull :
    int IsFull()
   {
       if (antrian.TAIL == max-1)
      {
          return 1;
      }
      else
     {
          return 0;
      }
   }

Contoh Program Queue



DAFTAR PUSTAKA

http://atokise.blogspot.com/2016/11/program-queue.html
http://suputradwipratama274.blogspot.com/2015/06/penjelasan-tentang-queue-contoh-program.html
http://sekilaslihat.blogspot.com/2015/06/rangkuman-materi-queue.html
http://blog-arul.blogspot.com/2012/01/queue-pada-struktur-data.html
https://blognyonyait.blogspot.com/2017/05/makalah-sistem-antrian-queue-dengan.html

0 komentar:

Posting Komentar

animasi  bergerak gif

Popular Posts

Blogger templates

Blogroll

About

Diberdayakan oleh Blogger.

Cari Blog Ini

Postingan lain

Translate

Blogger templates

Pages

Pages

Popular Posts

 

Designed by: Compartidísimo
Images by: DeliciousScraps©