PERTEMUAN XIII - QUEUE

 



            RUANG INFORMATIKA -  Pada artikel kali ini ingin sharing soal mata kuliah algoritma dan pemrograman yang di mana tugasnya adalah Queue dengan ketentuan soal nya sebagai berikut :

Baca Juga : Contoh Program C++ yang Sederhana & Penjelasannya


Queue

    Queue atau Antrian merupakan kumpulan elemen dengan penyisipan dan penghapusan elemen yang dilakukan dari sisi/gerbang yang berbeda.

 Penyisipan dilakukan dari gerbang belakang dan penghapusan dilakukan dari gerbang depan. 

Hal ini menunjukan bahwa untuk Queue mempunyai dua gerbang yaitu gerbang depan dan gerbang belakang. 

Dengan demikian dapat dilihat bahwa Queue mempunyai sifat FIFO (first In Firs Out), yaitu elemen yang pertama masuk akan keluar pertama juga. 

Queue dapat direpresentasikan dengan menggunakan Array atau Linked List.

Operasi-operasi pada Queue


Sama halnya dengan stack, operasi yang dapat dilakukan pada suatu Queue pada dasarnya adalah penyisipan elemen dan penghapusan elemen. 


Disamping itu juga dapat dilakukan operasi untuk mengecek apakah Queue kosong atau penuh, macam-macam operasi untuk mengecek Queue antara lain :

l) Operasi Inisialisasi 

2) Operasi Queue Kosong

3) Operasi Queue Penuh

4) Operasi Mengosongkan Queue

5) Operasi Penyisipan Elemen Queue 

6) Operasi Penghapusan Elemen Queue 

7) Operasi Pencetakan Isi Queue



Baca Juga : Contoh Program Sederhana C++ Menghitung Volume dan Luas Permukaan Bola.


TUGAS PENDAHULUAN


l .     Apa yang dimaksud dengan Queue !

2.      Tuliskan Deklarasi sintaks Queue !

3.      Sebutkan dan Jelaskan operasi-operasi pada Queue !

4.      Jelaskan Aplikasi-Aplikasi Queue dalam dunia nyata!


JAWABAN


 1). Queue atau Antrian merupakan kumpulan elemen dengan penyisipan dan penghapusan elemen yang dilakukan dari sisi/gerbang yang berbeda.

 

2.      2).  a. Deklarasi Awal Queue.

#define max 7

 int data[max];

int head=-1, tail=-1;

 b. IsEmpty.

bool IsEmpty(){

   if(head == -1 && tail == -1)

       return true;

   else

       return false;

}

 c. IsFull.

</pre>

<pre style="text-align: justify;">bool IsFull(){

   if(tail == max-1)

return true;

else

return false;

}

d. Enqueue.

void Enqueue(){

if(IsFull()) {

cout<<"Antrian sudah penuh, mohon tunggu beberapa saat lagi ";

getch();

} else {

if (IsEmpty()){

           head=tail=0;

           cout<<"Masukkan data : ";cin>>data[tail];

       } else {

           tail++;

           cout<<"Masukkan data : ";cin>>data[tail];

       }

   }

}

e.  Dequeue.

void Dequeue(){

      if(IsEmpty()){

          cout<<"Antrian kosong ! ";

          getch();

      } else {

      cout<<"Data yang diambil : "<<data[head];

      for(a=head;a<=tail-1;a++)

          data[a]=data[a+1];

      tail--;

      if(tail == -1)

head = -1;

      }

}

f.  Clear.

void Clear(){

     head=tail=-1;

     cout<<"Antrian sudah dikosongkan ! ";getch();

}

g.  View.

void View(){

     if(IsEmpty()){

         cout<<"Antrian kosong ! ";

         getch();

     } else {

         for(a=head;a<=tail;a++)

              cout<<"Data pada antrian ke "<<a<<" = "<<data[a]<<endl;

         getch();

     }

}

Fungsi – fungsi yang ada sudah ditranslate kedalam bahasa C++.  Sekarang kita tinggal membuat fungsi main nya.

main(){

int jawab;

do{

clrscr();

cout<<"--------- Program Queue by adeethunix ------------"<<endl;

cout<<"1. Enqueue "<<endl;

cout<<"2. Dequeue "<<endl;

cout<<"3. Clear "<<endl;

cout<<"4. View "<<endl;

cout<<"5. Exit "<<endl;

cout<<"Masukkan pilihan Anda : ";

cin>>jawab;

switch(jawab){

case 1:

Enqueue();break;

case 2:

Dequeue();break;

case 3:

Clear();break;

case 4:

View();break;

}

}while (jawab != 5);

}

3.  



3. 3). Operasi-operasi pada Queue:

Baca Juga : Program Sederhana C++ Metode Stack

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.

 

4.  4). Queue dalam kehidupan sehari-hari seperti :

Antrian pada penjualan tiket kereta api, dimana orang yang pertama datang adalah orang yang pertama kali dilayani untuk membeli tiket. Jika ada orang baru yang datang akan membeli tiket, maka posisinya berada pada urutan paling belakang dalam antrian tersebut.

Orang yang berada pada posisi terakhir dalam antrian adalah yang terakhir kali dapat dilayani dan memperoleh tiket kereta api (kalau kurang beruntung, maka akan kehabisan tiket). Contoh lain adalah nasabah yang antri di teller bank, paket data yang menunggu untuk di transmisikan lewat internet, antrian printer dimana terdapat antrian print job yang menunggu giliran untuk menggunakan printer dan sebagainya.



Baca Juga : Programan C++ Menghitung Luas Persegi Panjang


Jawab, di sarankan menggunakan program Dev C++ agar codenya bisa

kompatibel. Sekian dari RUANGINFORMATIKA cara Queue



Posting Komentar

0 Komentar

Apa Itu Algoritma Pemrograman?Fungsi, Cara Kerja & Contohnya