Post on 17-Feb-2016
description
SIMULASI KEDATANGAN PELANGGAN BAZZAR JURUSAN ILMU KOMPUTER (BAZZKOM) UNTUK MEMPREDIKSI
JUMLAH MEJA MAKAN TAMBAHAN YANG HARUS DISEWA GUNA MENEKAN BIAYA
PEMODELAN DAN SIMULASI
OLEH :
1. I GM SURYA A. DARMANA (1208605039)
2. I WAYAN SAFIRA SRI ARTHA (1208605040)
3. I MADE ADI BHASKARA (1208605042)
4. NUSANDIKA PATRIA (1208605043)
PROGRAM STUDI TEKNIK INFORMATIKA
JURSUAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2014
DAFTAR ISI
DAFTAR ISI.............................................................................................................i
DAFTAR TABEL....................................................................................................ii
BAB I PENDAHULUAN........................................................................................1
1.1. Latar Belakang..............................................................................................1
1.2. Perumusan Masalah......................................................................................1
1.3. Tujuan dan Manfaat......................................................................................2
BAB II TINJAUAN PUSTAKA..............................................................................3
1.1. Sistem, Model, dan Simulasi.........................................................................3
1.2. Pembangkitan Bilangan Acak (Random)......................................................3
1.2.1. LCG (Linear Congruentional Generator).............................................4
2.3. Simulasi Monte Carlo.......................................................................................6
2.4. Sistem Antrian...................................................................................................8
BAB III METODOLOGI SIMULASI...................................................................12
DAFTAR PUSTAKA............................................................................................14
i
DAFTAR TABEL
Tabel 2.1 – Contoh Pembangkitan Bilangan Random menggunakan LCG.............5
Tabel 2.2 - Tabel contoh kasus pemetaan distribusi..............................................10
Tabel 2.3 - Tabel simulasi antrian..........................................................................11
ii
BAB I
PENDAHULUAN
1.1. Latar Belakang
Himpunan Mahasiswa Jurusan Ilmu Komputer (Himakom) Fakultas MIPA
Universitas Udayana setiap tahunnya memiliki program kerja – program kerja
yang membutuhkan dana tinggi. Penggalian dana merupakan cara yang dapat
dilakukan untuk memenuhi kebutuhan dana tersebut, salah satu kegiatan
penggalian dana yang dapat memberikan kontribusi yang besar untuk memenuhi
kebutuhan dana yang tinggi adalah melalui Bazzar Jurusan Ilmu Komputer
(Bazzkom).
Bazzkom dilakukan dengan cara menjual kupon yang berisi beberapa
paket makanan yang dapat ditukarkan oleh pembeli pada tempat pelaksanaannya
yang biasanya dilakukan di restoran-restoran yang berada di wilayah Denpasar
dan sekitarnya. Namun, restoran-restoran tersebut memiliki daya tampung
pelanggan yang terbatas, sehingga untuk memenuhi kebutuhan akan tempat bagi
para pelanggan, panitia pelaksana mempunyai suatu inisiatif untuk menyewa
paket meja dan kursi tambahan. Penyewaan meja dan kursi tambahan tersebut
memerlukan biaya sewa yang relatif mahal, sehingga penentuan waktu untuk
menyewanya harus dilakukan secara tepat agar biaya yang dikeluarkan optimal
dan kegiatan Bazzkom tidak merugi.
Berdasarkan permasalahan tersebut maka penulis membangun sebuah
model simulasi yang dapat menggambarkan keadaan waktu dan jumlah
kedatangan pelanggan per-jamnya untuk menentukan jumlah meja dan kursi
tambahan yang harus dipesan agar biaya yang dikeluarkan optimal.
1.2. Perumusan Masalah
Adapun masalah yang akan diselesaikan adalah: Bagaimana membangun
sebuah model simulasi yang dapat menirukan keadaan waktu dan jumlah
kedatangan pelanggan per-jamnya untuk menentukan jumlah meja dan kursi
tambahan yang harus dipesan agar biaya yang dikeluarkan optimal?
1
1.3. Tujuan dan Manfaat
Adapun tujuan dari pembangunan model simulasi ini adalah :
1. Menirukan keadaan waktu dan jumlah kedatangan pelanggan per-jamnya
untuk menentukan jumlah meja dan kursi tambahan yang harus dipesan.
2. Menghitung total profit yang didapat dari pemesanan menu lepas dan jumlah
meja dan kursi yang dipesan pada saat simulasi.
Adapun manfaat dari pembangunan model simulasi ini adalah :
1. Model simulasi dapat memperkirakan biaya yang harus dikeluarkan untuk
pembayaran meja dan kursi yang harus di sewa pada saat hari penukaran
bazzar optimal sehingga profit yang didapat maksimal.
2
BAB II
TINJAUAN PUSTAKA
1.1. Sistem, Model, dan Simulasi
Sistem adalah sekumpulan entitas seperti manusia atau mesin yang
bergerak dan berinteraksi bersama-sama untuk mencapai suatu tujuan.
(Dikemukakan oleh Schmidt dan Taylor, 1970). Dalam praktiknya, yang
dinamakan “sistem” tergantung pada objektif atau tujuan dari studi tertentu.
Sistem dapat digolongkan menjadi dua, sistem diskrit dan sistem kontinyu.
Pada sistem diskrit, variabel-variabel keadaan hanya berubah pada set titik waktu
yang diskrit. Contoh: jumlah customer yang menunggu antrian. Sedangkan, pada
sistem kontinyu, variabel-variabel berubah secara kontinyu menurut waktu.
Contoh: arus listrik.
Model merupakan suatu representasi sederhana dari sebuah sistem (atau
proses atau teori), bukan sistem itu sendiri. Model-model tidak harus memiliki
seluruh atribut. Mereka disederhanakan, dikontrol, digeneralisasi, atau diidealkan.
Untuk sebuah model yang akan digunakan, seluruh sifat-sifat relevannya harus
ditetapkan salam suatu cara yang praktis, dinyatakan dalam suatu set deskripsi
terbatas yang masuk akal (reasonably). Sebuah model harus divalidasi. Setelah
divalidasi, sebuah model dapat digunakan untuk menyelidiki dan memprediksi
perilaku-perilaku (sifat) sistem.
Simulasi adalah peniruan operasi, menurut waktu, sebuah proses, atau
sistem di dunia nyata. Simulasi dapat dilakukan secara manual maupun dengan
bantuan komputer. Simulasi menyertakan pembentukan data dan sejarah buatan
(artificial history) dari sebuah sistem, pengamatan data dan sejarah, dan
kesimpulan yang terkait dengan karakteristik sistem-sistem.
1.2. Pembangkitan Bilangan Acak (Random)
Perilaku random diimitasi dalam simulasi dengan menggunakan sebuah
pembangkit bilangan acak (random number generator) atau disingkat RNG. RNG
merupakan kunci utama dalam pembangunan model simulasi, karena RNG
mempunyai suatu fondasi untuk menirukan kejadian-kejadian acak yang terjadi
3
pada sistem yang disimulasikan, contohnya seperti waktu kedatangan, lama suatu
kejadian, atau jumlah pesanan. Masukan (input) yang digunakan pada untuk
membangkitkan tipe dari kejadian ini adalah berupa urutan bilangan yang
didistribusikan antra 0 dan 1 ( 0 <= x <= 1) atau bersifat uniform. Sehingga secara
garis besar, RNG memiliki peranan dalam pembentukan urutan bilangan tersebut
yang bersifat independen dan terdistribusi secara uniform.
Bilangan random yang dibangkitkan oleh RNG tidak sepenuhnya murni
bilangan random melainkan sebuah bilangan pseudo-random. Karena, RNG dapat
membangktikan urutan bilangan yang berulang pada waktu tertentu, namun dapat
diatasi agar sekuens-nya tidak berulang dengan jarak yang terlalu dekat, salah satu
metode yang digunakan adalah dengan menggunakan Linear Congruentional
Generator.
1.2.1. LCG (Linear Congruentional Generator)
Kebanyakan software simulasi menggunakan LCG untuk membangkitkan
bilangan random-nya. LCG efisien dalam membangkitkan bilangan random
secara cepat tanpa harus menghabiskan sumber daya komputasional yang banyak.
Dengan menggunakan LCG, rangkaian bilangan integer Z1, Z2, Z3, …. Zn
didefinisikan menggunakan formula rekursif :
Dimana konstanta a disebut sebagai multiplier, konstanta c merupakan nilai
increment, dan konstanta m adalah modulus (Law 2007). Dalam LCG, nilai awal
atau seed harus ditentukan terlebih dahulu yang dinotasikan sebagai Z0. Nilai a, c,
m, dan Z0 merupakan bilangan integer positif. Nilai dari Zi dihitung dengan cara
membagi hasil dengan m dan mencari sisa hasil baginya. Batas nilai
dari Zi adalah . Setelah mendapatkan nilai Zi langkah selanjutnya
adalah mengkonversikan nilai tersebut kebentuk uniform(0,1) yang dinotasikan
dengan Ui dan didapatkan dengan cara membagi nilai Zi dengan m. Contoh:
misalkan terdapat nilai a = 23, c = 5, m = 32 dan Z0 = 13, maka pembangkitan 20
bilangan random berdasarkan dari nilai tersebut ditunjukkan pada tabel 2.1
4
Tabel 2.1 – Contoh Pembangkitan Bilangan Random menggunakan LCG
Dengan a = 23, c = 5, m = 32 dan Z0 = 13
i 23(Zi-1) + 3 Zi Ui = Zi /32
0 131 304 48 0,752 1109 21 0,333 488 40 0,634 925 29 0,455 672 32 0,506 741 37 0,587 856 24 0,388 557 45 0,709 1040 16 0,2510 373 53 0,8311 1224 8 0,1312 189 61 0,9513 1408 0 0,0014 5 5 0,0815 120 56 0,8816 1293 13 0,2017 304 48 0,7518 1109 21 0,3319 488 40 0,6320 925 29 0,45
Panjang siklus suatu bilangan pseudo-random yang dapat dibangkitkan
menggunakan LCG adalah sebanyak m. Sehingga untuk memperoleh suatu siklus
yang baik, maka penentuan nilai a, c, dan m harus dipilih secara cermat. Menurut
Pritsker, 1995 ada beberapa pedoman yang digunakan untuk membangkitkan
bilangan random dengan siklus yang panjang, yaitu :
1. m=2b, dimana b ditentukan berdasarkan jumlah bit per word pada
komputer yang digunakan. Secara umum komputer menggunakan 32-bit
per word, sehingga 31 adalah pilihan yang baik untuk nilai b.
2. c dan m sedemikian sehingga factor perseketuan terbesarnya bernilai 1
(sebuah bilangan integer bernilai positif yang tepat membagi baik m dan c
adalah 1).
5
3. a = 1 + 4k, dimana k adalah bilangan integer positif.
Dengan menggunakan pedoman tersebut maka LCG dapat memperoleh panjang
siklus peneuh sebanyak 2,1 Milyar (lebih tepatnya 231) bilangan random.
Ada dua tipe LCG, yaitu Mixed Congruentional Generator yang
dibangkitkan menggunakan nilai c > 0 serta Multiplicative congruentional
generator yang dibangkitkan menggunakan nilai c=0. Tipe Multiplicative lebih
efisien dibandingkan dengan tipe Mixed karena tidak membutuhkan penjumlahan
nilai c. ProModel menggunakan multiplicative generator berikut:
Secara khusus, formula diatas merupakan sebuah prime modulus multiplicative
linear congruentional generator (PMMLCG) dengan a = 630.360.016, c = 0, m =
. Itu sudah diuji secara ekstensif dan diketahui sebagai RNG yang handal
untuk keperluan simulasi (Law and Kelton 2000).
2.3. Simulasi Monte Carlo
Metode simulasi Monte Carlo adalah suatu metode untuk mengevaluasi
suatu model deterministik yang melibatkan bilangan acak sebagai salah satu input.
Metode ini sering digunakan jika model yang digunakan cukup kompleks,
nonlinear, atau melibatkan lebih dari sepasang parameter tidak pasti.
Suatu model memerlukan parameter input dan beberapa persamaan yang
digunakan untuk menghasilkan output (atau variabel respon). Dengan
menggunakan parameter input berupa bilangan random, maka dapat mengubah
suatu model deterministic menjadi model stokastik, dimana model deterministic
merupakan suatu model pendekatan yang diketahui dengan pasti, sedangkan
stokastik tidak.
Simulasi Monte Carlo adalah metode untuk menganalisa perambatan
ketidakpastian, dimana tujuannya adalah untuk menentukan bagaimana variasi
random atau error mempengaruhi sensitivitas, performa, atau reliabilitas dari
sistem yang sedang dimodelkan. Simulasi Monte Carlo digolongkan sebagai
metode sampling karena input dibangkitkan secara random dari suatu distribusi
6
probabilitas untuk proses sampling dari suatu populasi nyata. Oleh karena itu,
suatu model harus memilih suatu distribusi input yang mendekati data yang
dimiliki (Rubinstein, 1981).
Komponen penting yang harus disiapkan untuk melakukan simulasi Monte
Carlo adalah model distribusi beserta parameternya yang bisa didapat dari
observasi/pengamatan dari sistem nyata. Langkah-langkah metode Monte Carlo
adalah sebagai berikut:
Langkah-langkah Simulasi Monte Carlo
1. Lakukan observasi terhadap parameter yang akan dimodelkan
2. Hitung frekuensi tiap nilai parameter
3. Hitung distribusi frekuensi kumulatif dan distribusi probabilitas
kumulatif.
4. Pasangkan nilai kelas dari tiap parameter dengan bilang random
dengan rentang 0 hingga 99.
5. Tarik suatu bilangan random dengan menggunakan tabel random.
6. Dapatkan nilai parameter yang sesuai dengan memasangkan
bilangan random yang dihasilkan.
Contoh:
Misalkan dari hasil pengamatan diperoleh 20 waktu proses yang berbeda seperti di
bawah ini.
Maka, dari data tersebut, kemudian dapat dibentuk tabel distribusi frekuensi
menurut nilai (waktu proses) yang ada.
7
Dari probabilitas kumulatif yang didapatkan, kemudian dapat dibentuk pemetaan
jangkauan setiap kelas sebagai range bilangan random. Tabel range bilangan
random seperti tabel di bawah. Misalkan dari penarikan bilangan random
didapatkan angka 27. Diketahui 27 berada dalam rentang jarak 15 - 44, dalam
tabel termasuk kelas nilai 0.2.
Lakukan pemetaan yang sama untuk setiap bilangan random pada tabel bilangan
random hingga didapatkan semua nilai parameter seperti berikut:
Nilai parameter tersebut yang akan digunakan sebagai input pada simulasi.
2.4. Sistem Antrian
Antrian (queue) adalah suatu line/garis tunggu dari satuan yang
memerlukan layanan. Dalam antrian dikenal aturan “Yang lebih dahulu datang,
yang lebih dahulu dilayani” (first come first serve / First in first out (FIFO)).
Teori antrian pertama kali diperkenalkan oleh seorang ahli matematika
asal Denmark, Agner Kramp Erlang (1878-1929), yang pada awalnya digunakan
untuk mempelajari kemacetan lalu lintas telepon.
8
Dalam sistem antrian terdapat komponen-komponen penting sebagai
berikut:
a) Kedatangan (Arrival)
Misal: orang, mobil, panggilan telepon, dsb.
Unsur ini dinamakan proses input. Proses input tersebut meliputi sumber
pemanggilan (calling population) dan cara terjadinya kedatangan (variabel
acak).
b) Pelayanan (Service)
Pelayan atau mekanisme pelayanan dapat terdiri dari satu atau lebih pelayan,
atau satu atau lebih fasilitas pelayanan. Pelayanan tiap pelanggan/pengunjung
dapat berbeda-beda.
c) Antrian (queue)
Timbulnya antrian tergantung pada sifat kedatangan dan proses pelayanan.
Jika kedatangan lebih cepat dari pada pelayanan, maka akan menyebabkan
antrian. Pelanggan/pengunjung yang mengantri harus menunggu (waiting)
hingga mendapat gilirannya untuk dilayani.
Sistem antrian memiliki karakteristik berorientasi pada waktu. Sehingga,
waktu menjadi suatu titik kritis/bagian yang perlu perhatikan selama proses
simulasi. Oleh karena itum sistem antrian akan menghasilkan analisa mengenai
waktu kedatangan, waktu pelayanan, dan waktu tunggu antrian. Selain itu, sistem
antrian juga memiliki karakteristik-karakteristik lainnya, sebagai berikut:
a) Distribusi kedatangan
b) Distribusi waktu pelayanan
c) Rancangan sarana pelayanan
d) Peraturan pelayanan
e) Ukuran antrian
f) Sumber pemanggilan
g) Perilaku manusia
Dalam simulasi yang menggunakan variabel acak, diperlukan
pemetaan/mapping distibusi probabilitas waktu antar-kedatangan pengunjung
9
(inter-arrival time), waktu pelayanan (service time), dan waktu tunggu antrian
(waiting time).
Waktu antar-kedatangan pengunjung (I) merupakan selang/selisih waktu
kedatangan pengunjung saat ini (ai) dengan waktu kedatangan pengunjung
sebelumnya (ai-1).
I = ai - ai-1 (1)
Waktu pelayanan (S) tiap pelayan dapat berbeda-beda tergantung
kemampuan pelayan. Waktu pelayanan adalah selisih waktu awal pelayanan (Sa)
dengan waktu akhir/selesai dilayani (St).
S = Sa - St (2)
Waktu tunggu antrian (W) merupakan lama tunggu pelanggan untuk
dilayani selama pelanggan sebelumnya belum rampung dilayani, atau dapat
dikatakan selisih waktu kedatangan (ai) dengan waktu awal pelayanan pelanggan
tersebut (Sa).
W = Sa - ai (3)
Pada akhir simulasi, data waktu tunggu antrian dapat diolah kembali untuk
mencari rata-rata waktu tunggu antrian (average waiting time) yang
menunjukkan/merepresentasikan kualitas pelayanan.
avg W = ΣW / n (4)
Dimana avg W adalah average waiting time, ΣW total waiting time, dan n
adalah jumlah pelanggan.
Contoh kasus:
Terdapat tabel pemetaan distribusi antar-waktu kedatangan pengunjung dan waktu
pelayanan sebagai berikut:
Inter-arrival Time Frekuensi Probabilitas Interval
2.5 8 0.32 0 - 31
3 11 0.44 32 - 75
5 6 0.24 76 - 99
Total 25 1
Service Time Frekuensi Probabilitas Interval
10
Tabel 2.2 - Tabel contoh kasus
pemetaan distribusi
1 13 0.52 0 - 51
2.5 9 0.36 52 - 87
4.5 3 0.12 88 - 99
Total 25 1
Akan dilakukan simulasi sistem antrian selama 30 menit dengan bilangan random
sebagai berikut:
Random inter-
arrival time2 17 47 53 94 66 61 65 7 33
Random service
time75 41 90 57 88 59 73 21 92 64
Penyelesaian:
Tabel 2.3 - Tabel simulasi antrian
Selama 30 menit simulasi, ada 9 pengunjung yang datang. Total waiting time =
4.5 menit. Average waiting time = 4.5/9 = 0.5 menit.
11
BAB III
METODOLOGI SIMULASI
Adapun tahapan-tahapan yang ada pada metodologi simulasi ini adalah :
1. Analisis Kebutuhan Sistem
Analisis kebutuhan sistem merupakan tahapan pertama yang dilakukan,
dimana pada tahapan ini dilakukan proses pengumpulan data primer maupun data
sekunder. Data primer didapatkan dari proses observasi mengenai informasi dari
keadaan nyata pada Bazzkom melalui rincian data Sie. Kupon dua tahun terakhir
dari simulasi ini dibuat untuk Bazzkom selanjutnya. Informasi tersebut meliputi:
waktu kedatangan, waktu pergi, dan jumlah pelanggan yang menukar kupon
setiap jam-nya serta rata-rata profit dari rentang waktu Bazzar dibuka hingga
ditutup yaitu dari pukul 17.00 WITA hingga pukul 23.00 WITA, dimana data
tersebut akan dijadikan sebagai acuan dalam menghitung probabilitas waktu
kedatangan pelanggan dan lama pelanggan berada di restoran. Sedangkan untuk
data sekunder diperoleh dari hasil survey mengenai : harga penyewaan meja dan
kursi tambahan per-jamnya, kapasitas meja dan kursi pada restoran yang akan
digunakan pada acara Bazzkom 2014, serta kapasitas kursi antrian yang
ditempatkan pada restoran bagi para pengunjung yang sedang mengantri ataupun
menunggu makanan yang dibungkus.
2. Perancangan dan Pembangunan Model Konseptual
Setelah data terkumpul maka tahapan selanjutnya adalah perancangan dan
pembangunan model konseptual. Pada tahapan ini hal-hal yang dilakukan adalah
menentukan variabel-variabel masukan dan keluaran dari hasil simulasi sesuai
dengan tujuan yang telah ditetapkan untuk model ini. Selain itu, pada tahap ini
juga dilakukan pembuatan aturan-aturan dan asumsi-asumsi yang akan digunakan
dalam simulasi. Hal-hal tersebut kemudian direpresentasikan ke dalam bentuk
diagram alir (flowchart) proses dan logic simulasi yang akan dijalankan.
3. Pembangunan Model Simulasi
12
Pembangunan model simulasi dilakukan setelah tahapan perancangan dan
pembangunan model konseptual telah selesai. Pada tahapan ini model konseptual
yang telah dibangun akan diimplementasikan dalam bentuk software berbasis
desktop yang dibangun menggunakan Bahasa pemrograman Visual C#
menggunakan IDE Microsoft Visual Studio 2013.
4. Pengujian Model Simulasi
Tahapan pengujian model simulasi dilakukan dengan cara mencocokkan
serta melakukan pengecekan terhadap kesesuaian antara masukan dan keluaran
pada model simulasi apakah sudah sesuai dengan tujuan yang diharapkan atau
tidak. Serta memastikan bahwa model simulasi sudah terimplementasi dengan
baik sesuai dengan model konseptual yang telah dirancang dan dibangun
sebelumnya. Pengujian dilakukan beberapa kali iterasi sampai mendapatkan hasil
yang stabil.
5. Analisis Hasil Simulasi dan Pelaporan
Tahapan akhir adalah tahap analisis hasil simulasi dan pelaporan. Pada
tahap ini data hasil pengujian akan ditampilkan dalam bentuk tabel dan grafik
yang akan dijadikan pedoman dalam penarikan kesimpulan dari model simulasi
yang dibuat.
13
DAFTAR PUSTAKA
Law, Averill M. & Kelton, W. David. 2000. Simulation Modelling and
Analysis 3rd Edition. USA: McGraw Hill.
Robinson, Stewart. 2003. Simulation: The Practice of Model Development
and Use. UK: John Wiley & Son Inc.
14