Rabu, 10 Mei 2017



Queue (Antrian) dalam Algoritma Struktur Data

Queue adalah kumpulan data dengan penambahan data hanya melalui satu sisi, yaitu belakang (tail) dan penghapusan data hanya melalui sisi depan (head). Berbeda dengan stack yang bersifat LIFO maka queue bersifat FIFO(First In First Out), yaitu data yang pertama masuk akan keluar terlebih dahulu dan data yang terakhir masuk akan keluar terakhir.
Fungsi dalam Queue:
·         Fungsi init : digunakan untuk membuat queue baru atau kosong, yaitu dengan memberi nilai awal (head) dan nilai akhir (tail) dengan -1.
Description: https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh6haXzYz9fMK769eOrHk0wv-s8JoPnNbD7ChKRuB1sKdxie3RQaWoJH5U7S78XTtexD0lCqo9lTVQRpLYQe2QBqkjsurMSn-v8mPX4t7cOML3ICY1yO6V9y973FHSkaqc3N8uYRwLL2i54/s1600/download+(3).png·         Fungsi full: digunakan untuk mengetahui apakah queue sudah penuh atau belum. Dilakukan dengan memeriksa nilai akhir (tail) apakah sudah sama dengan maksimal queue.
·         Fungsi empty: digunakan untuk mengetahui apakah queue masih kosong atau tidak. Dilakukan dengan memeriksa nilai akhir (tail) bernilai -1 atau tidak.
·         Fungsi enqueue : digunakan untuk menambahkan elemen ke dalam queue.
·         Fungsi dequeue : digunakan untuk mengambil elemen dari queue, dengan cara memindahkan semua elemen satu langkah ke posisi depannya sehingga elemen yang paling depan tertimpa.
·         Fungsi clear : digunakan untuk menghapus semua elemen dalam queue. Ada dua cara yang bisa digunakan, yaitu menuliskan fungsi seperti inisialisasi atau memanggil fungsi remove sampai queue kosong.
           Antrian ini tidak akan dilayani secara FIFO murni tetapi biasanya didasarkan pada suatu prioritas tertentu. Antrian yang memasukkan unsur prioritas dinamakan dengan Antrian Prioritas (Priority Queue).
            Elemen yang pertama kali masuk ke antrian akan keluar pertama kalinya.Dequeue adalah mengeluarkan satu elemen dari suatu antrian. Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya sehingga membutuhkan variabel Head dan Tail.
Deklarasi Queue :



            Operasi dalam Queue
  •             Create ( )

  1.       Untuk menciptakan dan menginisialisasi Queue
  2.       Dengan cara membuat Head dan Tail = -1

  •             IsEmpty ( )


  1.  Untuk memeriksa apakah Antrian sudah penuh atau belum
  2.  Dengan cara memeriksa nilai Tail, jika Tail = -1 maka empty
  3.  Kita tidak memeriksa Head, karena Head adalah tanda untuk kepala antrian (elemen pertama dalam antrian) yang tidak akan berubah-ubah
  4.  Pergerakan pada Antrian terjadi dengan penambahan elemen Antrian kebelakang, yaitu menggunakan nilai Tail. 
  •             IsFull
  1.                     Untuk mengecek apakah Antrian sudah penuh atau belum
  2.        Dengan cara mengecek nilai Tail, jika Tail >= MAX-1 (karena MAX-1 adalah batas elemen array pada C) berarti sudah penuh



  •            Enqueue (data)

  1.  Untuk menambahkan elemen ke dalam antrian, penambahan elemen selalu ditambahkan di elemen paling belakang.
  2.    Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail
















  •             Dequeue()

  1.    Digunakan untuk menghapus elemen terdepan/pertama dari antrian
  2.    Dengan cara mengurangi counter Tail dan menggeser semua elemen antrian kedepan.
  3.    Penggeseran dilakukan dengan menggunakan looping




  •             Clear()

  1.   Untuk menghapus elemen-elemen Antrian dengan cara membuat Tail dan Head = -1
  2. Penghapusan elemen-elemen antrian sebenarnya tidak menghapus arraynya, namun hanya mengeset indeks pengaksesannya



  •             Tampil

  1.       Untuk menampilkan nilai-nilai elemen antrian
  2.       Menggunakan looping dari head sampai dengan tail





0 komentar:

Posting Komentar