materi 9 - queue
TRANSCRIPT
Mata Kuliah Struktur Data - 2008
Euis Marlina, S.Kom
Email : [email protected]://euismarlina.edublogs.org
HP : 08179424319
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
manusiaSistem Komputer Pemrosesan banyak job (tugas) pada sistem
multiprogrammingSistem 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