materi 9 - queue

Post on 08-Jun-2015

936 Views

Category:

Documents

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Mata Kuliah Struktur Data - 2008

Euis Marlina, S.Kom

Email : euismarlina@gmail.comhttp://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

top related