Langsung ke konten utama

Queue




 QUEUE


Pengertian

Queue adalah salah satu struktur data yang sering digunakan dalam pemrograman. Queue merupakan antrian data yang hanya dapat diakses pada ujung depan atau ujung belakangnya.Data yang pertama kali dimasukkan ke dalam queue akan menjadi data yang pertama kali diambil atau dikeluarkan dari queue.Queue dapat diibaratkan seperti antrian orang yang menunggu untuk melakukan suatu tindakan.

Karakteristik

  • FIFO (First In First Out): Data yang pertama kali dimasukkan ke dalam queue akan menjadi data yang pertama kali diambil atau dikeluarkan dari queue.
  • Enqueue: Menambahkan data ke dalam queue.
  • Dequeue: Mengambil data dari queue.
  • Front: Menunjukkan data yang berada pada ujung depan queue.
  • Rear: Menunjukkan data yang berada pada ujung belakang queue.


Queue sering digunakan dalam pemrograman untuk menyelesaikan masalah yang membutuhkan urutan data yang spesifik.Contoh penggunaan queue adalah dalam pengolahan data yang membutuhkan urutan waktu, seperti pengolahan data sensor atau pengolahan data transaksi
Dalam pemrograman, queue dapat diimplementasikan menggunakan array atau linked list.Implementasi queue menggunakan array lebih sederhana dan cepat, sedangkan implementasi queue menggunakan linked list lebih fleksibel dan dapat menyesuaikan ukuran queue secara dinamis

Queue merupakan struktur data yang berguna dalam pemrograman karena memungkinkan pengolahan data yang efisien dan terstruktur.Dalam pengembangan perangkat lunak, pemahaman tentang queue sangat penting untuk memastikan kinerja program yang optimal  dan efisien.


Ilustrasi


Front Dan Rear

Front dan rear adalah dua pointer yang digunakan dalam queue untuk menunjukkan posisi ujung depan (front) dan ujung belakang (rear) dari queue.Front menunjukkan posisi data yang akan diambil atau dikeluarkan dari queue, sedangkan rear menunjukkan posisi data yang akan dimasukkan ke dalam queue

Ketika queue kosong, nilai dari front dan rear adalah -1.Ketika queue kosong, nilai dari front dan rear adalah -1.Ketika data baru dimasukkan ke dalam queue, nilai dari rear akan bertambah satu. Ketika data diambil atau dikeluarkan dari queue, nilai dari front akan bertambah satu

Berikut adalah contoh penggunaan front dan rear dalam queue:


Pemakaian Queue Pada Program

public class Queue {
  int SIZE = 5;
  int items[] = new int[SIZE];
  int front, rear;

  Queue() {
    front = -1;
    rear = -1;
  }

  // check if the queue is full
  boolean isFull() {
    if (front == 0 && rear == SIZE - 1) {
      return true;
    }
    return false;
  }

  // check if the queue is empty
  boolean isEmpty() {
    if (front == -1)
      return true;
    else
      return false;
  }

  // insert elements to the queue
  void enQueue(int element) {

    // if queue is full
    if (isFull()) {
      System.out.println("Queue is full");
    }
    else {
      if (front == -1) {
        // mark front denote first element of queue
        front = 0;
      }

      rear++;
      // insert element at the rear
      items[rear] = element;
      System.out.println("Insert " + element);
    }
  }

  // delete element from the queue
  int deQueue() {
    int element;

    // if queue is empty
    if (isEmpty()) {
      System.out.println("Queue is empty");
      return (-1);
    }
    else {
      // remove element from the front of queue
      element = items[front];

      // if the queue has only one element
      if (front >= rear) {
        front = -1;
        rear = -1;
      }
      else {
        // mark next element as the front
        front++;
      }
      System.out.println( element + " Deleted");
      return (element);
    }
  }

  // display element of the queue
  void display() {
    int i;
    if (isEmpty()) {
      System.out.println("Empty Queue");
    }
    else {
      // display the front of the queue
      System.out.println("\nFront index-> " + front);

      // display element of the queue
      System.out.println("Items -> ");
      for (i = front; i <= rear; i++)
        System.out.print(items[i] + "  ");

      // display the rear of the queue
      System.out.println("\nRear index-> " + rear);
    }
  }

  public static void main(String[] args) {

    // create an object of Queue class
    Queue q = new Queue();

    // try to delete element from the queue
    // currently queue is empty
    // so deletion is not possible
    q.deQueue();

    // insert elements to the queue
    for(int i = 1; i < 6; i ++) {
      q.enQueue(i);
    }

    // 6th element can't be added to queue because queue is full
    q.enQueue(6);

    q.display();

    // deQueue removes element entered first i.e. 1
    q.deQueue();

    // Now we have just 4 elements
    q.display();

  }
}

Dan Outputnya Seperti ini

Antrian kosong
Masukkan 1
Masukkan 2
Masukkan 3
Masukkan 4
Masukkan 5
Antrian penuh

Indeks depan-> 0
Barang ->
1 2 3 4 5  
Indeks belakang-> 4
1 Dihapus

Indeks depan-> 1
Barang ->
2 3 4 5
Indeks belakang-> 4

Komentar

Postingan populer dari blog ini

POINTER

 POINTER Pengertian Pointer merupakan tipe data yang berisi alamat memori dari sebuah variabel, untuk lebih mudah memahami ini, Kita akan coba membahas terlebih dahulu bagaimana bahasa pemrograman lain menyimpan nilai dari sebuah variabel. Ketika kita akan mendeklarasikan sebuah variabel (misalkan variabel angka’), bahasa pemrograman akan menyiapkan sebuah tempat di memory komputer. Tempat ini memiliki alamat, yang berfungsi untuk menandai lokasi variabel tersebut. Cara Penggunaan Pointer Untuk dapat membuat pointer, kita harus menyesuaikan dengan variabel yang ingin kita akses Maksudnya seperti ini, Jika kita mendeklarasikan sebuah variabel ‘angka’ : Disini variabel ‘angka’ disiapkan untuk menampung tipe data integer.Disini variabel ‘angka’ Angka : integer disiapkan untuk menampung tipe data integer.Untuk bisa menampung alamat memori dari variabel ‘angka’ ini, kita harus membuat pointer yang juga di-set untuk menampung tipe data pointer integer. Berikut cara penulisannya pointer_a...

Apa Itu Struktur Data

     Struktur Data Pengertian Struktur data adalah pengaturan data di dalam memori komputer. Struktur data adalah cara untuk menyimpan, mengambil, dan menyusun data dengan efisien di dalam komputer, Struktur data memungkinkan data yang ada di komputer lebih mudah diakses dan diperbarui. Apasih Manfaat Dan Fungsi Struktur Data? Manfaat Struktur Data adalah agar diperoleh sebuah pemograman lebih efisien,mudah,dan elegan.Dan supaya data yang disimpan lebih mudah/efisien dalam pengaksesan/pemrosesan data tersebut. Struktur data tidak hanya berfungsi sebagai penyusun data, tetapi juga memiliki peran penting dalam proses pengolahan, pengambilan, dan penyimpanan data. Struktur data bisa digunakan untuk mengelola database, melakukan kompres file, hingga mengolah data lainnya. Struktur data juga akan mempengaruhi ketepatan algoritma pemrograman. Macam-Macam Operasi Dalam Struktur Data 1.Record sebuah nilai yang berisi nilai-nilai lain, biasanya dengan banyak dan urutan nilai yang ...