Anda di halaman 1dari 15

Euis Marlina, S.

Kom

Email : euismarlina@gmail.com
http://euismarlina.edublogs.org
HP : 08179424319

Mata Kuliah Struktur Data - 2008


 Queue/antrian adalah ordered list dengan
penyisipan di satu ujung, sedang penghapusan
di ujung lain.
 Ujung penyisipan disebut rear/tail.
 Ujung penghapusan disebut front/head.
 Head/front menunjuk ke awal antrian(elemen
terdepan), sedangkan tail/rear menunjuk ke
akhir antrian (elemen paling belakang).
 Bersifat FIFO (First In First Out) yaitu Elemen
yang pertama kali masuk ke antrian akan keluar
pertama kalinya.

Mata Kuliah Struktur Data - 2008


Simulasi antrian di dunia nyata, antara lain :
 Lalu lintas udara, tinggal landas(take-off)
dan pendaratan(landing)
 Antrian pembelian tiket di depan loket untuk
bis, kereta api, bioskop
 Antrian mobil di depan gerbang jalan tol
 Antrian kendaraan di jalan umum.

Mata Kuliah Struktur Data - 2008


Sistem Produksi
 Barisan bahan atau komponen yang akan diproses

suatu mesin
 Barisan bahan atau komponen yang akan diproses

manusia
Sistem Komputer
 Pemrosesan banyak job (tugas) pada sistem

multiprogramming
Sistem Jaringan Komputer
 Pemrosesan banyak paket yang datang dari banyak

koneksi pada suatu host, bridge, gateway.

Mata Kuliah Struktur Data - 2008


Ilmu Komputer
 Untuk mensimulasikan sistem diskrit. Perubahan pada

sistem dipicu oleh adanya kejadian(event) yang


menyebabkan perubahan status(state) pada sistem.
 Objek-objek yang terlibat pada simulasi sistem diskrit

adalah customer(yang dilayani), server(yang melayani),


buffer(tempat sementara yang menampung antrian
customer) dan clock (waktu simulasi).
 Customer dilayani sesuai dengan urutan waktu
kedatangannya, yaitu menggunakan sistem FIFO, kecuali
untuk antrian yang memperhatikan prioritas seperti antrian
pasien di ruang gawat darurat.

Mata Kuliah Struktur Data - 2008


 Create : membuat queue baru yang masih kosong
 EnQueue: Memasukkan/menyisipkan data baru pada
tail (queue)
 DeQueue: Mengeluarkan/menghapus data
terdepan/pertama dari antrian (di front), jika queue
tidak kosong
 Clear: Menghapus seluruh antrian
 Empty/IsEmpty: Memeriksa apakah antrian
kosong(mengembalikan nilai true jika queue kosong)
 Full/IsFull: Memeriksa apakah antrian penuh
(mengembalikan nilai true jika queue penuh)
 getfront: mengambil data pertama (di front), jika
queue tidak kosong.

Mata Kuliah Struktur Data - 2008


 Implementasi/representasi Queue bisa
menggunakan Array atau Linked list.

 Kelemahan representasi queue dengan array


adalah kapasitas penuh yang disediakan dapat
tidak terpakai seluruhnya yaitu bila telah terjadi
penghapusan elemen-elemen antrian awal.

Mata Kuliah Struktur Data - 2008


 Create
 Empty
 Enqueue
 Full
 Dequeue
 getfront

Mata Kuliah Struktur Data - 2008


 Create
 Empty
 Enqueue
 Dequeue
 getfront

Mata Kuliah Struktur Data - 2008


#include<iostream.h>
#include<conio.h>
#include<stdlib.h>
#define MAX 10 //ukuran maksimum queue

void insert(int queue[], int *rear, int nilai);


void del(int queue[], int *front, int *rear, int
*nilai);

int main()
{
int queue[MAX];
int front, rear;
int n, nilai;

front = rear = (-1);

Mata Kuliah Struktur Data - 2008


do
{
do
{
cout<<"Masukkan Nilai Elemen : ";
cin>>nilai;
insert(queue,&rear,nilai);

cout<<endl;
cout<<"Tekan 1 untuk Melanjutkan"<<endl;
cin>>n;

} while (n == 1);

cout<<endl;
cout<<"Tekan 1 untuk Menghapus Sebuah
Elemen"<<endl;
cin>>n;

Mata Kuliah Struktur Data - 2008


while(n == 1)
{
del(queue,&front,&rear,&nilai);
cout<<"Nilai telah dihapus :
"<<nilai<<endl;
cout<<endl;
cout<<"Tekan 1 untuk Menghapus Sebuah
Elemen : ";
cin>>n;
}
cout<<endl;
cout<<"Tekan 1 untuk Melanjutkan"<<endl;
cin>>n;
} while (n == 1);

getch();
return 0;
}

Mata Kuliah Struktur Data - 2008


void insert(int queue[], int *rear, int nilai)
{
if(*rear < MAX-1)
{
*rear = *rear + 1;
queue[*rear] = nilai;
}
else
{
cout<<"Queue Penuh, Insert Tidak Dapat
Dilakukan"<<endl;
exit(0);
}
}

Mata Kuliah Struktur Data - 2008


void del(int queue[], int *front, int *rear, int
*nilai)
{
if(*front == *rear)
{
cout<<"Queue Kosong, Delete Tidak Dapat
Dilakukan"<<endl;
exit(0);
}
else
{
*front = *front + 1;
*nilai = queue[*front];
}
}

Mata Kuliah Struktur Data - 2008


Mata Kuliah Struktur Data - 2008