materi 9 - queue

15
Mata Kuliah Struktur Data - 2008 Euis Marlina, S.Kom Email : [email protected] http://euismarlina.edublogs.org HP : 08179424319

Upload: euis-marlina

Post on 08-Jun-2015

936 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Materi 9 - Queue

Mata Kuliah Struktur Data - 2008

Euis Marlina, S.Kom

Email : [email protected]://euismarlina.edublogs.org

HP : 08179424319

Page 2: Materi 9 - Queue

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

Page 3: Materi 9 - Queue

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

Page 4: Materi 9 - Queue

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

Page 5: Materi 9 - Queue

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

Page 6: Materi 9 - Queue

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

Page 7: Materi 9 - Queue

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

Page 8: Materi 9 - Queue

Create Empty Enqueue Full Dequeue getfront

Mata Kuliah Struktur Data - 2008

Page 9: Materi 9 - Queue

Create Empty Enqueue Dequeue getfront

Mata Kuliah Struktur Data - 2008

Page 10: Materi 9 - Queue

#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

Page 11: Materi 9 - Queue

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

Page 12: Materi 9 - Queue

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

Page 13: Materi 9 - Queue

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

Page 14: Materi 9 - Queue

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

Page 15: Materi 9 - Queue

Mata Kuliah Struktur Data - 2008