COURSE DAY 3
TIME-SHARED COMPUTER MODEL Terminals COMPUTER 1 Unfinished Jobs 2 CPU Queue n Finished Jobs
EVENT TYPE Event Description Event Type EVENT GRAPH Kedatangan job ke CPU dari sebuah terminal 1 Akhir CPU run, ketika job selesai diproses atau telah mencapai waktu maksimal 2 Akhir simulasi 3 EVENT GRAPH 1 2 End of CPU run Arrival End of Simulation n
FLOWCHART UNTUK ARRIVAL-ROUTINE (COMPUTER MODEL) Subroutine ARRIVE Hitung atribut-atribut Job dan tempatkan di queue Ya Apakah CPU idle ? Call START Tidak Return
FLOWCHART UNTUK SUBROUTINE START (COMPUTER MODEL) Keluarkan Job dari queue dan hitung CPU time Kurangi sisa waktu pelayanan dari Job ini Tempatkan Job dalam queue Jadwalkan event end-CPU-run untuk Job ini pada putaran ini. Return
FLOWCHART UNTUK end-CPU-run ROUTINE (COMPUTER MODEL) Subroutine ENDRUN Keluarkan Job dari CPU Ya Apakah Job membutuhkan CPU time lagi ? Tidak Tempatkan Job di akhir queue Hitung response time dari Job dan kumpulkan statistik A B
FLOWCHART UNTUK end-CPU-run ROUTINE (COMPUTER MODEL) B Jadwalkan sebuah event arrival untuk terminal dari Job ini Call START Tambahkan 1 pada banyaknya Job yang sudah diproses Ya Jadwalkan sebuah event end-simulation secepatnya Tidak Tidak Apakah sudah cukup Job diselesaikan ? Apakah ada suatu Job di dalam queue ? Ya Call START Return
MULTITELLER BANK WITH JOCKEYING Sebuah bank dengan 5 tellers buka pada jam 9 am dan tutup pada jam 5 pm, tapi beroperasi sampai semua customers di bank sampai 5 pm terlayani. Asumsi : waktu antarkedatangan customer merupakan variabel random IID eksponensial dengan mean 1 menit dan waktu service customer merupakan variabel random IID eksponensial dengan mean 4.5 menit. Masing-masing teller mempunyai sebuah queue terpisah.
MULTITELLER BANK WITH JOCKEYING (CONT) Sebuah kedatangan customer akan bergabung (joins) di queue terpendek, memilih queue terpendek paling kiri (apabila ada beberapa queue yang memenuhi - ties). Misal ni merupakan jumlah total customer di depan teller i (yang sedang dilayani + di queue) pada suatu saat. Jika selesainya service terhadap customer di teller i menyebabkan nj > ni + 1 untuk suatu teller lain j, maka customer dari tail of queue j jokey ke tail of queue i.
MULTITELLER BANK WITH JOCKEYING (CONT) 1 2 3 4 5 Customer yang sedang dilayani di teller i = 3 selesai pelayanan, menyebabkan customer dari tail of queue j = 2 untuk jokey.
FLOWCHART UNTUK ARRIVAL ROUTINE (BANK MODEL) Subroutine ARRIVAL Jadwalkan arrival event berikutnya Apakah teller idle ? DELAY 0 untuk customer ini dan kumpulkan statistik Tentukan nomor, CHOICE, dari queue terpendek paling kiri A B
FLOWCHART UNTUK ARRIVAL ROUTINE (BANK MODEL) Tempatkan customer di akhir queue nomor CHOICE Buat status teller BUSY Jadwalkan event DEPARTURE untuk customer ini Return
FLOWCHART UNTUK DEPARTURE ROUTINE (BANK MODEL) Subroutine DEPART Ya Tidak Apakah queue di teller ini kosong ? Keluarkan customer pertama dari queue Buat status teller ini idle Hitung delay customer ini dan kumpulkan statistik Jadwalkan event DEPARTURE untuk customer ini Call JOCKEY Return
FLOWCHART UNTUK JOCKEY ROUTINE (BANK MODEL) Subroutine JOCKEY Tidak Ya Apakah ada customer yang akan Jockey ? Keluarkan customer ini dari tail of queue-nya saat itu Ya Tidak Apakah teller yang baru saja menyelesaiakan service sekarang busy ? A B C
FLOWCHART UNTUK JOCKEY ROUTINE (BANK MODEL) Tempatkan customer yang Jockeying di tail of the queue dari teller yang baru saja menyelesaikan service Hitung delay dari customer yang Jockeying dan kumpulkan statistik Buat status teller busy Jadwalkan event DEPARTURE untuk customer yang Jockeying Return
OUTPUT SIMULASI Multiteller Bank dengan Queue terpisah & Jockeying Jumlah teller 4 sampai 7 Rata-rata waktu antar kedatangan 1.000 menit Rata-rata waktu service 4.500 menit Bank tutup setelah 8.000 jam Dengan 4 tellers, jumlah rata-rata customer dalam queue = 51.319 … Dengan 5 tellers, jumlah rata-rata customer dalam queue = 2,441 Dengan 6 tellers, jumlah rata-rata customer dalam queue = 0.718 Dengan 7 tellers, jumlah rata-rata customer dalam queue = 0.179
MODEL JOB-SHOP Tempat produksi pabrik mempunyai 5 group mesin, masing-masing group 1, 2, …, 5 terdiri dari 3, 2, 4, 3, dan 1 mesin-mesin identik. Job datang ke tempat produksi dengan waktu antar- kedatangan berupa variabel random eksponensial IID dengan mean 0.25 jam. Ada 3 tipe job, dan kedatangan job tipe 1, 2, dan 3 masing-masing dengan probabilitas 0.3, 0.5, dan 0.2. Job tipe 1, 2, dan 3 masing-masing membutuhkan 4, 3, dan 5 task yang harus diselesaikan, dan masing-masing task harus diselesaikan di group mesin tertentu dalam urutan yang sudah ditentukan.
Rute Job dengan tipe-tipe berbeda MODEL JOB-SHOP (CONT) Tipe Job Urutan group-group mesin 1 3, 1, 2, 5 2 4, 1, 3 3 2, 5, 1, 4, 3 Rute Job dengan tipe-tipe berbeda
MODEL JOB-SHOP (CONT) 1 2 3 4 5 Job tipe 1
MODEL JOB-SHOP (CONT) Tipe Job Mean waktu service untuk task berturutan 1 0.50, 0.60, 0.85, 0.50 2 1.10, 0.80, 0.75 3 1.20, 0.25, 0.70, 0.90, 1.00 Keterangan Event Tipe Event Kedatangan job ke tempat produksi (shop) 1 Keluarnya job dari group mesin tertentu 2 Akhir Simulasi 3
MODEL JOB-SHOP (CONT) Macam-macam Delay Nomor variabel Keterangan 1 Delay dalam queue di group mesin 1 2 Delay dalam queue di group mesin 2 3 Delay dalam queue di group mesin 3 4 Delay dalam queue di group mesin 4 5 Delay dalam queue di group mesin 5 6 Delay dalam queue untuk job tipe 1 7 Delay dalam queue untuk job tipe 2 8 Delay dalam queue untuk job tipe 3
MODEL JOB-SHOP (CONT) Keterangan Variabel-variabel untuk menyimpan banyaknya mesin yang busy di dalam masing-masing group. Nomor variabel Keterangan 1 Banyaknya mesin yang busy di dalam group 1 2 Banyaknya mesin yang busy di dalam group 2 3 Banyaknya mesin yang busy di dalam group 3 4 Banyaknya mesin yang busy di dalam group 4 5 Banyaknya mesin yang busy di dalam group 5
FLOWCHART UNTUK ARRIVAL ROUTINE (JOB-SHOP MODEL) Subroutine ARRIVAL Ya Apakah ini arrival baru ? Jadwalkan ARRIVAL event (baru) berikutnya Tidak Generate tipe Job dan TASK 1 untuk job ini Tentukan group mesin untuk job ini A
FLOWCHART UNTUK ARRIVAL ROUTINE (JOB-SHOP MODEL) Ya Tidak Apakah semua mesin dalam group busy ? Tempatkan Job di akhir queue untuk group ini DELAY 0 untuk Job ini dan kumpulkan statistik Buat status mesin dalam group ini busy dan kumpulkan statistik Jadwalkan event DEPARTURE untuk Job ini Return