• Tidak ada hasil yang ditemukan

ANTRIAN BERPRIORITAS

N/A
N/A
Protected

Academic year: 2017

Membagikan "ANTRIAN BERPRIORITAS"

Copied!
4
0
0

Teks penuh

(1)

ANTRIAN BERPRIORITAS

Antrian berprioritas adalah suatu queue yang setiap elemennya telah diberikan sebuah prioritas,

dan urutan proses penghapusan elemen adalah berdasarkan aturan berikut :

a. Elemen yang prioritasnya lebih tinggi, diproses lebih dahulu dibandingkan dengan

elemen yang prioritas lebih rendah.

b. Dua elemen dengan prioritas yang sama, diproses sesuai dengan urutan mereka sewaktu

dimasukkan ke dalam priority queue

Misalkan analogi system member adalah sebagai berikut, sebuah perusahaan menyediakan tiga

jenis member dan juga melayani orang di luar member. Misalkan tiga jenis member tersebut

adalah Silver, Gold dan Platinum, dimana Gold lebih tinggi dari Silver dan Platinum lebih tinggi

dari Gold. Suatu ketika terjadi sebuah antrian untuk pelayanan jasa dimana yang pertama

mengantri adalah person NonMember, namun kemudian dibelakangnya berturut-turut mengantri

member Silver, Gold dan Platina, maka antrian akan berubah menjadi Platinum, Gold, Silver,

NonMember berturutan dari depan, yang menyebabkan member Platinum akan dilayani atau

keluar dari antrian terlebih dahulu. Hal ini terjadi karena dalam antrian berprioritas element yang

memiliki prioritas tertinggi akan keluar terlebih dahulu, yang dalam hal ini adalah Platinum.

Oleh karenanya, dalam Queue Berprioritas tidak hanya terjadi First In First Out, tapi ditambah

dengan High Priority First Out. Setiap data dengan prioritas tinggi akan dikeluarkan terlebih

dahulu dan ketika ada data yang prioritasnya sama maka yang pertama masuk akan dikeluarkan

terlebih dahulu.

Queue berprioritas dapat disajikan dengan array mau pun pointer, dengan array maka dapat

digunakan array of record dimana recordnya berupa penyimpan data dan penyimpan prioritas.

Pembahasan yang akan dilakukan adalah dengan menggunakan pointer. Secara logika queue

berprioritas sama dengan queue biasa, hanya saja dilakukan sorting berdasarkan prioritas, data

berprioritas tinggi akan berada di bagian depan daripada data dengan prioritasnya lebih rendah.

Dan perbedaan queue berprioritas dan yang tidak, Lebih terlihat dari bagaimana ia meletakkan

(2)

Queue tanpa prioritas

Dari gambar diatas terlihat bahwa data A adalah yang masuk terlebih diikuti data B, C dan yang

terakhir adalah D, ketika ada satu data yang dikeluarkan atau hendak dihapus maka data A yang

dieksekusi.

Queue dengan prioritas

Gambar diatas adalah antrian dengan prioritas, meski nampaknya data A adalah yang pertama

kali masuk namun dalam kenyataanya bisa saja data B yang masuk terlebih dahulu, begitu pula

data-data yang lain. Hal ini dapat terjadi karena adanya prioritas. Ketika ada satu data yang

hendak dikeluarkan dari antrian maka data A yang dieksekusi terlebih dahulu karena memiliki

prioritas yang paling tinggi. Namun, ketika memasukkan data, kita harus memikirkan tempat

yang sesuai untuk data tersebut akibat prioritasnya. Contoh akan dimasukkan data Z dengan

prioritas 1.

(3)

Pembandingan prioritas terus dilakukan hingga akhirnya mendapati data yang sama prioritasnya, lebih tinggi prioritanya atau ketika antrian sudah habis. Jika pembandiangan dilakukan terus hingga antrian habis maka data yang diinputkan akan menempati posisi paling depan.

Program Queue_berprioritas;

(4)

else

begin {elemen yg akan disisipkan mempunyai prioritas tinggi} Baru^.next := temp^.next;

temp^.next := Baru end

end end;

Procedure Baca(Q:queue); var

temp : queue; begin

Temp := Q^.next; repeat

Write('Info : ',temp^.info);

writeLN(' Priorotas : ',temp^.prioritas); temp:=temp^.next;

until temp=Q; end;

begin

awal(Ngantri);

writeln('Masukkan Data / Isikan prioritas 0 untuk berhenti'); repeat

write('Informasi, Prioritas : '); readln(element,prior);

if prior <> 0 then

Enqueue(Ngantri, element, Prior); until prior=0;

writeln('Urutan Prioritas'); Baca(Ngantri);

Gambar

Gambar diatas adalah antrian dengan prioritas, meski nampaknya data A adalah yang pertama

Referensi

Dokumen terkait

Seperti halnya pada stack, untuk mengimplementasikan struktur data queue ke dalam pemrograman, kita dapat menggunakan struktur data yang pernah kita ketahui, seperti

Kalor adalah suatu bentuk energi yang berpindah dari benda yang bersuhu tinggi ke benda yang bersuhu lebih rendah ketika benda itu saling berhubungan.. Benda yang menerima

Kalor (heat) selalu berpindah dari zat yang lebih tinggi suhunya, ke zat yang lebih rendah suhunya. Tidak pernah terjadi sebaliknya, kalor berpindah dari suhu yang rendah ke suhu

Kalor adalah energi yang berpindah dari benda yang suhunya lebih tinggi ke benda yang suhunya lebih rendah ketika kedua benda bersentuhan. Kalor yang diberikan dalam

Function IsFull berguna untuk mengecek apakah Queue sudah penuh atau masih bisa menampung data dengan cara mengecek apakah tempat yang masih kosong tinggal satu atau

2) Algoritma memperbarui lokasi ketika berpindah tempat. Proses pembaruan lokasi digunakan ketika pengguna berpindah tempat dari tempat sebelumnya. Sistem mengambil data

Kalor merupakan perpindahan energi yang berpindah dari benda yang bersuhu tinggi ke benda yang bersuhu rendah ketika kedua benda bersentuhan. 44 Pada waktu zat mengalami

selesainya sebuah pelayanan pada i menyebabkan antri [j] &gt; antri [i+1] setelah selesainya pelayanan ke- i, maka orang yang berada pada ekor antrian ke-j