Laporan Pds Kelompok 1

33
LAPORAN PEMODELAN DAN SIMULASI PELAYANAN RESTORAN CAFÉ GAYATRI KELOMPOK 1 ALMER HAFIZ W (1308605011) BRYAN WAHYU K.P (1308605028) BAGUS RAY ARNATA (1308605032) I GEDE OKA SUDIATMIKA (1308605050) LEMBAR JUDUL PROGRAM STUDI TEKNIK INFORMATIKA JURUSAN ILMU KOMPUTER FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM UNIVERSITAS UDAYANA BUKIT JIMBARAN 2015

description

Pemodelan dan Simulasi Pelayanan Restoran

Transcript of Laporan Pds Kelompok 1

Page 1: Laporan Pds Kelompok 1

LAPORAN

PEMODELAN DAN SIMULASI

PELAYANAN RESTORAN CAFÉ GAYATRI

KELOMPOK 1

ALMER HAFIZ W

(1308605011)

BRYAN WAHYU K.P (1308605028)

BAGUS RAY ARNATA (1308605032)

I GEDE OKA SUDIATMIKA (1308605050)

LEMBAR JUDUL

PROGRAM STUDI TEKNIK INFORMATIKA

JURUSAN ILMU KOMPUTER

FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM

UNIVERSITAS UDAYANA

BUKIT JIMBARAN

2015

Page 2: Laporan Pds Kelompok 1

ii

KATA PENGANTAR

Puji Syukur penulis panjatkan kehadapan Tuhan Yang Maha Esa, karena

atas berkat dan rahmat-Nya penulis dapat menyusun dan menyelesaikan Laporan

Proposal dari mata kuliah Pemodelan & Simulasi dengan kriteria yang telah

ditentukan ini sesuai dengan rencana dan tepat pada waktunya.

Sehubungan dengan telah terselesaikannya laporan ini, maka diucapkan

terima kasih kepada berbagai pihak yang telah membantu penulis, antara lain:

1. Bapak I Dewa Made Bayu Atmaja Darmawan, S.Kom.,M.Cs. selaku dosen

pengajar mata kuliah Pemodelan & Simulasi.

2. Teman-teman mahasiswa di Jurusan Ilmu Komputer, khususnya angkatan

2013 yang telah memberikan saran dan dukungan moral dalam penyelesaian

laporan ini;

3. Pihak-pihak lainnya yang telah dengan tulus ikhlas memberikan saran dan

masukan yang bersifat konstruktif serta membangun dalam penyelesaian

laporan ini.

Disadari pula bahwa sudah tentu laporan ini masih mengandung kelemahan

dan kekurangan. Memperhatikan hal ini, maka masukkan dan saran-saran

penyempurnaan sangat diharapkan.

Besar harapan penulis agar laporan ini dapat bermanfaat sebagaimana

mestinya bagi kita semua.

Bukit Jimbaran, 11 November 2015

Penulis

Page 3: Laporan Pds Kelompok 1

iii

DAFTAR ISI

LEMBAR JUDUL ........................................................................................................................................ i

KATA PENGANTAR ................................................................................................................................... ii

DAFTAR ISI .............................................................................................................................................. iii

BAB I PENDAHULUAN ............................................................................................................................. 5

1.1 LATAR BELAKANG .......................................................................................................................... 5

1.2 RUMUSAN MASALAH .................................................................................................................... 5

1.3 TUJUAN ......................................................................................................................................... 5

1.4 MANFAAT PENELITIAN .................................................................................................................. 6

BAB II TINJAUAN PUSTAKA .................................................................................................................... 7

2.1 PEMBANGKITAN BILANGAN ACAK .......................................................................................... 7

2.1.1 LINEAR CONGRUENTIAL NUMBER .................................................................................. 7

2.1.2. MULTIPLICATIVE RNG ..................................................................................................... 8

2.1.3. MIXED CONGRUENTIAL RNG ........................................................................................... 8

2.2. SIMULASI MONTE CARLO ........................................................................................................ 8

BAB III METODOLOGI PENELITIAN ....................................................................................................... 10

3.1. Jenis Penelitian ...................................................................................................................... 10

3.2. Tempat Penelitian ................................................................................................................. 10

3.3. Teknik pengumpulan Data .................................................................................................... 10

3.4. Bahan dan Alat ...................................................................................................................... 10

3.5. Metode Penelitian ................................................................................................................ 10

3.6 Hasil pemantauan & Analisis data ........................................................................................ 10

3.7 Metode Pembangkitan & Logika Simulasi ............................................................................ 16

BAB IV HASIL DAN PEMBAHASAN ........................................................................................................ 18

4.1. Implementasi Simulasi .......................................................................................................... 18

4.2. Uji Program ........................................................................................................................... 25

4.3. Analisis Hasil Simulasi ........................................................................................................... 27

4.4. Uji Replikasi ........................................................................................................................... 31

BAB V PENUTUP ................................................................................................................................... 32

5.1. Kesimpulan ............................................................................................................................ 32

5.2. Saran ..................................................................................................................................... 32

Page 4: Laporan Pds Kelompok 1

iv

DAFTAR PUSTAKA ................................................................................................................................. 33

Page 5: Laporan Pds Kelompok 1

5

BAB I

PENDAHULUAN

1.1 LATAR BELAKANG

Di masa sekarang, bisnis restoran menjadi bisnis yang menjanjikan. Bisnis ini melayani

masakan dan minuman bagi para konsumen yang membutuhkan atau konsumen yang memiliki

hobi menikmati makanan. Pelanggan sering merasa kesal jika harus menunggu terlalu lama

dalam antrian, demikian juga dengan pemilik usaha seringkali bingung menentukan berapa

jumlah counter yang harus dibuka untuk meningkatkan pelayanan, namun tetap

memperhitungkan biaya yang dikeluarkan,Terkadang Stok pada makanan dapat membuat

pemilik usaha bingung memilih Stok .Karena Stok makanan akan cepat busuk bila tidak di olah

dengan cepat. Apabila stok makanan busuk akan tidak digunakan untuk memasak.Tentunya

busuknya makanan akan merugikan usaha tersebut .Apabila Stok makanan habis makanan

pelanggan akan di tutup tentunya pelanggan terpaksa memesan menu lain atau tidak jadi

memesan .Jika pemilik usaha tidak memilih Stok yang tepat dan benar maka usahanya tentunya

akan merugikan usahanya . Tentunya pemilik harus mencari tahu apa makanan kesukaan

kosumen ,mana bahan yang paling sering digunakan .

Dimana disini kami berusaha untuk mencari solusi untuk mendukungnya suatu restoran

untuk membuat bantuan suatu sistem simulasi dimana untuk mengatur dan mengantisipasi

bisnis pada suatu restoran agar mampu membuat persiapan agar suatu saat nanti tidak

menyebabkan kerugian di hari-hari awal operasional.

Simulasi yang kami buat ini adalah agar menunjang pengolahan usaha restoran pada

agar pemilik akan mendapatkan keuntungan yang optimal.

1.2 RUMUSAN MASALAH

Adapun permasalahan pada tugas Pemodelan dan Simulasi ini adalah:

1. Seberapa banyak pengunjung yang akan datang ke restoran selama n hari?

2. Seberapa banyak suplai yang dibutuhkan untuk melayani n pengunjung selama n hari?

3. Seberapa banyak omzet yang masuk selama n hari?

1.3 TUJUAN

Tujuan simulasi ini adalah:

1. Mensimulasikan antrian panjang pada restoran, sehingga apabila terjadi crowded

pelanggan sudah dapat melakukan prediksi dan tidak sampai overcrowded.

Page 6: Laporan Pds Kelompok 1

6

2. Menangani Stok barang yang kosong, dan memudahkan untuk mengetahui stok

barang yang ada

1.4 MANFAAT PENELITIAN

Manfaat penulisan dari tugas Pemodelan dan Simulasi ini adalah :

1. Memudahkan pihak restoran dalam mengatasi antrian panjang dan kenyamanan

2. Memudahkan pihak restoran dalam mengelola stok bahan baku pada restoran

Page 7: Laporan Pds Kelompok 1

7

BAB II

TINJAUAN PUSTAKA

2.1 PEMBANGKITAN BILANGAN ACAK

Bilangan acak adalah sebuah angka yang tidak diketahui dan tidak diprediksikan

kemunculannya, sementara pembangkitan bilangan acak adalah sebuah algoritma yang

menjalankan fungsi memunculkan bilangan secara acak. Tetapi, dalam praktiknya tidak ada

komputer yang bisa melakukan pengambilan bilangan secara acak murni, tetapi menggunakan

rumus matematika, dikenal dengan pseudorandom number generator (PRNG). Pembangkit

bilangan acak terdiri dari:

1. Table Random Number, yang menggunakan tabel angka sebagai sarana penentu

2. Electronic Random Number, yang banyak diterapkan di perangkat elektronika, dan

3. Congruential Pseudorandom Number, yang dipecah lagi menjadi tiga yaitu:

3.1. Linear Congruential Number/LCN

3.2. Multiplicative Random Number Generation

3.3. Mixed Congruential Random Number Generation

Terdapat 4 sifat dari pembangkitan bilangan acak, yaitu:

a. Independen, dimana variabelnya bebas dari syarat sebagai berikut.

a. Zi-1 merupakan hasil akhir

b. Z0 merupakan bilangan pertama acak tertentu

c. a merupakan angka prima yang bebas dengan ketentuan tersendiri

d. c merupakan angka bebas yang tidak ada kaitannya dengan nilai Zi-1.

b. Uniform, dimana diusahakan setiap pengambilan bilangan acak memiliki

probabilitas yang sama

c. Dense, dimana pengambilan bilangan acak harus memenuhi kaidah probabilitas,

yaitu 0 ≤ RN ≤ 1

d. Efisien, dimana pengambilan bilangan acak harus sesuai dengan variabel-variabel

yang dibutuhkan

2.1.1 LINEAR CONGRUENTIAL NUMBER

Linear congruential random number atau disingkat LCN merupakan sebuah

pseudorandom RNG yang memiliki rumus di bawah ini:

𝑍𝑖 = (𝑎𝑍𝑖−1 + 𝑏)mod 𝑚

Page 8: Laporan Pds Kelompok 1

8

Zi merupakan nilai ke-i, nilai a adalah faktor pengali, Zi-1 adalah nilai sebelum dari

Zi, b adalah nilai increment dan m adalah nilai modulus. Z0 merupakan nilai kunci

dari simulasi pembangkitan LCG, dikenal dengan umpan atau seed.

2.1.2. MULTIPLICATIVE RNG

Multiplicative RNG adalah sebuah pseudorandom RNG yang memiliki rumus di

bawah ini:

𝑍𝑖 = (𝑎𝑍𝑖−1)mod 𝑚

𝑈𝑖 = 𝑍𝑖/𝑚

Multiplicative RNG hampir memiliki kesamaan dengan RNG berjenis linier

congruential, tetapi yang membedakan adalah pemilihan nilai m (modulus) yang

seperlunya digunakan sebesar mungkin untuk memperbesar rasio dan nilai

increment diatur ke nilai 0. Multiplicative RNG ini juga sering dikenal dengan RNG

Lehmer atau Park-Miller.

2.1.3. MIXED CONGRUENTIAL RNG

Mixed Congruential RNG adalah sebuah pseudorandom RNG yang

menggabungkan dua atau lebih Linear Congruential Number sehingga membentuk

sebuah pembangkit nilai acak yang lebih kompleks. Rumusnya adalah:

𝑍𝑖 = (∑(−1)𝑗−1𝑌𝑖,𝑗

𝑘

𝑗=1

) (mod (𝑚1 − 1))

Dimana:

Zi = nilai ke i, Yi. j merupakan input Zi-1 sebagai i dari LCG ke j, mod m1 – 1

adalah modulus dari pengurangan nilai modulus m dari LCG kepertama (m1)

dikurangi 1 dan hasil penghitungan sigma.

2.2. SIMULASI MONTE CARLO

Simulasi Monte Carlo adalah algoritma yang digunakan untuk menghitung peluang

sesuatu yang tidak pasti. Di beberapa bidang seperti keuangan, manajemen bahkan

untuk membuat model prakiraan, simulasi Monte Carlo digunakan untuk menghitung

besar akibat dari sebuah risiko, keterlambatan dan ketidakpastian dalam sebuah

kejadian.

Page 9: Laporan Pds Kelompok 1

9

Dalam simulasi Monte Carlo sebuah model dibangun berdasarkan sistem yang

sebenarnya. Setiap variabel dalam model tersebut memiliki nilai yang memiliki

probabilitas yang berbeda, yang ditunjukkan oleh distribusi probabilitas atau biasa

disebut dengan probability distribution function (pdf) dari setiap variabel. Metode

Monte Carlo mengsimulasikan sistem tersebut berulang-ulang kali, ratusan bahkan

sampai ribuan kali tergantung sistem yang ditinjau, dengan cara memilih sebuah nilai

random untuk setiap variabel dari distribusi probabilitasnya. Hasil yang didapatkan dari

simulasi tersebut adalah sebuah distribusi probabilitas dari nilai sebuah sistem secara

keseluruhan.

Contoh sederhana dari Simulasi ini adalah menghitung peluang jumlah dari dua dadu

yang dikocok. Terdapat 36 kombinasi yang berbeda dari dua dadu tersebut, misal

jumlah mata dadu 5 memiliki 4 kombinasi, peluangnya adalah 1/9 atau 0,111 bila sekali

kocok. Tetapi dengan ratusan kali, bahkan ribuan perulangan, peluang menghasilkan

mata dadu 5 bisa berlipat ganda dan tidak lagi menjadi perkiraan saja.

Page 10: Laporan Pds Kelompok 1

10

BAB III

METODOLOGI PENELITIAN

3.1. Jenis Penelitian

Penelitian yang akan dilakukan ini menggunakan metode penelitian terapan karena

tujuan penelitian ini adalah menerapkan metode monte carlo dalam menghasilkan suatu

Simulasi pada pelayanan Restoran .

3.2. Tempat Penelitian

Tempat Penelitian akan dilakukan di Restoran Gayatri yang bertempat di Ubud,

Gianyar.

3.3. Teknik pengumpulan Data

Data yang berhasil dikumpulkan dan digunakan dalam penelitian ini merupakan data

primer hasil pengamatan secara langsung di cafe gayatri ini. Pola pengamatan dilakukan selama

2 minggu dan mengambil banyak waktu selama 4 jam sibuk operasional yang dibagi atas 2

waktu , yaitu pada pukul 09.00-11.00 dan pukul 18.00 – 20.00 untuk setiap harinya. Data yang

diambil adalah data waktu kedatangan konsumen, serve time dan makanan dan posisi tempat

yang favorit.

3.4. Bahan dan Alat

Alat yang kami gunakan pada penelitian ini adalah sebuah laptop Spesifikasi minimal

laptop dan software yang digunakan untuk membuat program simulasi ini terdiri dari laptop

dengan prosesor quad-core Intel CoreTM i3-2310M 2.10 GHz, RAM 2 GB, hard disk dengan

kapasitas sisa minimum 10 GB, GPU Intel(R) HD Graphics 3000 atau lebih, dan memerlukan

Visual Studio 2013 atau terbaru untuk membuat program simulasi dari kasus yang akan diteliti

ini.

3.5. Metode Penelitian

Penelitian ini merupakan penelitian simulator untuk memperoleh data jumlah

konsumen, yang dilakukan dengan tahapan di bawah ini:

1. Perencanaan simulasi, yaitu tahapan dalam menentukan masalah yang dihadapi

2. Analisis kebutuhan dalam simulasi, yaitu membuat analisis yang dibutuhkan sistem

3. Penerapan simulasi, yaitu membuat proses simulasi hingga selesai

3.6 Hasil pemantauan & Analisis data

Penelitian diselenggarakan di restoran Café Gayatri di Ubud, Gianyar, selama 5 hari

berturut-turut, dari tanggal 26 hingga 30 November 2015. Dari pemantauan tersebut, tersampel

Page 11: Laporan Pds Kelompok 1

11

jumlah pengunjung yang datang ke restoran tersebut selama 5 hari penuh memantau restoran

tersebut

Hari ke-

Jumlah pengunjung

1 452

2 362

3 159

4 160

5 332

Total 1465

Dari 1.465 pengunjung, kami meminta 150 orang atau 10,2% dari jumlah pengunjung

total yang terdata selama 5 hari, untuk memberitahu menu apa saja yang mereka pesan.

Menu tersebut dideskripsikan dalam bentuk angka untuk memudahkan pendataan.

Berikut daftar menu di bawah ini.

id_menu name price

1 Sate 45000

2 Kebab 65000

3 Steak 80000

4 Barbeque 70000

5 Hidangan Pembuka 40000

6 Sup 35000

7 Salad 35000

8 Sandwich 35000

9 Pizza 60000

10 Es Krim 35000

11 Cocktail 70000

12 Minuman Keras 35000

13 Wine 55000

14 Jus Buah 35000

15 Smoothies 35000

16 Minuman Hangat 25000

Page 12: Laporan Pds Kelompok 1

12

Dalam wawancara dengan pengunjung tersebut kami mendapatkan data di bawah ini.

No Jml. Pesanan Pesanan A Pesanan B Pesanan C

1 3 2 16 1

2 2 4 8

3 2 13 1

4 1 4

5 3 6 8 15

6 1 13

7 2 7 15

8 1 13

9 1 1

10 3 4 12 16

11 3 9 6 14

12 2 14 13

13 1 15

14 2 2 15

15 3 12 2 2

16 2 9 12

17 1 15

18 1 16

19 2 1 12

20 1 11

21 2 1 7

22 1 16

23 2 11 13

24 1 1

25 3 8 11 16

26 3 10 13 3

27 2 15 7

28 1 7

29 3 9 10 6

30 2 1 10

31 2 1 16

32 1 12

33 3 5 2 1

34 2 11 7

35 1 8

36 2 9 4

37 2 11 16

38 3 1 9 15

39 3 5 2 10

40 2 11 16

41 1 2

42 2 16 15

43 2 12 10

Page 13: Laporan Pds Kelompok 1

13

44 2 16 8

45 3 1 4 9

46 1 3

47 2 2 5

48 3 13 15 4

49 3 12 14 10

50 3 7 3 3

51 2 2 5

52 1 3

53 2 2 11

54 2 15 16

55 2 16 2

56 1 5

57 3 16 4 4

58 3 16 1 13

59 2 16 11

60 2 16 1

61 2 3 6

62 2 2 6

63 3 8 1 8

64 3 12 12 8

65 2 13 6

66 3 2 11 5

67 1 3

68 2 15 15

69 3 11 3 5

70 2 11 12

71 3 9 7 12

72 2 8 14

73 2 6 13

74 1 4

75 1 4

76 3 1 12 12

77 1 13

78 3 6 10 6

79 1 16

80 2 3 16

81 3 2 1 12

82 2 9 15

83 2 7 9

84 2 12 13

85 1 16

86 1 15

87 1 14

Page 14: Laporan Pds Kelompok 1

14

88 3 4 2 9

89 1 1

90 1 9

91 3 4 13 4

92 1 11

93 2 10 15

94 2 2 9

95 3 12 1 3

96 3 7 13 2

97 3 11 12 8

98 2 2 1

99 2 15 14

100 2 2 7

101 3 8 16 2

102 3 14 12 11

103 1 11

104 3 10 6 5

105 1 13

106 3 4 1 5

107 1 3

108 2 10 8

109 1 7

110 2 1 1

111 1 8

112 3 11 3 12

113 1 11

114 3 8 14 13

115 3 5 1 12

116 3 9 13 9

117 1 6

118 3 11 16 14

119 2 12 11

120 2 15 13

121 2 15 6

122 3 11 14 6

123 3 12 15 4

124 2 16 3

125 3 14 1 16

126 1 10

127 3 15 12 9

128 2 12 2

129 1 6

130 2 14 1

131 3 3 12 11

132 1 15

133 1 6

134 3 15 10 2

Page 15: Laporan Pds Kelompok 1

15

135 3 8 7 1

136 3 2 7 11

137 1 2

138 3 8 10 1

139 1 14

140 3 5 1 10

141 3 2 1 14

142 2 6 9

143 2 14 1

144 1 4

145 3 1 16 11

146 2 6 15

147 2 4 14

148 1 14

149 3 7 2 15

150 1 2

GT 308 44 54 52

Berdasarkan data di atas, mayoritas pelanggan restoran yang ditanyakan (54 pembeli)

memesan sebanyak-banyaknya dua menu. Probabilitas dari pesanan tersebut

dijelaskan di bawah ini.

Jml Pesan Prob. Cumulative Urutan

1 0.293333333 0.29333333 01 ke 44

2 0.36 0.65333333 45 ke 98

3 0.346666667 1 99 ke 150

Data sebelumnya yang sama juga mencatat total menu yang dibeli oleh 150 pembeli

tersampel adalah 308 buah. Dari 308 menu pesanan tersebut, kami menghitung

banyaknya pesanan di setiap menunya.

id_menu name Pesanan/menu

A B C GT

1 Sate 12 15 4 31

2 Kebab 16 7 4 27

3 Steak 7 4 3 14

4 Barbeque 10 3 4 17

5 Hidangan Pembuka

5 2 4 11

6 Sup 8 6 3 17

7 Salad 7 7 0 14

8 Sandwich 9 4 3 16

9 Pizza 8 4 4 16

10 Es Krim 5 6 3 14

11 Cocktail 14 5 4 23

12 Minuman Keras 10 10 5 25

13 Wine 7 9 2 18

Page 16: Laporan Pds Kelompok 1

16

14 Jus Buah 8 6 3 17

15 Smoothies 12 9 3 24

16 Minuman Hangat 12 9 3 24

GT 150 106 52 308

Sate menjadi pesanan paling banyak yaitu 31 pesanan, disusul dengan kebab sebanyak

27 pesanan dan minuman keras sebanyak 25 pesanan. Probabilitas dari data diatas:

Menu Prob. Cumulative Urutan

1 0.100649351 0.100649351 1 ke 31

2 0.087662338 0.188311688 32 ke 58

3 0.045454545 0.233766234 59 ke 72

4 0.055194805 0.288961039 73 ke 89

5 0.035714286 0.324675325 90 ke 100

6 0.055194805 0.37987013 101 ke 117

7 0.045454545 0.425324675 118 ke 131

8 0.051948052 0.477272727 132 ke 147

9 0.051948052 0.529220779 148 ke 163

10 0.045454545 0.574675325 164 ke 177

11 0.074675325 0.649350649 178 ke 200

12 0.081168831 0.730519481 201 ke 225

13 0.058441558 0.788961039 226 ke 243

14 0.055194805 0.844155844 244 ke 260

15 0.077922078 0.922077922 261 ke 284

16 0.077922078 1 285 ke 308

3.7 Metode Pembangkitan & Logika Simulasi

Dalam menentukan banyak antrian dalam 1 hari, kami menggunakan Linear

Congruential Random Number Generator dengan batasan minimum 100 orang, sementara

untuk menciptakan angka menu dan untuk banyaknya pesanan dan menu, menggunakan

metode yang sama (Linear Congruential RNG) dengan pembagian 3 untuk pesanan (maksimal

3, rentang 0-2), dan 16 untuk menu (maksimal 16, rentang 0-15) Logika simulasi yang

digunakan disini adalah:

1. Diasumsikan bahwa maksimal seseorang memesan makanan/minuman maksimal 3

buah, dan makanan tidak membusuk selama waktu simulasi.

2. Pemesanan yang bersifat take-away, pesan-antar dan makan di tempat dianggap sama.

3. Pertama seorang konsumen memesan menu. Banyaknya menu yang dipesan terhitung

sebagai jumlah pesanan.

4. Menu tersebut akan memengaruhi bahan-bahan yang tersedia.

Page 17: Laporan Pds Kelompok 1

17

5. Pemesanan tersebut memberi pemasukkan neraca keuangan. Sementara jika stok barang

kurang, barang tersebut harus dibeli secara periodik, dan memberikan pengeluaran

kepada neraca keuangan.

6. Hasilnya akan dicatat ke neraca keuangan, dimana bila pemasukan melebihi

pengeluaran, akan memberi tambahan kepada modal (untung), sebaliknya bila

pengeluaran melebihi pemasukan, akan mengurangi banyaknya modal (rugi).

Page 18: Laporan Pds Kelompok 1

18

BAB IV

HASIL DAN PEMBAHASAN

4.1. Implementasi Simulasi

Model simulasi ini menggunakan Bahasa Pemrograman C# dengan

menggunakan program IDE Microsoft Visual Studio. Dibawah ini adalah

implementasi-implementasi yang sesuai dengan fungsinya.

1. Modul probabilitas pembeli dan pemesan

double[] z1 = new double[waktu+2]; double[] u1 = new double[waktu+2]; a1 = rand(10, 16); m = rand(10, 20); c1 = rand(10, 20); z1[0] = 14;

z1[1] = ((a1 * z1[0]) + c1) % m; u1[1] = (int)Math.Round((z1[1] / m) * 100); for (int i = 1; i <= waktu; i++) { a1 = rand(10, 16); m = rand(10, 20); c1 = rand(10, 20); z1[i] = ((a1 * z1[i - 1]) + c1) % m; u1[i] = (int)Math.Round((z1[i] / m) * 100); //isi Probabilitas keluaran dan Orang yang datang if (i == 1) { orang[1] = rand(0,300); } else { if (u1[i] >= 0 && u1[i] < 15 ) orang[i] = rand(100,200); else if (u1[i] >= 15 && u1[i] < 33) orang[i] = rand(201,300); else if (u1[i] >= 33 && u1[i] < 66) orang[i] = rand(301,350); else if (u1[i] >= 66 && u1[i] < 75) orang[i] = rand(351,400); else if (u1[i] >= 75 && u1[i] < 80) orang[i] = rand(401,450); else if (u1[i] >= 80 && u1[i] < 85) orang[i] = rand(451,500); else if (u1[i] >= 85 && u1[i] < 90) orang[i] = rand(501,550);// isi sampe 8 else if (u1[i] >= 90 && u1[i] <= 100) orang[i] = rand(551,670); } orang1 = orang[i] + orang1; }

Page 19: Laporan Pds Kelompok 1

19

Modul di atas menjalankan fungsi menentukan jumlah orang yang akan

mendatangi restoran tersebut. Pertama, nilai Z0 sudah ditentukan ke 14, dan

nilai Z1 dihitung dengan rumus LCG, dan dibagi dengan nilai m untuk

menghasilkan nilai probabilitas U1. Hasil probabilitas U1 tersebut

digunakan untuk menentukan jumlah pengunjung yang diprediksi

memasuki restoran tersebut dalam 1 hari, dan hasil jumlah pengunjung

tersebut akan disimpan di datagridview, dan digunakan lagi dalam

penghitungan random pesanan (di bagian berikutnya) dan diulang lagi

hingga batas simulasi.

int pesan; double[] z2 = new double[orang1+2]; double[] u2 = new double[orang1+2]; int[] nan = new int[waktu+1]; a2 = rand(10, 16); m = rand(10, 20); c2 = rand(10, 20); z2[0] = 13; z2[1] = ((a2 * z2[0]) + c2) % m; u2[1] = (int)Math.Round((z2[1] / m) * 100); int[] psn = new int[orang1+1]; for (int i = 1; i <= waktu; i++) { pesan = 0; for (int j=1; j <= orang[i]; j++) { a2 = rand(10, 16); m = rand(10, 20); c2 = rand(10, 20); z2[i] = ((a2 * z2[i - 1]) + c2) % m; u2[i] = u2[i] = (int)Math.Round((z2[i] / m) * 100); if (u2[i] >= 0 && u2[i] <= 44) psn[j] = 1; else if (u2[i] >= 44 && u2[i] <= 80) psn[j] = 2; else if (u2[i] >= 80 && u2[i] <= 100) psn[j] = 3; pesan = pesan + psn[j]; pesan1 = psn[j] + pesan1; } nan[i] = pesan; }

Di modul ini, hasil hitungan pengunjung tadi digunakan kembali ke dalam

perhitungan ini, digunakan untuk menghitung banyaknya pesanan.

Sistemnya sama, dengan melibatkan LCG untuk menghitung Z1, dengan Z0

Page 20: Laporan Pds Kelompok 1

20

ditetapkan ke angka 13, dan U1 ditarik dengan membagi Z1 dengan nilai m

(ditetapkan ke 21). Setelah nilai U1 dicocokkan dengan jumlah pesanan,

sebagai prediksi jumlah pesanan dalam 1 orang, dan disimpan ke

datagridview dan dilanjutkan ke bagian selanjutnya, yaitu bagian simulasi

dan .

2. Modul probabilitas pilihan menu

int[] pesanan = new int[pesan1+2]; double[] z3 = new double[pesan1+2]; double[] u3 = new double[pesan1+2]; a2 = rand(10, 16); m = rand(10, 20); c2 = rand(10, 20); z3[0] = 53; z3[1] = ((a2 * z2[0]) + c1) % m; ; u3[1] = (int)Math.Round((z2[1] / m) * 100); for (int j = 1; j <=pesan1; j++) { a2 = rand(10, 16); m = rand(10, 20); c2 = rand(10, 20); z3[j] = ((a2 * z3[j - 1]) + c2) % m; u3[j] = (int)Math.Round((z3[j] / m) * 100); //isi suatu Pesanan random berdasarkan probabiltas berapa persentase 0-100 % if (u3[j] >= 0 && u3[j] < 15) pesanan[j] = 1; else if (u3[j] >= 15 && u3[j] < 25) pesanan[j] = 2; else if (u3[j] >= 25 && u3[j] < 40) pesanan[j] = 3; else if (u3[j] >= 40 && u3[j] < 55) pesanan[j] = 4; else if (u3[j] >= 55 && u3[j] < 65) pesanan[j] = 5; else if (u3[j] >= 65 && u3[j] < 80) pesanan[j] = 6; else if (u3[j] >= 80 && u3[j] <= 100) pesanan[j] = 7;//... isi sampe 7 }

Modul di atas menjalankan probabilitas menu yang diambil dari hasil

pesanan sebelumnya. Sistemnya juga sama yaitu dengan menggunakan

metode LCG untuk menghitung Z1 dan seterusnya, dan nilai Z1 dibagi

dengan nilai m untuk membentuk nilai U1 dan seterusnya untuk

menentukan menu yang akan dipilih calon konsumen secara acak. Menu

yang dipilih akan disimpan ke datagridview.

3. Modul simulasi

Page 21: Laporan Pds Kelompok 1

21

public static readonly Random random = new Random(); public static readonly object synlock = new object(); public int rand(int min, int max) { lock (synlock) { return random.Next(min, max); } }

Modul untuk mencetak nilai random

int p = 1; for (int a = 1; a < waktu; a++) { keluar = 0; masuk = 0; uang = uang + profit; dataGridView3.Rows.Add(1); dataGridView3.Rows[a].Cells[0].Value = a; dataGridView3.Rows[a].Cells[1].Value = orang[a]; dataGridView3.Rows[a].Cells[2].Value = nan[a]; for (int i = 1; i < nan[a]; i++) { //isi rumus stok makanan yang di butuh kan if (pesanan[p] == 1 && say >= 0 && dag >= 0 && saos >= 0) { say = say - 0.1; dag = dag - 0.1; saos = saos - 0.1; masuk = masuk + 45000; p++; } else if (pesanan[p] == 2 && say >= 0 && dag >= 0 && saos >= 0 && minyak >= 0 ) { say = say - 0.1; dag = dag - 0.4; saos = saos - 0.1; minyak = minyak - 0.1; masuk = masuk + 65000; p++; } else if (pesanan[p] == 3 && bu >= 0 && sir >= 0 ) { bu = bu - 0.2; sir = sir - 0.1; masuk = masuk + 35000; p++; } else if (pesanan[p] == 4 && say >= 0 ) { say = say - 0.4; masuk = masuk + 35000; p++; }

Page 22: Laporan Pds Kelompok 1

22

else if (pesanan[p] == 5 && es >= 0 && sir >= 0 ) { es = es - 0.5; sir = sir - 0.2; masuk = masuk + 35000; p++; } else if (pesanan[p] == 6 && say >= 0 && dag >=0 && saos >= 0 && minyak >= 0 ) { say = say - 0.3; dag = dag - 0.3; saos = saos - 0.1; minyak = minyak - 0.1; masuk = masuk + 60000; p++; } else if (pesanan[p] == 7 && say >= 0 && dag >= 0 && minyak >= 0 ) { say = say - 0.2; dag = dag - 0.2; minyak = minyak - 0.1; masuk = masuk + 35000; p++; } // isi stok jika makanan kurang dari target // gunakan if tidak mengunakan if else if (saos <= targ) { saos = saos + rest; keluar = keluar + (15000 * rest); } if (say <= targ) { say = say + rest; keluar = keluar + (20000 * rest); } if (dag <= targ) { dag = dag + rest; keluar = keluar + (60000 * rest); } if (minyak <= targ) { minyak = minyak + rest; keluar = keluar + (35000 * rest); } if (bu <= targ) { bu = bu + rest; keluar = keluar + (40000 * rest); } if (es <= targ) { es = es + rest; keluar = keluar + (22000 * rest); } if (sir <= targ) { sir = sir + rest;

Page 23: Laporan Pds Kelompok 1

23

keluar = keluar + (28000 * rest); } } profit = masuk - keluar;

Modul untuk menghitung banyaknya pemasukkan dan pengeluaran dari satu

hari simulasi aktivitas restoran.

tempdate.AddDays(1); we = tempdate.ToLongDateString(); dataGridView1.Rows.Add(1); dataGridView2.Rows.Add(1); dataGridView1.Rows[a].Cells[0].Value = a; dataGridView1.Rows[a].Cells[1].Value = say; dataGridView1.Rows[a].Cells[2].Value = sir; dataGridView1.Rows[a].Cells[3].Value = dag; dataGridView1.Rows[a].Cells[4].Value = ber; dataGridView1.Rows[a].Cells[5].Value = saos; dataGridView1.Rows[a].Cells[6].Value = es; dataGridView1.Rows[a].Cells[7].Value = bu; // dataGridView1.Rows[a].Cells[8].Value = minyak; dataGridView2.Rows[a].Cells[0].Value = a; dataGridView2.Rows[a].Cells[1].Value = uang; dataGridView2.Rows[a].Cells[2].Value = masuk; dataGridView2.Rows[a].Cells[3].Value = keluar; dataGridView2.Rows[a].Cells[4].Value = profit; } p=0; for (int a=1;a<=orang1;a++) { dataGridView4.Rows.Add(1); if (psn[a]==1) { dataGridView4.Rows[a].Cells[0].Value = a; dataGridView4.Rows[a].Cells[1].Value = pesanan[p]; p++; dataGridView4.Rows[a].Cells[2].Value = "-"; dataGridView4.Rows[a].Cells[3].Value="-"; } if(psn[a]==2) { dataGridView4.Rows[a].Cells[0].Value = a; dataGridView4.Rows[a].Cells[1].Value = pesanan[p]; p++; dataGridView4.Rows[a].Cells[2].Value = pesanan[p]; p++; dataGridView4.Rows[a].Cells[3].Value = "-"; } if(psn[a]==3) {

Page 24: Laporan Pds Kelompok 1

24

dataGridView4.Rows[a].Cells[0].Value = a; dataGridView4.Rows[a].Cells[1].Value = pesanan[p]; p++; dataGridView4.Rows[a].Cells[2].Value = pesanan[p]; p++; dataGridView4.Rows[a].Cells[3].Value = pesanan[p]; p++; } }

Modul memunculkan output

Modul ini terdiri dari 3 bagian, bagian random, finansial dan output. Modul

pertama, yaitu random, digunakan untuk menentukan nilai secara acak.

Nilai acak tersebut diambil menggunakan algoritma tertentu, dengan

batasan mulai dari 1 sampai 9.

Modul selanjutnya adalah menghitung pemasukan dan pengeluaran sebagai

akibat dari pembelian bahan dan penjualan menu yang ada. Setiap ada menu

yang dipesan, maka akan memberi pemasukan pada restoran. Sebaliknya,

setiap pengeluaran terjadi bila jumlah bahan kurang dari 0.

Page 25: Laporan Pds Kelompok 1

25

4.2. Uji Program

1. Uji Input

Saat user meminta lama jalannya simulasi, modal dan stok, program akan

memberikan output berupa hasil simulasi

2. Uji Output

Program mengeluarkan hasil berupa jumlah pelanggan, pesanan, stok dan

keuangan.

Page 26: Laporan Pds Kelompok 1

26

Dalam pengujian simulasi yang diselenggarakan selama 9 hari simulasi, kita

mengetahui bahwa dalam sekian hari ini, restoran telah mendatangkan

pelanggan sebagai berikut.

Hari ke Orang Jumlah pesanan

1 86 142

2 349 545

3 397 652

4 322 557

5 348 555

6 554 962

7 395 651

8 135 223

9 178 299

10 487 807

11 259 444

12 369 653

13 236 400

14 170 288

15 405 681

16 160 262

17 307 538

18 323 563

19 251 404

20 301 534

21 198 329

22 368 625

23 328 553

24 341 574

25 218 372

26 279 452

27 114 196

28 487 795

29 348 584

30 239 411

Selain itu, restoran meraup pemasukan sebagai berikut

Hari

ke

Modal Pemasukan Pengeluaran Keuntungan/kerugian

1 500000 6440000 11000000 -4560000

2 -4060000 23050000 9000000 14050000

3 9990000 27970000 10800000 17170000

4 27160000 23940000 10550000 13390000

Page 27: Laporan Pds Kelompok 1

27

5 40550000 24060000 9125000 14935000

6 55485000 41935000 15425000 26510000

7 81995000 27965000 10500000 17465000

8 99460000 9885000 5450000 4435000

9 103895000 13175000 4550000 8625000

10 112520000 34925000 13425000 21500000

11 134020000 18740000 7125000 11615000

12 145635000 28095000 12375000 15720000

13 161355000 17075000 4875000 12200000

14 173555000 12425000 6125000 6300000

15 179855000 29430000 10375000 19055000

16 198910000 11165000 4550000 6615000

17 205525000 23705000 9500000 14205000

18 219730000 24275000 10000000 14275000

19 234005000 17490000 6300000 11190000

20 245195000 23380000 9125000 14255000

21 259450000 14155000 4925000 9230000

22 268680000 26795000 10500000 16295000

23 284975000 23835000 9500000 14335000

24 299310000 25215000 9000000 16215000

25 315525000 16180000 7300000 8880000

26 324405000 19930000 7625000 12305000

27 336710000 8705000 3875000 4830000

28 341540000 33965000 13250000 20715000

29 362255000 25595000 9300000 16295000

30 378550000 17765000 8000000 9765000

4.3. Analisis Hasil Simulasi

Berdasarkan data yang dihasilkan dari simulasi di atas, maka kita menarik

kesimpulan bahwa:

Jumlah pelanggan: 8.952 orang

Rata-rata pemasukan: Rp 21.700.000,-

Rata-rata pemesanan: 502

1. Pengujian bilangan random dengan run test untuk jumlah pelanggan

No Bilangan Acak Tanda RUN

1

+ 0

1 86 + 0

2 349 + 1

Page 28: Laporan Pds Kelompok 1

28

3 397 - 0

4 322 - 1

5 348 + 1

6 554 + 1

7 395 - 0

8 135 - 1

9 178 + 0

10 487 + 1

11 259 - 1

12 369 + 1

13 236 - 0

14 170 - 1

15 405 + 1

16 160 - 1

17 307 + 1

18 323 - 1

19 251 + 1

20 301 - 1

21 198 + 1

22 368 - 1

23 328 + 1

24 341 - 1

25 218 + 1

26 279 - 1

27 114 + 1

28 487 - 0

29 348 -

30 239

Total Run 23

2. Menghitung rata-rata dan variansi untuk jumlah pelanggan

𝜇𝑎 =2𝑁 − 1

3=

2 × 30 − 1

3= 20

𝜎2 =16𝑁 − 29

90=

16 × 30 − 29

90= 5,01

𝜎 = 2,24

3. Uji Hipotesis dengan α=0,05 untuk jumlah pelanggan

H0 = 𝜇𝑎= 20, H1 = 𝜇𝑎≠ 20

Page 29: Laporan Pds Kelompok 1

29

𝑍 =(𝑎 − 𝜇𝑎)

𝜎=

23 − 20

2,24= 1,34

Nilai rentang α adalah -1,96 dengan 1,96 dan nilai Z adalah 1,34, maka

bilangan random ini dinyatakan terbukti sebagai kumpulan bilangan random

bebas

4. Chi-Square untuk jumlah pelanggan

𝐶𝑙𝑎𝑠𝑠 = 1 + 3,3 log 𝑁 = 1 + 3,3 log 30 = 5,87 ≈ 6

𝐿𝑖𝑚𝑆𝑃𝑅 =𝑀𝐴𝑋 − 𝑀𝐼𝑁

𝐶𝑙𝑎𝑠𝑠=

554 − 86

6=

468

6= 78

No Sebaran Frekuensi

Bil. Acak

Frekuensi

Harapan

ChiSquare

1 79-156 3 5 0,4

2 157-234 5 5 0

3 235-312 7 5 0,6

4 313-390 9 5 3,2

5 391-468 3 5 0,4

6 469-545 3 5 0,4

Total 30 30 5

5. Uji Hipotesis Chi-square

α = 0,05 = 11,071

Df = 5

Kesimpulan yang ditarik dari uji Chi-square di atas adalah bahwa nilai

ChiSquare hitung berada di bawah nilai ChiSquare tabel (5<11,071), maka

data uji terbukti uniform.

6. Pengujian bilangan random dengan run test untuk jumlah pesanan

No Bilangan Acak Tanda RUN

1

+ 0

1 142 + 0

2 545 + 1

3 652 - 0

4 557 - 1

5 555 + 1

6 962 - 0

7 651 - 1

Page 30: Laporan Pds Kelompok 1

30

8 223 + 0

9 299 + 1

10 807 - 1

11 444 + 1

12 653 - 0

13 400 - 1

14 288 + 1

15 681 - 1

16 262 + 0

17 538 + 1

18 563 - 1

19 404 + 1

20 534 - 1

21 329 + 1

22 625 - 1

23 553 + 1

24 574 - 1

25 372 + 1

26 452 - 1

27 196 + 1

28 795 - 0

29 584 -

30 411

Total Run 22

7. Menghitung rata-rata dan variansi untuk jumlah pesanan

𝜇𝑎 =2𝑁 − 1

3=

2 × 30 − 1

3= 20

𝜎2 =16𝑁 − 29

90=

16 × 30 − 29

90= 5,01

𝜎 = 2,24

8. Uji hipotesis dengan α=0,05 untuk jumlah pesanan

H0 = 𝜇𝑎= 20, H1 = 𝜇𝑎≠ 20

𝑍 =(𝑎 − 𝜇𝑎)

𝜎=

22 − 20

2,24= 0,89

Nilai rentang α adalah -1,96 dengan 1,96 dan nilai Z adalah 0,89, maka

bilangan random diatas dinyatakan terbukti sebagai kumpulan bilangan

random bebas

9. Chi-square untuk jumlah pesanan

𝐶𝑙𝑎𝑠𝑠 = 1 + 3,3 log 𝑁 = 1 + 3,3 log 30 = 5,87 ≈ 6

Page 31: Laporan Pds Kelompok 1

31

𝐿𝑖𝑚𝑆𝑃𝑅 =𝑀𝐴𝑋 − 𝑀𝐼𝑁

𝐶𝑙𝑎𝑠𝑠=

962 − 142

6=

468

6= 136,7 ≈ 137

No Sebaran Frekuensi

Bil. Acak

Frekuensi

Harapan

ChiSquare

1 137-273 4 5 0,2

2 274-410 6 5 0,2

3 411-547 6 5 0,2

4 548-684 11 5 7,2

5 685-821 2 5 0,4

6 822-958 1 5 0,2

Total 30 30 8,4

1. Uji Hipotesis Chi-square

α = 0,05 = 11,071

Df = 5

Kesimpulan yang ditarik dari uji Chi-square di atas adalah bahwa nilai

ChiSquare hitung berada di bawah nilai ChiSquare tabel (8,4<11,071), maka

data uji di atas terbukti uniform.

4.4. Uji Replikasi

Output hasil simulasi sudah diketahui untuk kondisi saat ini. Dari hasil running

1 minggu hari simulasi dengan replikasi sebanyak 10 kali didapat output tabel

sebagai berikut

Replikasi

ke

Rata-rata Orang Rata-rata Pesanan Rata-rata Omzet

1 415 692 30.030.800

2 329 564 24.458.000

3 359 591 25.600.000

4 286 473 20.290.800

5 279 466 20.090.000

6 263 430 18.642.500

7 220 366 15.745.800

8 235 407 17.698.000

9 243 418 18.025.800

10 248 417 17.940.000

Cumulative

Mean

287.7 482.4 20.852.170

Dari hasil uji replikasi diatas, dapat disimpulkan bahwa rata-rata orang dan

pesananan sudah terdata dengan jelas. Dimana rata-rata orang berjumlah sekitar

287,7 orang dan rata-rata pesanan sekitar 482,4. Dari kedua rata-rata tersebut

kita mendapatkan pula rata-rata omzet sesuai dari perhitungan awal replikasi.

Page 32: Laporan Pds Kelompok 1

32

BAB V PENUTUP

5.1. Kesimpulan

Berdasarkan hasil dari simulasi yang dilakukan dapat ditarik kesimpulan bahwa dalam

melakukan proses simulasi hal penting yang harus dilakukan adalah melakukan pengamatan

untuk mendapatkan data agar proses simulasi sesuai dengan keadaan yang sebenarnya. Dimana

dalam kasus ini dalam proses simulasi dilakukan untuk mendapatkan keuntungan optimal dari

sebuah café gayatri dengan mempertimbangkan jumlah stok barang, pesanan, dan pelanggan

masuk setiap harinya dengan menggunakan bilangan acak atau random.

5.2. Saran

Pada aplikasi ini masih menggunakan aplikasi berbasis desktop, sehingga tidak dapat

diakses dari mana saja. Sebelum melakukan simulasi agar benar-benar diperhatikan dari segi

data simulasi dengan keadaan sebenarnya karena akan sangat mempengaruhi jalannya

simulasi.

Page 33: Laporan Pds Kelompok 1

33

DAFTAR PUSTAKA

Wikipedia, 2014 Metode Monte Carlo,

https://id.wikipedia.org/wiki/Metode_Monte_Carlo

Harry, 2014 Simulasi Monte Carlo,

https://keluarandanmasukan.wordpress.com/pemrograman-simulasi/simulasi-

monte-carlo/

Nurfaisal, 2014 Rancang Bangun Aplikasi Simulasi Antrian

https://prezi.com/zt5o68qkkrno/rangcang-bangun-aplikasi-simulasi-antrian-

pelayanan-restoran/

Marantha, 2007 Usulan Rancangan Sistem Antrian yang Optimal

http://repository.maranatha.edu/4421/