QUEUE (ANTRIAN)
A.
Pengertian
Queue (Antrian)
Queue pada
Struktur Data atau antrian adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung
disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen)
dilakukan lewat ujung lain (disebut dengan sisi depan atau front) Queue atau
antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO
(First In First Out). Queue atau antrian banyak kita jumpai dalam
kehidupan sehari-hari, ex: antrian Mobil diloket
Tol, Antrian mahasiswa Mendaftar, dll. Contoh lain dalam bidang komputer adalah
pemakaian sistem komputer berbagi waktu(time-sharing computer system) dimana
ada sejumlah pemakai yang akan menggunakan sistem tersebut secara serempak.
Pada Queue atau
antrian Terdapat satu buah pintu masuk di suatu ujung dan satu buah pintu keluar di ujung satunya
dimana membutuhkan variabel Head dan Tail ( depan/front, belakang/rear).
B. Karakteristik Queue atau antrian
Queue memiliki
beberapa karaakteristik yaitu:
1. elemen antrian
2. front
(elemen terdepan antrian)
3. tail (elemen terakhir)
4. jumlah
elemen pada antrian
C.Perbedaan Queue dan Stack.
1.
Sementara
Queue
memakai siste FIFO atau first in first out (yang pertama masuk akan keluar
pertama, begitu pula yang masuk terakhir akan keluar terakhir) yang apabila
kita menghapus / mengeluarkan data, maka data yang pertamalah yang akan
terhapus/ keluar terdahulu dan data yang terakhir akan terhapus/ keluar
terakhir.
2.
Stack
memakai sistem LIFO atau last in first out (yang pertama masuk akan keluar
terakhir, begitu pula yang terakhir masuk akan keluar pertama kali) yang
apabila kita mengahapus/ keluar data, maka data yang terakhirlah yang akan
terhapus/ keluar terlebih dahulu.
D. Manfaat
Queue
Queue memiliki manfaat yaitu :
1.
Digunakan
sistem operasi untuk mengatur eksekusif task da) lam suatu sistem untuk
mencapai pelakuan yang adil.
2.
Untuk
milbox dalam komunikasi antar proses
3.
Untuk buffer dalam mekanisme priinstpoler
komunikasi data
4.
Untuk simulasi
dan modeling ( misalnya sistem modeling pengendalian
5.
lalu lintas
udara )
6.
Simulasi antar
dunia nyata
E. Listing program
#include
<stdio.h>
#include
<stdlib.h>
#include
<conio.h>
#define
MAX 5
#include
<iostream>
using
namespace std;
typedef
struct
{
int
data [MAX];
int
head;
int
tail;
}Queue;
Queue
antrian;
void
Create()
{
antrian.head=antrian.tail=-1;
}
int
IsEmpty()
{
if(antrian.tail==-1)
return
1;
else
return
0;
}
int
IsFull()
{
if(antrian.tail==MAX-1)
return
1;
else
return
0;
}
void
Enqueue(int data)//menginput sebah dta
{
if(IsEmpty()==1)
{
antrian.head=antrian.tail=0;
antrian.data[antrian.tail]=data;
printf("%d
Data Telah Masuk !",antrian.data[antrian.tail]);
//
void Tampil();
//
{
//
if(IsEmpty()==0)
//
{
//
for(int i=antrian.head;i<=antrian.tail;i++)
//
{
//
printf("%d ",antrian.data[i]);
//
}
//
}
//
else
//
printf("Data Kosong !\n");
//
}
}
else
if(IsFull()==0)
{
antrian.tail=antrian.tail+1;
antrian.data[antrian.tail]=data;
printf("%d
masuk !", antrian.data[antrian.tail]);
}
}
int
Dequeue()
{
int
i;
int
e=antrian.data[antrian.head];
for(i=antrian.head;i<=antrian.tail-1;i++)
{
antrian.data[i]=antrian.data[i+1];
}
antrian.tail--;
return
e;
}
void
Clear()
{
antrian.head=antrian.tail=-1;
printf("Data
Clear");
}
void
Tampil()
{
if
(IsEmpty()==0)
{
for
(int i=antrian.head;i<=antrian.tail; i++)
{
printf("%d
",antrian.data[i]);
}
}
else
{
printf("Data
Kosong\n");
}
}
int
main()
{
int
pil;
int
data;
Create();
do
{
system("cls");
printf
("\n MENU PILIHAN PROGRAM QUEUE\n");
printf
("1. Enqueue\n");
printf
("2. Dequeue\n");
printf
("3. Tampil\n");
printf
("4. Clear\n");
printf
("5. Keluar\n");
printf
("Masukkan Pilihan Anda : ");
scanf("%d",&pil);
switch(pil)
{
case
1:
printf("Data
: ");
scanf("%d",&data);
Enqueue(data);
break;
case
2:
printf("Elemen
yang keluar : %d", Dequeue());
break;
case
3:
Tampil();
break;
case
4:
Clear();
break;
case
5:
break;
}
getch();
}
while(pil!=5);
}
|