Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehAbdoel Jack Telah diubah "9 tahun yang lalu
1
QUEUE / ANTRIAN Queue / antrian adalah sebuah bentuk list dengan operasi penyisipan hanya dapat dilakukan pada satu sisi yang disebut belakang (REAR) dan penghapusan hanya dapat dilakukan hanya pada satu sisi lainnya yang disebut sisi depan (FRONT). Rachmansyah,S.Kom
2
QUEUE / ANTRIAN Sebuah contoh antrian Q = [Q1,Q2,…Qn]. Kita notasikan bagian depan dari antrian sebagai FRONT(Q) dan bagian belakang sebagai REAR(Q). Jadi untuk antrian Q = [Q1,Q2,…Qn] FRONT(Q) = Q1 dan REAR(Q) = Qn Untuk menyatakan jumlah elemen dinotasikan dengan NOEL(Q). Rachmansyah,S.Kom
3
QUEUE / ANTRIAN Operasi penyisipan (insertion) disebut INSERT.
Operasi penghapusan (deletion) disebut REMOVE. Rachmansyah,S.Kom
4
QUEUE / ANTRIAN Dimulai dengan antrian Q hampa. Q = [ ] NOEL(Q) = 0
Contoh: Dimulai dengan antrian Q hampa. Q = [ ] NOEL(Q) = 0 FRONT(Q) = tidak terdefenisi REAR(Q) = tidak terdefinisi Rachmansyah,S.Kom
5
QUEUE / ANTRIAN NOEL(Q) = 1 FRONT(Q) = A REAR(Q) = A
Insert elemen A sehingga Q = [A] A NOEL(Q) = 1 FRONT(Q) = A REAR(Q) = A Rachmansyah,S.Kom
6
QUEUE / ANTRIAN NOEL(Q) = 2 FRONT(Q) = A REAR(Q) = B
Insert elemen B sehingga Q = [A,B] A B NOEL(Q) = 2 FRONT(Q) = A REAR(Q) = B Rachmansyah,S.Kom
7
QUEUE / ANTRIAN NOEL(Q) = 3 FRONT(Q) = A REAR(Q) = C
Insert elemen C sehingga Q = [A,B,C] A B C NOEL(Q) = 3 FRONT(Q) = A REAR(Q) = C Rachmansyah,S.Kom
8
QUEUE / ANTRIAN NOEL(Q) = 2 FRONT(Q) = B REAR(Q) = C
Remove sebuah elemen, sehingga Q = [B,C] B C NOEL(Q) = 2 FRONT(Q) = B REAR(Q) = C Rachmansyah,S.Kom
9
QUEUE / ANTRIAN Kondisi underflow dapat terjadi jika dilakukan penghapusan pada antrian hampa. Kondisi overflow dapat terjadi jika dilakukan penyisipan pada saat kapasitas antrian sudah penuh. Antrian beroperasi dengan cara FIFO (First In First Out) Rachmansyah,S.Kom
10
QUEUE / ANTRIAN Ada 4 operasi dasar yang dapat dilakukan terhadap antrian: CREATE(Antrian) ISEMPTY(Antrian) INSERT(elemen,Antrian) REMOVE(Antrian) Rachmansyah,S.Kom
11
QUEUE / ANTRIAN Misalkan antrian Q = [Q1,Q2,…,Qnoel], maka:
CREATE(Antrian) Create(Q) adalah suatu operator untuk membentuk dan menunjukkan suatu Antrian Hampa Q. Berarti: NOEL(CREATE(Q)) = 0 FRONT(CREATE(Q)) = tak terdefenisi REAR(CREATE(Q)) = tak terdefenisi Rachmansyah,S.Kom
12
QUEUE / ANTRIAN ISEMPTY(Q)
ISEMPTY(Q) adalah suatu operator yang menentukan apakah Antrian Q hampa atau tidak. Operand dari operator ini adalah antrian dan hasilnya merupakan tipe data boolean. ISEMPTY(Q) = true, jika Q hampa, NOEL(Q) = 0 = false,jika Q tidak hampa Rachmansyah,S.Kom
13
QUEUE / ANTRIAN INSERT(elemen,antrian)
Insert(E,Q) adalah suatu operator yang menginsert elemen E ke dalam antrian Q. Elemen E akan ditempatkan di bagian belakang antrian. Hasil dari operasi ini adalah antrian yang lebih panjang Rachmansyah,S.Kom
14
QUEUE / ANTRIAN REAR(INSERT(E,Q)) = E Qnoel = E
ISEMPTY(INSERT(E,Q)) = false Rachmansyah,S.Kom
15
QUEUE / ANTRIAN REMOVE(Q)
Remove(Q) adalah suatu operator yang menghapus bagian depan dari antrian Q. Hasilnya merupakan elemen yang lebih pendek. Pada setiap operasi ini, harga dari NOEL(Q) berkurang satu dan elemen kedua dari Q menjadi elemen terdepan. Rachmansyah,S.Kom
16
QUEUE / ANTRIAN Jika : NOEL(Q) = 0, maka REMOVE(Q) memberikan suatu kondisi error yaitu underflow error. Begitu juga dengan REMOVE(CREATE(Q)), akan menghasilkan underflow error. Rachmansyah,S.Kom
17
QUEUE / ANTRIAN Penyajian dari Antrian
Antrian dapat disajikan dengan berbagai cara. Biasanya denganmenggunakan one-way-list (linier linked list) ataupun menggunakan array. Jika tidak disebutkan lain, maka antrian disajikan dalam bentuk array QUEUE. Rachmansyah,S.Kom
18
QUEUE / ANTRIAN Array QUEUE dilengkapi dengan dua variabel penunjuk.
FRONT berisi lokasi dari elemen depan antrian REAR berisi lokasi dari elemen belakang antrian Nilai FRONT = null menunjukkan bahwa antrian adalah hampa. Rachmansyah,S.Kom
19
QUEUE / ANTRIAN AAA BBB CCC DDD BBB CCC DDD FRONT : 1 REAR : 4
REMOVE FRONT : 2 REAR : 4 BBB CCC DDD …… N Rachmansyah,S.Kom
20
QUEUE / ANTRIAN Penggunaan Array Sirkular Pada awal hampa FRONT = 0
REAR = 0 INSERT A dan B FRONT = 1 REAR = 2 A B Rachmansyah,S.Kom
21
QUEUE / ANTRIAN Penggunaan Array Sirkular INSERT C,D,E FRONT = 1
REAR = 5 A B C D E REMOVE A,B,C FRONT = 4 REAR = 5 D E Rachmansyah,S.Kom
22
QUEUE / ANTRIAN Penggunaan Array Sirkular INSERT F FRONT = 4 REAR = 1
D E REMOVE D FRONT = 5 REAR = 1 F E Rachmansyah,S.Kom
23
QUEUE / ANTRIAN Penggunaan Array Sirkular INSERT G,H FRONT = 5
REAR = 3 F G H E REMOVE E FRONT = 1 REAR = 3 F G H Rachmansyah,S.Kom
24
Antrian Berprioritas Antrian berprioritas adalah himpunan elemen, yang setiap elemennya telah diberikan prioritas. Urutan penghapusan elemen berdasarkan aturan berikut: Elemen yang prioritasnya lebih tinggi, diproses lebih dahulu dibandingkan dengan elemen yang prioritasnya lebih rendah. Dua elemen dengan prioritas yang sama. Diproses sesuai dengan urutan mereka sewaktu masuk ke dalam antrian.
25
Antrian Berprioritas Ada bermacam cara penyajian antrian ini, diantaranya: One-way List Multiple Queue Kemudahan dan kesulitasn dalam operasi penambahan/penghapusan tergantung pada penyajian mana yang akan dipilih.
26
Antrian Berprioritas Penyajian One-way List
Ketentuan penyajian one-way list: Setiap simpul dalam list akan berisi tiga buah data yaitu: Informasi(INFO) Nomor Prioritas(PRN) Nomor Link (LINK)
27
Antrian Berprioritas b. Simpul X mendahului simpul Y dalam list bila:
* X mempunyai prioritas lebih tinggi dari Y. * keduanya memiliki prioritas yang sama, tapi X masuk ke dalam antrian lebih dahulu dari pada Y.
28
Diagram skematik Antrian berprioritas
AAA 1 BBB 2 EEE 4 DDD 4 CCC 2 GGG x FFF 4 START Diagram skematik Antrian berprioritas
29
Antrian berprioritas dalam memori
INFO PRN LINK BBB DDD FFF EEE CCC AAA GGG 7 12 11 10 11 10 9 8 7 6 5 4 3 2 1 START AVAIL 12
30
Antrian Berprioritas Algoritma penghapusan: Hapus ITEM.
LINK(START) = LINK(ITEM) Algoritma penambahan: Telusuri list sampai ditemukan suatu simpul yang nilai prioritasnya lebih tinggi dari nilai prioritas ITEM.Sisipkan ITEM di depannya. Jika tidak ditemukan simpul seperti itu, sisipkan sebagai elemen terakhir dari list.
31
Antrian Berprioritas PENGAPUSAN START AAA 1 BBB 2 EEE 4 DDD 4 CCC 2
GGG x FFF 4
32
Antrian Berprioritas PENYISIPAN START XXX 2 AAA 1 BBB 2 CCC 2 DDD 4
EEE 4 FFF 4 GGG x
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.