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 N t, adalah suatu proses kelahiran dan kematian.
73 Angka kelahiran adalah λ (i) = λ untuk semua i dan erogoditas kondisi dari markov proses adalah: c 1 n0 1... c c n n1 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: P n 1 n! n P 0 n =0, 1,... c 1 (3.1) P n 1 n c! c c n Po n c (3.2) P0 diperoleh dengan normalisasi. P(n c) = Probabilitas suatu kedatangan menunggu untuk dilayani = Probabilitas sekurang-kurangnya m pelanggan dalam sistem = nc Pn = P0 c!(1 / c) c (3.3)
74 Po = c 1 n0 1 n! n 1 1 c!(1 / c) c ( probabilitas waktu kosong ) (3.4) c1 P0 Lq = 2 c( c!)(1 / c) ( rerata jumlah unit dalam antrian ) (3.5) Ls = Lq+ ( rerata jumlah unit dalam sistem ) (3.6) Wq = Lq ( rerata waktu didalam antrian ) (3.7) Ws = Ls c Po 2 1 c 1! c ( rerata waktu didalam sistem ) (3.8) ( utilitas ) (3.9) c 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 >> Proses Kedatangan Pelanggan Cek antrian terpendek Memeriksa Server Menempatkan Pelanggan Memeriksa Panjang Antrian << include >> MengaturPenempatan Pelanggan Cek Terjadinya Jockey Cek Status Server Gambar III.2. Use case proses kedatangan
76 B. Diagram Activity Proses Kedatangan Customer Server Petugas Kedatangan Antrian Cek Antrian Terpendek Cek Status server Menempatkan pelanggan Cek Terjadinya Jockey Memeriksa Panjang Antrian Return 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 Petugas <<UI>> Customer <<UI>> DataAccess Server Server <<UI>> Gambar III.5. Diagram Component Proses Kedatangan E. Diagram StateChart Start Customer Petugas Server End Gambar III.6. Diagram StateChart Proses Kedatangan
79 F. Diagram Package Customer Petugas Server Antrian Package 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 Simulasi jokeying Button 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 - _ x Jumlah server rerata laju pelayanana pelanggan 1 2 Durasi simulasi rerata laju kedatangan pelanggan 5 3 4 DBgrid 1 2 3 4 5 6 7 8 9 10 11 Jumlah Custumer yang datang dan dilayani Utilisasi Server Jumlah terjadinya Jokeying 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 1 2 3 4 1 2 3 2 3 4 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 Label text DBgrid Gamabar III.9. Proses simulasi jockeying
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------------------------------------------------------------------------------- 1 2 3 4 5 6 7 8 9 10 HASIL ANALITIK------------------------------------------------------------------------------ 1 2 3 4 5 6 7 KEMBALI Gambar III.10. Perbadingan hasil simulasi dan hasil analitik Button 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 jockeying, digambarkan dalam diagram alir pada gambar III.13, III.14 dan III.15 :
86 Kedatangan Bangkitkan Interarrival & Servistime Pelanggan i+1 Hitung Arrivaltime Antrian terpendek Server=Sibuk Y T T Set: Status Server = Sibuk Hitung: StartTime (Waktu Mulai Pelayanan), Stop Time (Waktu Selesai Pelayanan) untuk pelanggan 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 memodelkan simulasi kedatangan unit kedalam antrian. Pada proses ini, 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 Y Set Status Server = Kosong T Set: Status Server = Sibuk Hitung: StartTime (Waktu Mulai Pelayanan), Stop Time (Waktu Selesai Pelayanan) untuk pelanggan 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.