Langsung ke konten utama

Pengertian Queue dalam Struktur Data



  •   Pengertian Struktur Data Queue

Queue adalah kumpulan data dengan penambahan data melalui satu sisi, yaitu
belakang (tail) dan penghapusan data hanya melalui sisi depan (head).
Konsepnya hampir sama dengan Stack, perbedaannya adalah operasi penambahan dan
penghapusan pada ujung yang bebeda. Penghapusan dilakukan pada bagian depan (front) dan
penambahan berlaku pada bagian belakang (Rear). Elemen-elemen di dalam antrian dapat
bertipe integer, real, record dalam bentuk sederhana atau terstruktur.
Queue disebut juga “Waiting Line” yaitu penambahan elemen baru dilakukan pada bagian belakang dan penghapusan elemen dilakukan pada bagian depan. Sistem pada pengaksesan pada Queue menggunakan sistem FIFO (First In First Out), artinya elemen yang pertama masuk itu yang akan pertama dikeluarkan dari Queue. Queue jika diartikan secara harfiah, queue berarti antrian.
  • Operasi – 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)
  • Operasi-operasi Queue:
1. Create()
Untuk menciptakan dan menginisialisasi Queue
Dengan cara membuat Head dan Tail  = -1
2. 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.
3. 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.
4. 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.
5. 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.
6. 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.
7. Tampil()
Untuk menampilkan nilai-nilai elemen Antrian. Menggunakan looping dari head s/d tail.
  • Karakteristik Queue
1.  Elemen antrian yaitu item-item data yang terdapat di elemen antrian.
2. Head/front (elemen terdepan dari antrian ).
3. Tail/rear (elemen terakhir dari antrian ).
4. Jumlah elemen pada antrian (count).
5. Status/kondisi antrian.
  • Kondisi antrian yang menjadi perhatian adalah :
v1.   Penuh
Bila elemen di antrian  mencapai  kapasitas  maksimum  antrian. Pada kondisi ini, tidak mungkin dilakukan penambahan ke antrian. Penambahan elemen menyebabkan kondisi kesalahan Overflow.
v 2.  Kosong
Bila tidak ada elemen di antrian. Pada kondisi ini, tidak mungkin dilakukan pengambilan elemen dari antrian. Pengambilan elemen menyebabkan kondisi kesalahan Underflow.
 
  • Contoh Program Menggunakan Queue Pada Java

public class Queue {
    int queue[]=new int[3];  /** Deklarasikan Variable array untuk menentukan jumlah antrian pada stack */
  
    public void push(int value){
        if(queue[0]==0){ /** jika queue di index array 0 sama dengan 0 maka print queue di index ke 0*/
            queue[0]=value;
            System.out.println("PUSH "+queue[0]);
        }else if(queue[1]==0){ /** Ini Di ulangi sampai di index 3*/
            queue[1]=value;
            System.out.println("PUSH "+queue[1]);
        }else if(queue[2]==0){
            queue[2]=value;
            System.out.println("PUSH "+queue[2]);
        }else{
            isFull(); /** Method ini di panggil karna  apabila index queue bernilai 3 maka panggil method in */
        }
      
    }
    public void isFull(){
        System.out.println("QUEUE IS FULL");
    }
    public void pop(){ /** Method Ini unruk menghapus nilai yang ada dalama queue dengan konsep Fifo */
        if(queue[0]!=0){
            System.out.println("POP "+queue[0]);
            queue[0]=0;
        }else if(queue[1]!=0){
            System.out.println("POP "+queue[1]);
            queue[1]=0;
        }else if(queue[2]!=0){
            System.out.println("POP "+queue[2]);
            queue[2]=0;
        }else{
            isEmpty(); /** jika kondisi index array queue pada nilai 3 maka panggil method is empty*/
        }
    }
    public void isEmpty(){
        System.out.println("QUEUE IS EMPTY");
    }
    public void clear(){ /** Menghapus semua nilai yang di masukkan dalam queue*/
        queue[0]=0;
        queue[1]=0;
        queue[2]=0;
        System.out.println("Queue is clear");
    }
    public void cetak(){
        System.out.println("-------------Print--------------");
        for(int i=0;i


  • Hasil Output yang ditampilkan
     
     

Komentar

Postingan populer dari blog ini

program java

import java.util.Scanner; public class uts{     int id;     String nama, kategori;     uts next;     static Scanner in=new Scanner(System.in);     static Scanner str=new Scanner(System.in);     public void input(){        System.out.print("Masukkan NIM    : ");        id=in.nextInt();        System.out.print("Masukkan Nama   : ");        nama=str.nextLine();        System.out.print("Masukkan Kelas : ");        kategori=str.nextLine();        next=null;     }     public void read(){         System.out.println("||   "+id+"\t ||   "+nama+" \t || "+kategori+" \t||"); ...