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
2. 2). a. Deklarasi Awal Queue.
#define max 7
int head=-1, tail=-1;
bool IsEmpty(){
if(head == -1 &&
tail == -1)
return true;
else
return false;
}
</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
0 Komentar