Senin, 23 April 2018

Tugas Pendahuluan Pertemuan 13 QUEUE


PERTEMUAN  XIII
QUEUE

TUGAS PENDAHULUAN
1.      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.      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. Operasi-operasi pada 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.

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.

Contoh aplikasi Queue dalam dunia nyata :
1.      Aplikasi antrian di jalan Tol.
2.      Aplikasi antrian saat mengantri di loket.
3.      Aplikasi antraian reservasi tiket kereta api, dll.
Semua itu menggunakan aturan FIFO (First In, First Out).

Related Posts:

  • Tugas Akhir Pertemuan 6 SEARCHING//Nama     : Muhammad Zuhri //NIM      : 2016140614 //Kelas : 04TPLP011 //Tugas Akhir Struktur Data Pertemuan 6.cpp #include <iostream> #include <conio.h> using namespace std; m… Read More
  • Tugas Akhir Pertemuan 9 SORTING (Lanjut 2)//Nama     : Muhammad Zuhri //NIM      : 2016140614 //Kelas : 04TPLP011 //Tugas Akhir Struktur Data Pertemuan 9.cpp #include<stdio.h> #include<stdlib.h> #include<string.h>… Read More
  • Tugas Akhir Pertemuan 5 FUNCTION//Nama     : Muhammad Zuhri //NIM      : 2016140614 //Kelas : 04TPLP011 //Tugas Akhir Struktur Data Pertemuan 5.cpp #include <iostream> #include <conio.h> #include <stdio.h&g… Read More
  • Tugas Akhir Pertemuan 8 SORTING (Lanjut 1)//Nama     : Muhammad Zuhri //NIM      : 2016140614 //Kelas : 04TPLP011 //Tugas Akhir Struktur Data Pertemuan 8.cpp #include <iostream> #include <stdio.h> #include <conio.h&g… Read More
  • Tugas Akhir Pertemuan 7 SORTING//Nama     : Muhammad Zuhri //NIM      : 2016140614 //Kelas : 04TPLP011 //Tugas Akhir Struktur Data Pertemuan 7.cpp #include <iostream> #include <conio.h> #include <stdio.h&g… Read More

0 komentar:

Posting Komentar