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); 
} | 
 
 
Tidak ada komentar:
Posting Komentar