QUEUE / ANTREAN Pertemuan 7 Yani sugiyani, M.Kom
1
QUEQUE Queue atau antrean adalah suatu bentuk khusus dari list linier, dengan operasi penyisipan (insertion) hanya diperbolehkan pada salah satu sisi, yang disebut sisi belakang (REAR) dan operasi penghapusan (deletion) hanya diperbolehkan pada sisi lainnya, yang disebut sisi depan (FRONT) dari list 2
QUEQUE Jadi untuk antrean Q = [Q1, Q2, … … , Qn] FRONT(Q) = Q1 dan REAR(Q) = Qn
3
QUEQUE Istilah yang digunakan dalam Queue : FRONT(QUEUE) Posisi elemen depan / teratas dari antrean REAR(QUEUE) Posisi elemen Belakang / terbawah dari antrean NOEL(QUEUE) Operator yang berfungsi untuk mengetahui jumlah elemen dalam antrean FIFO Operasi dari antrean (pertama masuk pertama keluar)
4
QUEQUE Operasi yang dapat dilakukan terhadap Queue/antrean: CREATE(QUEUE) Operasi yang berfungsi untuk membuat antrean menjadi kosong ISEMPTY(QUEUE) Operasi yang berfungsi untuk mengetahui kondisi elemen dalam antrean apakah kosong atau tidak. Hasilnya bertype boolean. INSERT(ELEMEN, QUEUE) Operasi yang berfungsi untuk memasukkan elemen ke dalam antrean. REMOVE(QUEUE) Operasi untuk mengeluarkan elemen dari antrean.
5
QUEQUE
6
QUEQUE
7
PENYAJIAN QUEQUE Antrean dapat disajikan di dalam komputer dalam berbagai cara. Biasanya dengan menggunakan one way list (linier list) ataupun menggunakan array. Bila tidak disebutkan maka antrean akan disajikan dalam bentuk array queue, dengan dilengkapi dua variabel penunjuk. FRONT, berisi lokasi dari elemen depan dan REAR, berisi lokasi dari elemen belakang. Bila nilai FRONT = NULL, menunjukan bahwa antrean adalah hampa.
8
QUEQUE
9
QUEQUE Dapat kita lihat bahwa pada setiap kali penghapusan, nilai lokasi FRONT akan bertambah 1. Untuk setiap kali pemasukan elemen, nilai REAR akan bertambah 1. Hal ini berakibat bahwa setelah pemasukkan elemen ke n (berawal dari antean hampa), maka lokasi Queue(n) telah diduduki. Disini mungkin saja tidak sebanyak n elemen ada dalam antrean (karena sudah dilakukan beberapa penghapusan). 10
ARRAY SIRKULAR Untuk melakukan pemasukkan berikutnya, yakni memasukkan elemen, kita dapat menggunakan lokasi Queue(1), demikian seterusnya. Dalam hal ini, kita menggunakan array sirkular, yakni bahwa Queue(1) datang sesudah Queue(n). berdasarkan asumsi ini, maka REAR adalah 1. Secara yang sama, jika FRONT = n dan kita akan melakukan penghapusan, maka sekarang FRONT adalah 1 bukan n + 1.
11
ARRAY SIRKULAR
Antrean yang disimpan dalam array dengan 5 lokasi memory sebagai array sirkular.
12
ARRAY SIRKULAR
13
DEQUE Deque merupakan bentuk variasi dari struktur data antrean / queue. Struktur data tersebut adalah deque (Deck atau Dequeue) dan antrean berprioritas (Priority Queue). Deque adalah suatu list linier atau linear list yang penambahan dan penghapusan elemennya dapat dilakukan pada kedua sisi ujung list tetapi tidak dapat dilakukan ditengah – tengah list. Dengan definisi tersebut maka deque dapat disebut sebagai Queue Ganda atau Double Queue.
14
DEQUE Penyajian deque adalah dengan array sirkular atau array putar Deque. Disini kita menggunakan dua pointer atau penunjuk, LEFT dan RIGHT yang berturut – turut menunjukkan pada sisi kiri dan sisi kanan dari deque. Kita senantiasa mengasumsikan bahwa elemen deque berurut dari kiri ke kanan. Pengertian sirkular timbul karena elemen deque(1) berada sesudah elemen deque(n) dari array. Kondisi LEFT = NULL untuk menyatakan bahwa suatu deque adalah hampa.
15
DEQUE Selain deque yang kita sebutkan sebelumnya, masih ada 2 model variasi deque. Deque Input terbatas Suatu deque yang membatasi pemasukkan elemen hanya pada satu ujung dari list, sementara penghapusan elemen boleh dilakukan pada kedua ujung list. Deque Output terbatas Suatu deque yang hanya memperbolehkan penghapusan elemen pada salah satu ujung, tetapi memperbolehkan pemasukkan elemen pada kedua ujung list.
16
DEQUE Komplikasi yang dapat timbul dalam proses deque : Terjadi Overflow, yakni pada saat suatu elemen dimasukkan ke dalam deque yang sudah terisi penuh. Terjadi Underflow, yakni bila suatu elemen harus dihapus dari deque yang sudah hampa. 17
ANTREAN BERPRIORITAS Antrean berprioritas adalah himpunan elemen yang setiap elemennya telah diberikan sebuah prioritas dan urutan proses penghapusan elemen adalah berdasarkan aturan berikut : Elemen yang prioritasnya lebih tinggi, diproses lebih dahulu dibandingkan dengan elemen yang prioritasnya lebih rendah.
18
ANTREAN BERPRIORITAS
Dua elemen dengan prioritas yang sama, diproses sesuai dengan urutan mereka sewaktu dimasukkan ke dalam priority Queue.
19
ANTREAN BERPRIORITAS
Suatu prototype dari antrean berprioritas adalah sistem time sharing. Disini program dengan prioritas yang lebih tinggi diproses terlebih dahulu dan sejumlah program dengan prioritas yang sama akan membentuk queue yang standar.
20
KERJA PROSESSOR
21
ANTREAN BERPRIORITAS PRIORITAS : Mendahului pada antrian proses PREEMPSI : Menyerupai prioritas, proses di bagian belakang antrian akan segera beralih ke bagian paling depan dari antrian itu. Bahkan lebih dari itu, jika prosessor sedang bekerja, maka preempsi menghentikan kerja prosessor, mengeluarkan pekerjaan di dalam prosessor itu
22
PENJADWALAN PROSESSOR
23
1. PTPD
Pertama Tiba Pertama Dilayani (PTPD) ada juga yang menyebutnya dengan First Come First Served (FCFS) atau juga First In First Out (FIFO) merupakan penjadwalan tanpa prioritas dan tanpa preempsi, merupakan proses serentak tersusun dalam antrian murni.
1. PTPD
Pada PTPD proses yang tiba lebih dahulu akan dilayani lebih dahulu. Kalau proses itu tiba pada waktu yang sama, maka pelayanan dilaksanakan berdasarkan urutan mereka dalam antrian. Tidak menjadi soal apakah lama proses mereka singkat atau lama, untuk dilayani oleh prosessor. Proses di antrian belakang harus menunggu sampai semua proses di depannya rampung dilaksanakan.
2. PTD
Proses Terpendek Dipertamakan (PTD) disebut juga Shortest Job First (SJF) merupakan penjadwalan dengan prioritas tanpa preempsi. Dasar prioritas adalah pendeknya proses. Makin pendek proses makin tinggi prioritasnya.
2. PTD Langkah pertama yang kita lakukan adalah penentuan urutan prioritas berdasarkan pendeknya proses yang dilayani. Langkah kedua adalah penentuan saat tertentu, proses mana yang perlu dilayani oleh prosessor. Sekalipun urutan prioritas sudah ditentukan, namun proses yang tiba lebih dahulu yang akan diproses terlebih dahulu dengan prioritas proses yang terpendek.
3. PTDP
Proses Terpendek Dipertamakan Preempsi (PTDP) disebut juga Preemptive Shortest Job First (PSJF) merupakan penjadwalan dengan prioritas dan dengan preempsi, Prioritas didasarkan kepada pendeknya sisa proses. Makin pendek sisa proses makin tinggi prioritasnya.
3. PTDP
Kita menggunakan dua langkah untuk melihat pelaksanaan penjadwalan ini. Pertama, kita perhatikan saat proses tiba atau saat proses rampung. Kedua kita hitung lama sisa proses yang lebih pendek dari sisa proses pada proses yang sedang dikerjakan, maka atas dasar preempsi, proses yang sedang dikerjakan dikeluarkan dari prosessor.
4. RPTD
Rasio Penalti Tertinggi Dipertamakan (RPTD) disebut juga Highest Penalty Ratio Next (HPRN) termasuk kategori penjadwalan dengan prioritas tanpa Preempsi. Dasar prioritas adalah besarnya nilai rasio penalti.
4. RPTD
Pada RPTD proses pendek pada bagian belakang antrian akan mengalami banyak penundaan sedangkan pada RPTD proses panjang akan mengalami banyak penundaan. Penjadwalan RPTD tetap mendahulukan proses pendek, namun prioritas proses panjang akan turut meningkat melalui peningkatan rasio penaltinya. Prioritas Proses panjang yang lama tertunda itu akan dapat menyusul prioritas proses pendek.
4. RPTD
Rumus rasio penalti adalah T/t. Dalam hal ini lama tanggap T adalah jumlah lama tunggu atau antri (waktu sia – sia) s dengan lam aproses t. Sehingga rumus rasio penalti menjadi :
Rp = (s + t) / t
5. PG Puat Gelang (PG) disebut juga Round Robin (RR) merupakan penjadwalan tanpa prioritas tetapi dengan preempsi. Penjadwalan Puat Gelang dilakukan bergiliran berdasarkan antrian (tanpa prioritas), prosessor melayani sejenak setiap proses. Secara berturut – turut proses yang telah dilayani prosessor dan belum rampung akan kembali ke akhir antrian yang ada pada saat itu, sehingga penggiliran ini berputar seperti gelang. Hanya proses yang telah rampung terlayani yang meninggalkan prosessor dan antrian itu.
5. PG
Waktu sejenak yang digunakan oleh prosessor untuk melayani setiap proses itu dikenal sebagai kuantum waktu. Dengan mengubah - ubah nilai kuantum waktu, kita menemukan hasil layanan yang berbeda terhadap antrian proses yang sama.
TERIMA KASIH SEMOGA BERMANFAAT
35