QUEUE Denny Agustiawan,M.pd

Slides:



Advertisements
Presentasi serupa
Queue (Antrian).
Advertisements

bentuknya, yang dapat berubah pada saat runtime.
Rahmat Deddy Rianto Dako, ST, M.Eng
QUEUE II. IMPLEMENTASI QUEUE
STRUKTUR DATA PERTEMUAN 6
QUEUE.
Queue.
Pertemuan (6) QUEUE (ANTREAN) IMAM SIBRO MALISI NIM :
Algoritma dan Struktur Data
STACK (Tumpukan).
Struktur Data (Data Structure) – IS 2313
QUEUE (antrian).
STRUKTUR DATA (4) Array Stack(Tumpukkan) dan Queue (Antrian)
Queue.
Antrian (Queue) Membentuk Antrian 5 4 Depan Belakang.
Queue.
QUEUE (ANTRIAN).
QUEUE / ANTRIAN Queue / antrian adalah sebuah bentuk list dengan operasi penyisipan hanya dapat dilakukan pada satu sisi yang disebut belakang (REAR) dan.
4 QUEUE (ANTREAN) BAB Definisi Queue (antrean)
Mempelajari tipe data queue dan bagaimana menggunakan fungsi insert, remove, is_empty dan is_full. Mempelajari bagaimana mengimplementasikan queue dengan.
Linear Data Structures (Queue)
Linear Data Structures (Stack)
Circular Queue.
Matakuliah : T0534/Struktur Data Tahun : 2005 Versi : September 2005
ANTRIAN ( QUEUE ) Fajrizal.
ANTRIAN Farid Wajdi Yusuf Pendidikan Teknik Informatika dan Komputer
STRUKTUR DATA Queue atau Antrian.
Pertemuan : Algoritma & Struktur Data
BAB 3 STACK (TUMPUKAN).
Stack.
Queue By Serdiwansyah N. A. 1. Queue Penambahan data dilakukan pada sebuah ujung sebuah list, sedangkan penghapusan data dilakukan pada ujung yang lain.
Program Studi Teknik Informatika
BAB3 QUEUE 6.3 & 7.3 NESTED LOOP.
QUEUE Copyright 2008 by Yohana.
Program Studi Teknik Informatika
Defri Kurniawan QUEUE Defri Kurniawan
Antrian (Queue).
STACK Denny Agustiawan,M.pd
Struktur Organisasi Data 2
Queue.
STRUKTUR DATA QUEUE (Antrian)
STACK (Tumpukan).
QUEUE (ANTRIAN ) Disusun Oleh : Kelompok 2 Siti Hajar ( )
Program Studi Teknik Informatika
Program Studi Teknik Informatika
STRUKTUR DATA Chapt 5 : QUEUE Oleh : Yuli Praptomo PHS, S.Kom.
Struktur Data Khoiriya Latifa, M.Kom.
TEAM 1 Cut Hayatul Wardani ( ) Saputri Phonna ( ) Azhary (140502)
Program Studi Teknik Informatika
Antrian Dengan Array Ika Menarianti.
NAMA : SITI HAJAR NIM : UNIT : B NO.HP : 0852 – 2000 – 3786.
Nama : Siti Hajar Nim : Unit : B/III No.Hp : 0852 –
Program Studi Teknik Informatika
UJIAN TERDIRI ATAS 50 SOAL
Circular QUEUE 6.3 & 7.3 NESTED LOOP.
STACK (Tumpukan).
STACK / TUMPUKAN Struktur Data.
Algoritme dan Stuktur Data
Queue(Antrian).
QUEUE (Antrian) #Kulia 6 Algoritma dan Struktur Data.
Algoritma dan Struktur Data
STRUKTUR DATA PERTEMUAN 7
STRUKTUR DATA PERTEMUAN 4
STRUKTUR DATA QUEUE.
Kode MK/ Pemrograman Terstruktur 2
STRUKTUR DATA Teknik Informatika S1
BAB 3 STACK (TUMPUKAN).
Queue Algoritma dan Struktur Data.
QUEUE (Antrian).
Defri Kurniawan QUEUE DENGAN LIST Defri Kurniawan
Transcript presentasi:

QUEUE Denny Agustiawan,M.pd STRUKTUR DATA QUEUE Denny Agustiawan,M.pd STMIK Asia Malang – 2011

Definisi Queue adalah suatu linear list di mana operasi DELETE terjadi pada sisi depan (FRONT) dan operasi INSERT terjadi pada sisi belakang (REAR). Jika diberikan suatu Queue Q dengan elemen- elemennya yang terdiri atas Q1, Q2, ....., QT maka queue Q dituliskan Q = [ Q1, Q2, .........., QT ] FRONT(Q) = Q1 REAR(Q) = QT Selanjutnya untuk menyatakan jumlah elemen dalam suatu queue Q digunakan notasi NOEL(Q). Catatan : Satu pengoperasian berlaku hanya untuk satu elemen.

Queue Dalam Bahasa Indonesia disebut antrian. Contoh antrian di loket  FIFO (First In First Out) Dalam struktur data, semua akses insert mengambil tempat pada satu ujung akhir (REAR), sedangkan semua akses delete mengambil tempat pada ujung lainnya (FRONT) FRONT (head) : menunjuk pada elemen pertama yang ada dalam queue. REAR (tail) : menunjuk pada elemen terakhir yang ada dalam queue.

Queue Keadaan awal dari queue adalah F=R=0 (queue dalam keadaan kosong / “empty queue”) Data yang masuk dalam queue, akan masuk dari bagian belakang (REAR) Data yang dihapus dari queue, akan dihapus dari bagian depan (FRONT)

Gambar Queue Untuk menggambarkan suatu queue dapat dilakukan beberapa cara Misal : diberikan Queue Q = [A, B, C, D, E, F], maka Queue Q dapat digambarkan sebagai berikut : atau dapat pula digambarkan dengan posisi tegak. A B C D E F FRONT REAR F E D C B A REAR FRONT

Contoh Queue Delete Insert F = R =0 A B C F=R=1 F=2 R=3 A B C F=1 R=2 insert “A” Delete F=R=1 F=2 R=3 A B C insert “B” Delete F=1 R=2 F=R=3 A B C insert “C” Delete F=1 R=3 F=R=0

Prinsip Kerja Queue Prinsip kerja Queue adalah FIFO (First In First Out), di mana data yang masuk terlebih dahulu akan keluar pertama.

Operasi-operasi Pada Queue (Q) Terdapat empat operasi dasar yang didefinisikan pada queue, yaitu : CREATE ISEMPTY INSERT REMOVE

CREATE Bentuk Umum : CREATE(Queue) Suatu operasi CREATE(Q) akan menghasilkan suatu queue kosong dengan nama Q, dan didefinisikan bahwa : NOEL(CREATE(Q)) = 0 FRONT(CREATE(Q)) = tidak terdefinisi REAR(CREATE(Q)) = tidak terdefinisi

ISEMPTY Bentuk Umumnya adalah : ISEMPTY(queue) Jika Q adalah Queue, maka ISEMPTY(Q) adalah suatu operasi yang digunakan untuk memeriksa apakah Queue Q adalah queue kosong. Jika hasil dari operasi ini akan berjenis data boolean (true/false), dengan bentuk sebagai berikut : ISEMPTY(Q) = True, jika Q adalah queue kosong. = False, jika Q bukan queue kosong.

INSERT Bentuk Umumnya : INSERT(elemen, Queue) INSERT(E,Q), di mana E = elemen dan Q = queue, adalah suatu operasi yang digunakan untuk memasukkan elemen E ke dalam queue Q. Didefinisikan, bahwa elemen E akan menjadi elemen yang berada pada posisi REAR dari queue Q. Akibat dari operasi ini adalah : - REAR(INSERT(E,Q)) = E - NOEL(Q) bertambah satu dan QNOEL adalah E Jika Q adalah queue kosong, maka : ISEMPTY(INSERT(E,Q)) = False Dalam bentuk statement Pascal, biasanya dituliskan : IF ISEMPTY(Q) Then front(insert(E,Q)) = E Else front(insert(E,Q)) = front(Q) ;

REMOVE Bentuk Umum : REMOVE(elemen, queue) REMOVE(Q) berarti mengeluarkan elemen Q yang berada pada posisi FRONT. Akibat dari operasi ini, elemen Q akan berkurang satu dan elemen kedua (elemen yang berada disebelahnya) akan menjadi elemen yang berada pada posisi FRONT dari queue Q ini. Selanjutnya, jika Q adalah queue kosong, maka REMOVE(Q) akan menghasilkan suatu Error. IF NOEL(Q) = 0 Then Remove(Q) = erroe_condition Remove(create(Q)) = error_condition

Deklarasi Queue Dalam Pascal Dalam bahasa pemrograman biasanya tidak ada fasilitas queue (built in queue). Untuk itu setiap programmer harus mendefinisikan sendiri dengan bantuan fasilitas yang ada. Pada umumnya fasilitas yang digunakan untuk mendeklarasikan queue adalah Array. Bentuk deklarasinya dalam bahasa Pascal adalah sebagai berikut : TYPE StrukQueue = Record Q : Array[1..100] of integer; Front, Rear : integer; End; VAR Q : StrukQueue;

Procedur dlm Bahasa Pemrograman Selanjutnya untuk keperluan operasinya (bentuk proses atau logikanya), harus dibuat suatu procedure tersendiri dan disesuaikan dengan aturan-aturan yang berlaku (yang telah didefinisikan). Berikut ini contoh sebuah procedure yang digunakan untuk menggantikan operator insert. Pada procedure berikut ini dimisalkan eon adalah elemen yang akan dimasukkan ke dalam queue dan noelmax adalah kapasitas maximum elemen-elemen yang dapat ditampung dalam queue.

Procedure INSERT Procedure INSERT (eon : integer); Begin If (q.rear < noelmax) Then Begin q.rear := q.rear + 1; q.queue[q.rear] := eon; If (q.front = 0) Then q.front := 1 End Else overflow_condition End;

Procedure REMOVE Begin If (q.front > 0) Then Begin Procedure REMOVE(var eoff : integer); Begin If (q.front > 0) Then Begin eoff := q.queue[q.front]; If (q.front = q.rear) q.front := 0; q.rear := 0; End Else q.front := q.front + 1 Else underflow-condition End;

Kelemahan Queue Walaupun masih ada tempat kosong dalam queue, tetapi bila R=F=Max queue, maka tidak dapat dilakukan penambahan elemen ke dalam queue.

Circular Queue Pada Circular queue, meskipun REAR = maxqueue, tetap dapat menambahkan elemen lagi ke dalamnya selama masih ada tempat yang tersedia dalam queue, hal ini menyebabkan nilai REAR dapat lebih kecil dari nilai FRONT. … i n … 1 4 3 2

Contoh Circular Queue Misal : ada 4 elemen (j1-j4 dengan n>4) if R = n-1 then R  0 else R  R+1 add: R  (R+1) mod n delete: F  (F+1) mod n if F = R, then full_queue

Latihan Misal maxqueue = 7 Ikuti perintah-perintah berikut dan ilustrasikan hasilnya (Linier Queue) Initqueue Insert L Insert A Insert T Insert I Insert H Insert N Delete Insert I Insert H