Anda di halaman 1dari 68

Simulasi Kejadian Diskret

(Discrete Event Simulation)

Simulasi Kejadian Diskret


Simulasi kejadian diskret (discrete time
simulation) merupakan simulasi dengan
perubahan status dari model simulasi terjadi
pada titik-titik waktu yang diskret yang dipicu
oleh kejadian.

Beberapa Contoh Kejadian


Sistem antrian
Kedatangan pelanggan pada antrian
Kepergian pelanggan

Sistem pemeliharaan mesin


Kerusakan mesin
Beroperasinya mesin

Sistem parkir kendaraan


Kedatangan mobil
Kepergian mobil
3

Perubahan Variabel Status dalam


Simulasi Kejadian Diskret vs Kontinyu
Dalam simulasi kejadian diskret, variabel status
berubah jika suatu kejadian terjadi
Dalam simulasi kontinyu, variabel status berubah
dengan berubahnya waktu.

Perubahan Variabel Status dalam


Simulasi Kejadian Diskret vs Kontinyu

Continuous-change
state variable

Value

Discrete-change
state variable

Time

Pendefinisian Perubahan Variabel


Status dalam Simulasi Kontinyu
Pendefinisian laju perubahan dalam variabel
status sepanjang waktu:
Differential equations
Difference equations

Differential Equation
Perubahan dari variabel status dinyatakan
dengan turunan (derivative) dari variabel status.
Persamaan yang mencakup turunan disebut
persamaan diferensial (differential equation).
Contoh:
dvt
v 2 t t 2
dt
v(0) K
7

Difference Equation
Waktu didekomposisi ke dalam periodeperiode waktu dengan panjang t.
Nilai dari variabel status pada akhir periode k
+ 1 didasarkan atas nilai dari variabel status
pada akhir periode k.
Contoh:
vk 1 vk rt

Kombinasi Kejadian Diskret dan


Kontinyu
Sistem dapat mengandung kombinasi kejadian diskret
dan kontinyu.
Empat interaksi dasar:
Nilai variabel status kontinyu tiba-tiba naik/turun sebagai
akibat suatu kejadian diskret
Inisiasi kejadian diskret dapat terjadi akibat nilai variabel
kontinyu mencapai ambang batas tertentu.
Laju perubahan variabel kontinyu berubah sebagai akibat
suatu kejadian diskret.
Inisiasi atau penghentian perubahan variabel kontinyu
dapat terjadi karena adanya suatu kejadian diskret.
9

Bagaimana Simulasi Kejadian Diskret


Bekerja?
Model simulasi umumnya didefinisikan secara
process-oriented.
Sistem digambarkan sebagai aliran proses (process
flow).
Dalam simulasi kejadian diskret, definisi aliran proses
diterjemahkan ke dalam suatu urutan kejadian
Kejadian dalam simulasi kejadian diskret:
Kejadian terjadwal (scheduled event)
Kejadian kondisional (conditional event)
10

Kejadian Terjadwal
Kejadian yang saat terjadinya sudah ditentukan
sebelumnya
Contoh untuk sistem antrian:
Kejadian kedatangan pelanggan
Kejadian pelanggan selesai dilayani

11

Kejadian Kondisional
Kejadian yang dipicu oleh suatu kondisi
tertentu
Contoh dalam sistem antrian:
Kejadian seorang pelanggan mulai dilayani (yang
dipicu oleh kejadian orang sebelumnya selesai
dilayani)

12

Pemrosesan Kejadian
Kejadian memicu eksekusi dari logika yang berkaitan dengan
kejadian
Contoh:
Jika suatu entitas membebaskan suatu sumberdaya, variabel status dan
statistik diperbarui dan daftar tunggu diperiksa untuk memeriksa
aktivitas apa yang akan diproses berikutnya.

Dalam sistem nyata, kejadian-kejadian dapat terjadi bersamaan.


Dalam simulasi komputer, hanya ada satu aktivitas yang
diproses pada suatu saat.
Diperlukan suatu metode atau aturan untuk menentukan
kejadian yang terjadi pada saat yang bersamaan.

13

Garis Besar Simulasi


Kejadian Diskret

Start

Create simulation
database and schedule
initial events

Advance clock to next


event time

Update statistics and


generate output report

Termination event?
Yes
No

Process event and


schedule any new
events.

Stop

Update statistics, state


variables, and animation.

Yes

Any conditional
events?
No

14

Ilustrasi Simulasi Kejadian Diskret


Secara Manual
Sistem Anjungan Tunai Mandiri (ATM).
Sistem antrian pelayan tunggal.
Asumsi-asumsi:
Waktu antar kedatangan pelanggan berdistribusi
eksponensial dengan rata-rata 3 menit.
Waktu pelayanan berdistribusi eksponensial dengan ratarata 2.4 menit.
Jumlah pelayan adalah tunggal (pelayan hanya dapat
melayani satu pelanggan pada suatu saat).
Jumlah (kapasitas) antrian adalah tak terbatas
Jumlah input populasi adalah tak terbatas
15

Asumsi Lain
Pada saat awal, tidak ada pelanggan dalam
sistem, sehingga antrian dalam keadaan
kosong dan ATM menganggur.
Waktu perpindahan dari antrian ke ATM
(pelayan) diabaikan
Pelanggan dilayani dari antrian mengikuti
aturan first-in, first-out (FIFO).
ATM tidak pernah mengalami kerusakan.
16

Diagram Alir Entitas dalam Sistem


ATM

Arriving customers
(entities)

ATM queue
(FIFO)

ATM server
(resource)

Departing customers
(entities)

17

Jam Simulasi
Karena adanya transisi simulasi dari suatu
kejadian ke kejadian berikutnya, jam simulasi
(simulation clock) bergerak ke saat waktu dari
kejadian yang terjadwal.
Jam simulasi maju melalui serangkaian
langkah waktu.

18

Atribut Entitas
Atribut entitas (entity atribut) adalah
karakteristik dari entitas yang dipertahankan
hingga entitas tersebut keluar dari sistem.
Atribut ini memberikan informasi statistik
selama entitas tersebut diproses dalam sistem.

19

Variabel Status
Variabel status (state variable) digunakan
untuk melacak bagaimana status dari sistem
berubah karena kedatangan dan kepergian
pelanggan
Jumlah entitas (pelanggan dalam antrian pada saat
i, NQi)
Status ATM yang menunjukkan apakah ATM
sibuk (= 1) atau menganggur (= 0), Statusi
20

Akumulator Statistik
(Statistical Accumulators)
Dalam simulasi, diinginkan untuk menentukan ekspektasi
waktu menunggu pelanggan dalam antrian dan ekspektasi
jumlah pelanggan yang menunggu dalam antrian
Waktu rata-rata pelanggan menunggu dalam antrian adalah
simple average dan untuk menghitungnya diperlukan catatan
berapa pelanggan yang meninggalkan antrian dan waktu yang
dibutuhkan tiap pelanggan yang menunggu dalam antrian.
Jumlah rata-rata pelanggan dalam antrian merupakan timeweighted average (atau time average) dan untuk
menghitungnya memerlukan jumlah pelanggan dalam antrian
selama simulasi dan memerlukan waktu bahwa antrian
dipertahankan pada tiap nilai yang teramati.
21

Akumulator Statistik
(Statistical Accumulators)
Simple-average time dalam antrian.
Catat jumlah pelanggan yang meninggalkan
antrian
Untuk pelanggan, catat waktu yang dihabiskan
dalam antrian

Time-average number of customer dalam


antrian
Catat perkalian (ti ti-1)NQi-1, yaitu, jumlah
waktu tertimbang dari entitas dalam antrian
22

Kejadian (Event)
Dua kejadian yang mengubah status sistem:
Kedatangan (arrival)
Kepergian (departure)

Kejadian kedatangan terjadi jika pelanggan tiba di


antrian.
Tiap pemrosesan kedatangan pelanggan mencakup
penjadwalan kedatangan pelanggan berikutnya.
Jika pelanggan dilayani ATM, kepergian dijadwalkan
berdasarkan lamanya waktu pelayanan.
Untuk penghentian simulasi
Kejadian penghentian (termination).
23

Untuk menjadwalkan entitas pelanggan yang


selanjutnya datang ke sistem, simulasi memerlukan
pembangkitan waktu antar kedatangan dan
menambahkannya pada jam simulasi saat ini, ti.
Waktu antar kedatangan berdistribusi eksponensial
dengan mean 3 menit.
Penjadwalan kedatangan berikutnya: ti + E(3.0).
Waktu pelayanan berdistribusi eksponensial dengan
mean 2.4 menit.
Penjadwalan kepergian: ti + E(2.4).

24

Kalender Kejadian
Kalender kejadian (event calendar) mempertahankan
daftar kejadian aktif (kejadian yang sudah terjadwal
yang menunggu untuk diproses) dalam urutan
kronologis.
Simulasi bergerak dengan menghilangkan kejadian
pertama dalam daftar pada kalender kejadian,
menetapkan jam simulasi, ti , dan equal to the time at
which the event is scheduled to occur, and processing
the event.
25

Diagram Logika
dari Sistem Antrian
(tanpa akumulator statistik)
i=i+1

Mulai
i=0
Jadwalkan kejadian
kedatangan pertama dan
kejadian terminasi simulasi
i=i+1
i=i+1

Perbarui kalender kejadian

Majukan waktu t[i] ke saat


kejadian pertama pada
kalender kejadian

Jadwalkan kejadian
kedatangan untuk pelanggan
berikutnya pada saat t[i] +
IAT

Kedatangan

Tipe
Kejadian?

Kepergian

Terminasi
Ya

Tidak
Server menganggur?

Jadwalkan kejadian kepergian


untuk pelanggan saat ini yang
masuk ke server pada saat
t[i] + ST

Tempatkan pelanggan saat ini


pada posisi pertama dari
antrian

Tempatkan pelanggan saat ini


pada posisi terakhir dari
antrian

Ya
Berhenti

Terdapat pelanggan
dalam antrian?

Perbarui antrian dengan


menghapus pelanggan pada
posisi pertama dan menggeser
pelanggan yang menunggu

Tidak

Ubah status server menjadi


menganggur

Jadwalkan kejadian kepergian


untuk pelanggan yang masuk
ke server pada saat t[i] + ST

Ubah status server menjadi


sibuk

26

Jam simulasi

0.00

22.00

Kelender kejadian

0
Jumlah
pelanggan
dalam
antrian

0
Status ATM

27

Jam simulasi

0.00

2.18

2.18

Kelender kejadian

22.00

Jumlah
pelanggan
dalam
antrian

0
Status ATM

28

Jam simulasi

0.00

Kelender kejadian

0
1
T

2.18

22.00

Jumlah
pelanggan
dalam
antrian

Status ATM

29

Jam simulasi

2.18

5.73

7.91

Kelender kejadian

22.00

Jumlah
pelanggan
dalam
antrian

0
Status ATM

30

Jam simulasi

2.18

Kelender kejadian

7.91

22.00

2.28

1
0

0.10

Jumlah
pelanggan
dalam
antrian

1
Status ATM

31

Jam simulasi

2.18

Kelender kejadian

2.28

7.91

22.00

0
Jumlah
pelanggan
dalam
antrian

1
Status ATM

32

Jam simulasi

2.28

Kelender kejadian

1
0

7.91

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

33

Jam simulasi

2.28

Kelender kejadian

0
2

7.91

22.00

Jumlah
pelanggan
dalam
antrian

0
Status ATM

34

Jam simulasi

7.91

7.09

15.00

Kelender kejadian

22.00

Jumlah
pelanggan
dalam
antrian

0
Status ATM

35

Jam simulasi

7.91

Kelender kejadian

15.00

22.00

12.37

2
0

4.46

Jumlah
pelanggan
dalam
antrian

1
Status ATM

36

Jam simulasi

7.91

Kelender kejadian

12.37

15.00

22.00

2
0
Jumlah
pelanggan
dalam
antrian

1
Status ATM

37

Jam simulasi

12.37

Kelender kejadian

2
0

15.00

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

38

Jam simulasi

12.37

Kelender kejadian

0
3

15.00

22.00

Jumlah
pelanggan
dalam
antrian

0
Status ATM

39

Jam simulasi

15.00

0.17

15.17

Kelender kejadian

22.00

Jumlah
pelanggan
dalam
antrian

0
Status ATM

40

Jam simulasi

15.00

Kelender kejadian

15.17

22.00

18.25

3
0

3.25

Jumlah
pelanggan
dalam
antrian

1
Status ATM

41

Jam simulasi

15.00

Kelender kejadian

15.17

18.25

22.00

0
Jumlah
pelanggan
dalam
antrian

1
Status ATM

42

Jam simulasi

15.17

0.57

15.74

Kelender kejadian

3
0

18.25

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

43

Jam simulasi

Kelender kejadian

15.17

15.74

18.25

22.00

3
1

Jumlah
pelanggan
dalam
antrian

1
Status ATM

44

Jam simulasi

15.74

3.01

18.75

Kelender kejadian

3
1

18.25

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

45

Jam simulasi

Kelender kejadian

15.74

18.25

18.75

22.00

3
2

Jumlah
pelanggan
dalam
antrian

1
Status ATM

46

Jam simulasi

18.25

Kelender kejadian

3
2

18.75

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

47

Jam simulasi

Kelender kejadian

18.25

18.75

22.00

Jumlah
pelanggan
dalam
antrian

20.50

4
1

2.25

1
Status ATM

48

Jam simulasi

Kelender kejadian

18.75

20.50

22.00

18.25

4
1

Jumlah
pelanggan
dalam
antrian

1
Status ATM

49

Jam simulasi

18.75

1.13

19.88

Kelender kejadian

4
1

20.50

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

50

Jam simulasi

Kelender kejadian

19.88

20.50

22.00

18.75

4
2

Jumlah
pelanggan
dalam
antrian

1
Status ATM

51

Jam simulasi

19.88

2.65

22.63

Kelender kejadian

4
2

20.50

22.00

Jumlah
pelanggan
dalam
antrian

1
Status ATM

52

Jam simulasi

Kelender kejadian

19.88

20.50

22.00

22.63

4
3

Jumlah
pelanggan
dalam
antrian

1
Status ATM

53

Jam simulasi

20.50

Kelender kejadian

4
3

22.00

22.63

Jumlah
pelanggan
dalam
antrian

1
Status ATM

54

Jam simulasi

Kelender kejadian

20.50

22.00

22.63

24.62

5
2

Jumlah
pelanggan
dalam
antrian

4.12

1
Status ATM

55

Jam simulasi

Kelender kejadian

22.00

22.63

24.62

20.50

5
2

Jumlah
pelanggan
dalam
antrian

1
Status ATM

56

Jam simulasi

22.00
T

Kelender kejadian

5
2

22.63

24.62

Jumlah
pelanggan
dalam
antrian

1
Status ATM

57

10

11

12

12

P
D

12.37

15.00

15.00

15.17

15.00

15.17

15.74

15.00

4
5

15.17
15.74

18.25

15.17

18.75

15.17

19.88

15.17

20.50

15.74

22.00

End

7.91

0.00

0.00

0.00

0.00

D
E
D
P

0.516

2.18

0.852
0.039

5.73
0.10

2.18
22.00
7.91
2.28

0.00

0.00

3
2

D
P

0.906
0.844

7.09
4.46

15.00
12.37

D
P
D

0.055
0.742
0.172

0.17
3.25
0.57

15.17
18.25
15.74

0.00

0.00

0.00

0.00

0.00

0.00

0.00

4
3
5

0.00

0.57

0.57

0.633

3.01

18.75

15.74

3.08

5.02

5.59

0.609

2.25

20.50

5
6

15.74
18.75

3.08

0.50

6.09

0.313

1.13

19.88

5
6
7
6
7

15.74
18.75
19.88
18.75
19.88

3.08

2.26

8.35

0.586

2.65

22.53

7.84

1.86

10.21

0.820

4.12

24.62

7.84

3.00

13.21

0.00

0.00

1
2
1

0.00

0.00

Jumlah antrian dengan


waktu tertimbang
(kumulatif)

7.91

0.00

Jumlah antrian dengan


waktu tertimbang, (t[i] t[i-1])NQ[i-1]

0.00

Waktu dalam antrian


(Kumulatif)

Waktu dalam antrian, t[i] arrival time

2.28

Jumlah yang diproses


(meninggalkan) antrian

Saat Datang

Urutan No. Pelanggan


yang menunggu

Saat Datang

No. Pelanggan yang


sedang dilayani

Tipe Kejadian

No. Pelanggan

2.18

Saat Kejadiaan

2.18

Variat Random

2.18
22.00
2.28
7.91
22.00
7.91
22.00
12.37
15.00
22.00
15.00
22.00
15.17
18.25
22.00
15.74
18.25
22.00
18.25
18.75
22.00
18.75
20.50
22.00
19.88
20.50
22.00
20.50
22.00
22.53
22.00
22.53
24.62

Bilangan Random

D
E
P
D
E
D
E
P
D
E
D
E
D
P
E
D
P
E
P
D
E
D
P
E
D
P
E
P
T
D
E
D
P

Tipe Kejadian

1
1
2
2
2
3
3
4
3
5
3
3
6
6
4
7
4
4
8
8
5

No. Pelanggan

0.00

Kejadian Berikutnya yang


Terjadwal

Akumulator Statistik

Status ATM

Status Sistem

Jumlah pelanggan dalam


antrian

Pemrosesan
Kejadian

Jam

Saat

Tipe Kejadian

No. Pelanggan

Kalender
Kejadian

3.08

4.76

58

Hasil-Hasil Perhitungan
Statistik rata-rata sederhana (simple average statistic) dihitung
dengan membagi jumlah semua nilai observasi dari variabel
respon dengan jumlah obervasi
n

Simple average

x
i 1

Contoh:
Waktu rata-rata yang dihabis dalam sistem atau lokasi tertentu

Dalam simulasi ATM


Waktu rata-rata pelanggan yang menunggu dalam antrian

59

Rata-rata waktu dalam sistem


5

Average time in queue

x
i 1

5
0 0 0 3.08 4.76

5
1.57 minutes

60

Statistik rata-rata waktu (time average


statistic) melaporkan nilai rata-rata dari
variabel respon yang ditimbang dengan durasi
waktu untuk tiap nilai variabel yang diamati.
n

Time average

T x

i i

i 1

dengan Ti menyatakan durasi waktu observasi


ke-i (faktor penimbang) dan T adalah total
durasi observasi dikumpulkan
61

Rata-rata jumlah pelanggan dalam antrian


12

Average NQ

12

(T x ) (t
i i

i 1

i 1

ti 1 ) NQi 1
T

13.21

0.60 pelanggan
22

62

3.5

Jumlah pelanggan dalam antrian

2.5

1.5

0.5

0
0

10

15

20

Waktu

63

Status ATM

0
0

10

15

20

Waktu

64

Simulasi Sistem Kerusakan Mesin (1)


Sistem terdiri atas 1 mesin.
Terdapat 1 operator perbaikan.
Waktu antar kerusakan mesin
~ Eksponensial(30 menit)

Waktu perbaikan
~ Eksponensial(5 menit)

Simulasikan selama 200 menit pertama.


65

Diagram Logika
(tanpa akumulator statistik)

Mulai
i=0
Inisialisasi saat mulai t[0] =0,
status operator menganggur, Mesin
dalam keadaan working

Jadwalkan Kejadian Kerusakan Mesin


serta Kejadian Terminasi Simulasi

i=i+1

Perbarui Kalender Kejadian

Kerusakan

Jenis
Kejadian?

Working

Terminasi
Ubah status operator
menjadi sibuk

Jadwalkan kejadian
working untuk Mesin
t[i] + WB

Berhenti

Ubah status operator


menjadi menganggur

Jadwalkan kejadian
Kerusakan untuk Mesin
t[i] + WR

66

Simulasi Sistem Kerusakan Mesin (2)


Sistem terdiri atas 2 mesin.
Terdapat 1 operator perbaikan.
Waktu antar kerusakan mesin
Mesin 1: ~ Eksponensial(30 menit)
Mesin 2: ~ Eksponensial(20 menit)

Waktu perbaikan
Mesin 1 & Mesin 2: ~ Eksponensial(5 menit)

Simulasikan selama 200 menit pertama.


67

Mulai
i=0

Diagram Logika

Inisialisasi saat mulai t[0] =0,


status operator menganggur, Mesin 1
dan 2 dalam keadaan working

(tanpa akumulator statistik)

Jadwalkan Kejadian Kerusakan Mesin


1 dan 2, serta Kejadian Terminasi
Simulasi

i=i+1

Perbarui Kalender Kejadian

Kerusakan

Mesin 1

Working

Jenis
Kejadian?

Terminasi

Mesin 2

Mesin 1

Mesin 2

Mesin?

Mesin?
Berhenti

Ya

Tidak

Ya

Tempatkan Mesin 1
pada daftar tunggu

Ubah status operator


menjadi sibuk

Operator
menganggur?

Ubah status operator


menjadi sibuk

Jadwalkan kejadian
working untuk Mesin 1,
t[i] + WB

Operator
menganggur?

Jadwalkan kejadian
working untuk Mesin 2,
t[i] + WB

Tidak

Tempatkan Mesin 2
pada daftar tunggu

Ya

Tidak

Ya

Hapus Mesin 2 pada


daftar tunggu

Ubah status operator


menjadi menganggur

Hapus Mesin 1 pada


daftar tunggu

Ubah status operator


menjadi menganggur

Jadwalkan kejadian
Kerusakan untuk Mesin
1, t[i] + WR

Jadwalkan kejadian
Kerusakan untuk Mesin
1, t[i] + WR

Jadwalkan kejadian
Kerusakan untuk Mesin
2, t[i] + WR

Jadwalkan kejadian
Kerusakan untuk Mesin
2, t[i] + WR

Ada mesin
menunggu?

Jadwalkan kejadian
Working untuk Mesin 2,
t[i] + WB

Ada mesin
menunggu?

Tidak

Jadwalkan kejadian
Working untuk Mesin 1,
t[i] + WB

68

Anda mungkin juga menyukai