Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
Diterbitkan olehRudi Chintya Telah diubah "9 tahun yang lalu
1
Chapter 12 Antrian (Queue) Program Studi Ekstensi DTE FTUI Slides©2007
2
Antrian Sifatnya: FIFO (First in First Out) Penerapan Multiprogramming: –Task yang lebih dulu datang –Task yang lebih dulu request Antrian dapat digambarkan: –Larik
3
Implementasi dengan Larik Depan antrian (a) Implementasi antrian dengan larik Belakang
4
Implementasi dengan Larik Digunakan satu antrian berbentuk larik satu dimensi dan dua variabel: –Depan indeks elemen terdepan –Belakang indeks elemen terakhir
5
Definisikan Antrian def maksAntrian: 8 antrian: array[1.. maksAntrian] of string depan, belakang: integer edef
6
Operasi masuk Antrian proc masuk (x, penuh) {Masuk x ke belakang antrian dan laporkan apakah penuh atau tidak} if belakang = maksAntrian then penuh:= true else penuh:= false antrian[belakang]:= x belakang:= belakang + 1 eif eproc
7
Operasi keluar Antrian proc keluar (x, kosong) {Keluar x dari depan antrian dan laporkan apakah kosong atau tidak} if depan >= belakang then kosong:= true else kosong:= false x:= antrian[depan] depan:= depan + 1 eif eproc
8
Permasalahan Tidak boleh ada elemen yang tertimpa Dapat menentukan apakah antrian kosong atau penuh Dengan hanya menggunakan variabel depan dan belakang, keadaan penuh dan kosong tidak dapat ditentukan
9
Implementasi dengan Larik DepanBelakang 12345678 (b) Implementasi antrian dengan larik
10
Implementasi dengan Larik 12345678 (c) Implementasi antrian dengan larik DepanBelakang
11
Implementasi dengan Larik 12345678 (d) Implementasi antrian dengan larik DepanBelakang
12
Implementasi dengan Larik 12345678 (e) Implementasi antrian dengan larik DepanBelakang
13
Implementasi dengan Larik Untuk mengatasi persoalan: –Menggunakan variabel: jumlah –jumlah: mencatat jumlah data yang ada di dalam antrian –Antrian kosong: jumlah berharga 0 –Antrian penuh: jumlah berharga 1
14
Implementasi dengan Larik proc masuk (x, penuh) {Masuk x kebelakang antrian dan laporkan apakah penuh atau tidak} if jumlah = maksAntrian then penuh:= true else penuh:= false antrian[belakang]:= x jumlah:= jumlah + 1 belakang:= belakang + 1 if depan > maksAntrian then depan:= 1 eif eproc
15
Implementasi dengan Larik proc keluar (x, kosong) {Keluar x dari depan antrian dan laporkan apakah kosong atau tidak} if jumlah = 0 then kosong:= true else kosong:= false x:= antrian[depan] jumlah:= jumlah + 1 depan:= depan + 1 if belakang > maksAntrian then belakang:= 1 eif eproc
16
SELESAI ANTRIAN
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.