BAB III ANALISIS MASALAH DAN RANCANGAN PROGRAM
III.1. Analisis Sistem pelayanan multiple (multiple-server system) atau biasa disebut multiserver single queue merupakan baris antrian tunggal yang dilayani oleh lebih dari satu pelayan (server). Contoh penerapan sistem ini terdapat pada bank yang ada bagian tertentu menangani pertanyaan-pertanyaan atau pengaduan-pengaduan dari customer. Model antrian ini merupakan sistem antrian sebelumnya yang nantinya akan disimulasikan menjadi model antrian sistem pelayanan multiserver multiqueue. Adapun kekurangan sistem pelayanan multiple (multiple-server system) : 1.
Ruang tunggu antrian terbatas
2.
Waktu tunggu pelanggan tidak efesien
3.
Jalur antrian hanya terdiri dari satu garis tunggu Dari kekurangan sistem antrian di atas maka penulis membuat sistem antrian
pelayanan multiserver multiqueue sebagai solusi untuk mengatasi kekurangan tersebut. Sistem pelayanan multiserver multiqueue merupakan sistem pelayanan yang menyediakan beberapa buah pelayanan dan setiap pelayanan mempunyai antriannya masing-masing dengan pelayanan FIFO. Pengunjung yang datang memilih antrian yang terpendek pada saat dia datang. Jika seorang selesai dilayani, ternyata terjadi fenomena yang disebut “jockeying”, yaitu berpindahnya seorang yang sedang antri ke antrian lain yang baru selesai melayani, yang lebih
71
pendek dari antriannya. Pola kedatangan ke dalam sistem adalah pola kedatangan Poisson, dengan waktu antar kedatangan berdistribusi eksponensial. Dengan pola pelayanan semua server dianggap sama, juga dianggap terdistribusi eksponensial. Simulasi selama selang waktu tertentu hendak dilakukan untuk jumlah pelayanan yang diubah-ubah untuk mengetahui waktu tunggu rata-rata, waktu antar kedatangan, panjang antrian rata-rata, rata-rata waktu dalam antrian serta utilitas sever. Bentuk sistem antrian multiserver multiqueue dengan jockeying seperti pada gambar III.1 berikut : Sistem Antrian
1
2
3
N ........
Gambar III.1. Multiserver Multiqueue dengan Jockeying Analisa event simulasi ada 2 macam yaitu : 1.
Arrival, kedatangan seseorang untuk dilayani ke salah satu antrian.
2.
Departure, selesainya sebuah server dari suatu proses pelayanan.
Peristiwa “jockeying” bukan dianggap event, karena terjadi sebagai akibat dari departure. Untuk membangun aplikasi sistem antrian ini dibutuhkan jenis perangkat lunak yang digunakan adalah sebagai berikut : 1.
Sistem operasi : Windows 7
2.
Development tool : Borland Delphi 7.0
72
III.2. Strategi Pemecahan Masalah 1. Metode Penyelesaian dengan Analitik Mengembangkan sebuah model antrian yang umum yang memperhitungkan semua variasi dalam sistem nyata sangat sulit. Pengembangan metode simulasi dari sebuah sistem, harus selalu mempertimbangkan dapat atau tidak suatu sistem dimodelkan secara analitik. Jika sebuah model analitik yang identik tidak ada, perkiraan model analitik dapat dikembangkan sebagai solusi alternatif masalah yang dipertimbangkan, yang bertujuan untuk membayangkan realita serta dapat membantu dalam memahami tingkah laku model simulasi yang kompleks dan detail. Dari deskripsi masalah diketahui bahwa pada selang waktu tertentu akan dicari dengan metode simulasi beberapa besaran dari karakteristik antrian multiserver multiqueue dengan jockeying. Hasil simulasi yang diperoleh akan mengukur beberapa besaran dari karakteristik antrian untuk nilai input yang berbeda, dan metode analitik dijadikan pembanding dengan nilai karakteristik simulasi. Model analitik antrian yang digunakan adalah model antrian multiserver single queue atau M/M/C. Suatu antrian dengan c server, kedatangan membentuk suatu Poisson memproses dengan parameter λ dan waktu layanan bersifat eksponensial dengan rata-rata = µ. Waktu layanan tidak terikat pada server, jika ada n pelanggan didalam sistem dengan n < c, semua pelanggan didalam sistem pada waktu t, yang ditandai oleh Nt , adalah suatu proses kelahiran dan kematian.
73
Angka kelahiran adalah λ (i) = λ untuk semua i dan erogoditas kondisi dari markov proses adalah:
n n 1 n 0 1... c c c
1
yang dapat direalisasikan jika dan hanya jika
<1 c
Istilah keadaan tunak (steady state) didefenisikan sebagai periode waktu setelah setiap transient awal dalam sistem telah teredam sehingga tidak ada perubahan probabilitas keadaan terhadap waktu. Karena itu, solusi keseimbangannya adalah: n
1 Pn P0 n! 1 Pn c!c n c
n =0 , 1,... c – 1
(3.1)
n≥c
(3.2)
n
Po
P0 diperoleh dengan normalisasi. P(n ≥ c) = Probabilitas suatu kedatangan menunggu untuk dilayani = Probabilitas sekurang-kurangnya m pelanggan dalam sistem
=
Pn n c
c
P0 = c!(1 / c)
(3.3)
74
Po =
1 c 1 1 n 0 n!
n
c 1 c!(1 / c )
( probabilitas waktu kosong )
(3.4)
c 1
P0 Lq = c(c!)(1 / c) 2
Ls = Lq+
Wq =
( rerata jumlah unit dalam antrian )
(3.5)
( rerata jumlah unit dalam sistem )
(3.6)
Lq
( rerata waktu didalam antrian )
(3.7)
c
Ls 1 Po Ws = 2 c 1!c
c
( rerata waktu didalam sistem )
(3.8)
( utilitas )
(3.9)
2. Metode Penyelesaian dengan Simulasi Simulasi dapat digunakan untuk eksperimen dengan sistem yang belum ada atau untuk sistem yang telah ada, tanpa mengubah sistem yang sesungguhnya, dan bisa menekan lebih banyak pengalaman yang tersimulasikan ke dalam periode waktu yang pendek. Penyelesaian secara analitik untuk beberapa besaran dari karakteristik antrian, sebelumnya telah di formulasikan dengan model analitik.
75
III.3. Struktur Data yang Digunakan III.3.1 UML (Unified Modeling Language) A. Diagram Use Case Proses Kedatangan 1. Actor
: Petugas
2. Skenario Petugas : Use case
Proses kedatangan pelanggan.
1. Petugas memeriksa proses kedatangan pelanggan. 2. Petugas mengecek antrian terpendek & memeriksa server. 3. Petugas menempatkan pelanggan dalam antrian pada server. 4. Petugas memeriksa panjang antrian pada server. 5. Petugas mengecek status server & terjadinya jockey 6. Petugas mengatur penempatan pelanggan. << include >>
Cek antrian terpendek
Proses Kedatangan Pelanggan
Memeriksa Server
Menempatkan Pelanggan
Memeriksa Panjang Antrian
<< include >>
MengaturPenempatan Pelanggan Cek Terjadinya Jockey
Gambar III.2. Use case proses kedatangan
Cek Status Server
76
B. Diagram Activity Proses Kedatangan Customer
Server
Petugas
Kedatangan
Cek Antrian Terpendek
Antrian
Return
Cek Status server
Menempatkan pelanggan
Cek Terjadinya Jockey
Memeriksa Panjang Antrian
Mengatur Penempatan Pelanggan
Gambar III.3. Diagram Activity Proses Kedatangan
77
C. Diagram Sequence Petugas
Server
Customer
1:1. Proses Kedatangan & Proses Antrian()
2:2. Cek Antrian Terpendek() 3:3. Memeriksa Server, Cek Status Server & Cek Terjadinya Jockey()
4:4. Menempatkan Pelanggan & Memeriksa Panjang Antrian() 5:5. Mengatur Penempatan Pelanggan()
6:6. Pesan Selesai()
Gambar III.4. Diagram Sequence Proses Kedatangan
78
D. Diagram Component DataAccess
Petugas
Customer <>
Petugas <>
DataAccess
Server
Server <>
Gambar III.5. Diagram Component Proses Kedatangan
E. Diagram StateChart Customer Start
Petugas
Server
End
Gambar III.6. Diagram StateChart Proses Kedatangan
79
F. Diagram Package
Customer
Petugas
Server
Package
Antrian
Jockey
Gambar III.7. Diagram Package Proses Kedatangan
III.4. Perancangan Rancangan sistem yang dibangun berupa form menu utama, proses simulasi jockeying, perbandingan hasil simulasi dan analitik, dan yang terakhir form informasi program. Sistem antrian multiserver multiqueue yang dibahas pada penelitian ini adalah sistem antrian yang terdiri atas beberapa jalur pelayanan yang ditempati oleh beberapa server, dengan setiap fasilitas pelayanan (server) mempunyai antrian masing-masing dimana hanya ada satu kedatangan dapat masuk kedalam sistem untuk setiap kedatangan. Sistem antrian multiserver multiqueue ini merupakan pengembangan dari sistem yang lama yaitu sistem antrian single server. Dalam hal ini tentu saja sistem antrian multiserver lebih
80
efesien dari segi waktu kedatangan, waktu mengantri, dan waktu proses dalam sistem.
III.4.1. Rancangan layar Berikut ini merupakan perancangan dari form utama program beserta dengan komponen Delphi yang dipakai. Jokeying simulation
- _ x
Perancangan sistem antrian multiserver multiqueue dengan metode jokeying “studi kasus home smart”
Label
Logo Button
Simulasi jokeying Perbandingan hasil Informasi program selesai
Gambar III.8. Rancangan Menu Utama Form di atas merupakan gambar form menu dimana jumlah button ada 4 (empat) yang berfungsi sebagai brikut : 1.
Button pertama berfungsi untuk masuk ke proses simulasi
2.
Button kedua berfungsi untuk masuk ke perbandingan hasil
3.
Button yang ketiga berfungsi untuk informasi program
4.
Button yang ke empat berfungsi untuk tombol keluar dari form menu
81
Label
edit
Label
Edit
Button
Simulasi jokeying
-
Jumlah server Durasi simulasi
rerata laju pelayanana pelanggan rerata laju kedatangan pelanggan
1
2
3
4
_ x 5
DBgrid 1
2
3
4
5
6
7
8
9
10
11
Jumlah Custumer yang datang dan dilayani Jumlah Custumer yang dilayani diluar durasi Rerata Pelanggan dalam Antrian (Lq) Rerata Pelanggan dalam Sistem (Ls) Probabilitas Kosong (Po) AvgTime in Sytstem (Ws) Average Delay (Wq) Delay Maximum Delay Minimum
Utilisasi Server 1
2 2
3 3
Jumlah terjadinya Jokeying 4 4
1
2
3
HASIL ANLITIK----------------------------------------------------------------------------------------------------Rerata Pelanggan dalam Antrian (Lq) Rerata Pelanggan dalam Sistem (Ls) Probabilitas Kosong (Po)
Rata-rata Waktu yg dihabiskan dalam Sistem (Ws) Rata-rata Waktu yg dihabiskan dalam Antrian (Wq) Utilisasi Server
text Label Gamabar III.9. Proses simulasi jockeying
DBgrid
82
Gambar rancangan simulasi jokeying tersebut terdiri dari 21 ( dua puluh satu) text mulai dari atas sampai ke bawah : 1.
Text yang pertama berfungsi untuk diisi jumlah server yang ada
2.
Text yang kedua befungsi untuk durasi simulasi yang akan diproses
3.
Text yang ketiga berisi tentang rata-rata laju pelayanan dalam menit
4.
Text yang ke empat berfungsi untuk rata-rata laju kedatangan pelanggan Dan setelah ke empatnya diisi maka klik button 1 dimana fungsi button 1
(satu) adalah untuk menampilkan proses simulasi. button 2 berfungsi untuk mengganti jumlah server, button 3 berfungsi untuk ulangi simulasi. button 4 berfungsi untuk perbadingan hasil simulasi, dan button yang ke 5 berfungsi untuk tombol keluar. DBgrid yang pertama berfungsi untuk mengisi proses simulasi yang ada yakni customer, bilangan acak ,interval, bilangan acak, service time dan selanjutnya.text berikutnya akan terisi sesuai fungsi nya dimana : 1.
Text yang ke lima berfungsi untuk jumlah customer yang datang dan dilayani
2.
Text yang ke enam berfungsi untuk Jumlah Customer yang dilayani diluar durasi
3.
Text yang ke tujuh berfungsi untuk Rerata Pelanggan dalam Antrian (Lq)
4.
Text yang ke delapan berfungsi untuk Rerata Pelanggan dalam Sistem (Ls)
5.
Text yang ke Sembilan berfunsi untuk Probabilitas Kosong (Po)
6.
Text yang ke sepuluh berfungsi untuk AvgTime in Sytstem (Ws)
7.
Text yang ke sebelas berfungsi untuk Average Delay (Wq)
8.
Text yang ke dua belas berfungsi untuk Delay Maximum
9.
Text yang ke tiga belas berfungsi untuk Delay Minimum
83
10. Text yang ke empat belas berfungsi untuk utilitas server 11. Text yang kelima belas berfungsi untuk jumlah terjadinya jokeying Dan kemudian DBgrid kedua dan ketiga juga terisi server, total waktu sibuk, rerata pelayanan dalam antrian Label
dbgrid
Perbandingan Hasil Simulasi dan Hasil Analitik
-
_
X
HASIL SIMULASI------------------------------------------------------------------------------2 1 3 4 5 6 7 8 9 10
HASIL ANALITIK-----------------------------------------------------------------------------1
2
3
4
5
6
7
KEMBALI Button Gambar III.10. Perbadingan hasil simulasi dan hasil analitik Komponen yang dipakai pada form perbandingan hasil simulasi dan hasil analitik adalah label, Dbgrid dan button.Komponen ini dapat diakses dari menu perbandingan hasil simulasi.
84
Label
Memo
Informasi Program
-
_
X
Keterangan tentang table yang digunakan
selesai
Button Gambar III.11. form informasi program
Komponen form ini terdiri dari label, memo dan button fungsi form ini untuk menampilkan informasi program.
85
III.4.2. Flowchart Secara garis besar untuk memodelkan antrian multiserver multiqueue sehingga dapat diperoleh model yang dapat disimulasikan dan mengetahui karakteristiknya, dirancang flowchart program simulasi antrian. Berikut flowchart proses awal hingga akhir, mulai dari procedure kedatangan, departure dan jockey .
Start
Kedatangan
Departure
Jockey
End
Gambar III.12. Procedure Kedatangan, Departure dan Jockey Rancangan proses utama model antrian ini masing-masing adalah procedure
kedatangan,
procedure
departure
dan
procedure
digambarkan dalam diagram alir pada gambar III.13, III.14 dan III.15 :
jockeying,
86
Kedatangan
Bangkitkan Interarrival & Servistime Pelanggan i+1
Hitung Arrivaltime
Antrian terPendek
T Server=Sibuk
T
Set: Status Server = Sibuk Hitung: StartTime (Waktu Mulai Pelayanan), Stop Time (Waktu Selesai Pelayanan) untuk pelanggan
Y Y tempatkan pelanggan di ekor antrian pada server
tambah jumlah yang antri pada server (Inc(Jumantri))
Kedatangan
Gambar III.13. Flowchart proses kedatangan Procedure
kedatangan
dirancang
untuk
kedatangan unit kedalam antrian. Pada proses ini,
memodelkan
simulasi
kedatangan dijadwalkan
berdasarkan bilangan acak waktu antar kedatangan ( interarrival ) dan waktu pelayanan oleh bilangan acak waktu layanan (service time).
87
\ Departure
Hitung Delay & Total Waktu Pelanggan Dalam Sistem
Tambah jumlah yang terlayani pada server dan kurangi panjang antrian pada server
Panjang Antrian = 0
T
Set: Status Server = Sibuk Hitung: StartTime (Waktu Mulai Pelayanan), Stop Time (Waktu Selesai Pelayanan) untuk pelanggan
Y Set Status Server = Kosong
Jockey
Departure
Gambar III.14. Flowchart proses departure
Subrutin selesai dirancang untuk menggambarkan departure atau proses setelah server selesai dari sebuah pelayanan. Jika pelanggan selesai dari proses pelayanan, maka nilai panjang antrian dikurangi, dan melanjutkan proses jockeying atau pelayanan berikutnya.
88
Jockey
Antrian Terpendek
ada pelanggan yang jockey
T
Y kurangi panjang antrian dari server asal pelanggan ini & tambah panjang antrian pada server tujuan jockey pelanggan
server tujuan jokey = sibuk
T
Set: Status Server = Sibuk Hitung: Startime (waktu mulai pelayanan) dan Stoptime (waktu selesai pelayanan) untuk pelanggan
Y tempatkan pelanggan diekor antrian pada server ini
Jockey
Gambar III.15. Flowchart proses Jockey Diagram alir program untuk proses jockeying atau proses berpindah pelanggan ke garis antrian yang lebih pendek akibat departure. Berdasarkan pada flowchart gambar III.15 diatas, ekor antrian yang lebih panjang menempati posisi server kosong atau server dengan garis antrian yang lebih pendek pada garis antrian lainnya.
89
III.4.3. Algoritma dari program 1.
Algoritma proses kedatangan Prosedur kedatangan dirancang untuk memodelkan simulasi kedatangan unit kedalam antrian. Kedatangan dijadwalkan berdasarkan bilangan acak waktu antar kedatangan (interarrival) dan waktu pelayanan oleh bilangan acak waktu layanan (service time). Kemudian kedatangan menentukan waktu antar kedatangan, setelah ditentukan maka akan didapat antrian terpendek. Apabila server dalam keadaan sibuk maka pelanggan ditempatkan diekor antrian pada server. Tetapi jika status server tidak dalam keadaaan sibuk,maka server menambahkan jumlah yang mengantri pada server. Setelah itu prosedur proses kedatangan selesai.
2.
Algoritma proses departure Setelah prosedur proses kedatangan dirancang, maka digambarkan departure atau proses setelah server selesai dari sebuah pelayanan. Jika pelanggan selesai dari proses pelayanan, maka dapat diketahui total waktu pelanggan dalam sistem dan nilai panjang antrian dikurangi, sehingga dapat melanjutkan proses jockeying atau pelayanan berikutnya. Apabila panjang antrian dalam keadaan kosong, maka status server juga dalam keadaan kosong. Tetapi, jika panjang antrian tidak dalam keadaan kosong, maka status server dalam keadaan sibuk. Akibatnya terjadi peristiwa jockey. Setelah itu proses departure selesai dilakukan.
90
3.
Algoritma proses jockey Terjadinya proses jockeying atau berpindah pelanggan kegaris antrian yang lebih pendek diakibatkan proses departure. Jika terdapat antrian yang panjang dan ada pelanggan yang jockey, maka kurangi panjang antrian dari server asal pelanggan dan tambah panjang antrian pada server tujuan jockey pelanggan. Namun, jika tidak ada pelanggan yang jockey maka proses pelayanan selanjutnya dilakukan. Jika server tujuan jockey dalam keadaan sibuk, maka pelanggan ditempatkan diekor antrian pada server. Tetapi, jika server tujuan jockey dalam keadaan tidak sibuk maka terdapat status server dalam keadaan sibuk. Setelah itu proses jockey selesai dilakukan.