pembangkit variabel random
TRANSCRIPT
BAB II
LANDASAN TEORI
2.1 Definisi Program Yang Digunakan
Dalam mempelajari simulasi, sesuatu yang dibuthkan adalah kemampuan
dalam membangkitkan bilangan random, dimana apabila merandom sebuah data,
maka yang keluar adalah data berdistribusi uniform (0,1). Dalam pembahasan di
bawah ini, akan dijelaskan mengenai bagaimana membangkitkan data variable
random.
Pembangkitan Bilangan Acak- Pseudorandom Number Generation
Pseudo= semu seolah-olah apa yang dirandomkan berdistribusi uniform (0,1)
Satu hal yang paling sering digunakan dalam pseudorandom generation yaitu dimulai
dengan X0, sehingga nantinya akan didapatkan Xn, dimana Xn=aXn-1 modulo m
Misalnya: a=2, m=5 , X0 = 3
X1= 2(1) modulo 5 =1 Xn=aXn-1 modulo m
X2= 2(3) modulo 5 =2 u = Xn/m ~U (0,1)
X3= 2(2) modulo 5 =4 X~U (a,b)
X4= 2(4) modulo 5 =3
Note: modulo adalah sisa hasil bagi suatu bilangan dengan suatu nilai (dalam
kasus ini menggunakan nilai m)
Misalkan ada suatu digit angka sebagai berikut:
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
I = 1
II = 3
III = 7
.
.
.
III … I = …
untuk mengetahui bilangan dengan 32 digit, maka dapat diketahui dengan:
2k-1 dengan k=1,2,..
Sehingga didapatkan III … I(hingga 32 ) =232-1=4294967295
Contoh pembangkitan data variable Random:
1. Distribusi Uniform
Secara random didapatkan U~U (0,1). Apabila diberi batasan (a,b), maka
menghasilkan pembangkit variabel random sebagai berikut:
X = U(b-a)+a dengan a=batas atas dan b= batas bawah
2. Distribusi Exponensial
Dapat diketahui bahwa,
f(x)= (1/β)e-x/ β
F(x)= 1- e-x/ β, dengan β=1, maka menjadi F(x)= 1- e-x
Apabila U adalah suatu bilangan random dari data berdistribusi uniform(0,1),
maka pembangkit variabel randomnya adalah sebagai berikut:
U = 1-e-x
U-1 =- e-x
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
1-U = e-x
U = e-x
-x = ln U
x =- ln U
2.1.1 Fungsi Pembangkit Variabel Random berbagai Distribusi dengan Pascal
Berikut Daftar Distribusi yang akan diberikan fungsi pembangkit variabel
randomnya :
1. Distribusi uniform
2. Distribusi Eksponensial
3. Distribusi Normal
4. Distribusi Lognormal
5. Distribuso Weibull
6. Distribusi t-student
7. Distribusi fisher
1) Fungsi Distribusi Uniform
Function Uniform (a,b : double) : double;
Var u : double;
Begin
u := random;
Uniform := (b-a) * u + a;
End;
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2) Fungsi Distribusi Eksponensial
Function Eksponensial (beta : double) : double;
Var u : double;
Begin
u := random;
Eksponensial := -beta * ln(u);
End;
3) Fungsi Distribusi Normal
Procedure Normal (mean,variance : double ; Var z1,z2 : double);
Var u1,u2,v1,v2,w,y,x1,x2 : double;
Begin
Repeat
u1 := random;
u2 := random;
v1 := 2 * u1 – 1;
v2 := 2 * u2 – 1;
w := sqr(v1) + sqr(v2);
if w <= 1 then
begin
y := sqrt ((-2*ln(w))/w);
x1 := v1 * y;
x2 := v2 * y;
z1 := sqrt (variance) * x1 + mean;
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
z2 := sqrt (variance) * x2 + mean;
end
Until w <= 1;
End;
4) Procedure Distribusi Lognormal
procedure lognormal (mean,varr : double;
Var zln1,zln2 : double);
Var y1, y2 : double;
begin
Normal (mean,varr,y1,y2);
zln1 := exp(y1);
zln2 := exp(y2);
end;
5) Fungsi Distribusi Weibull
Function Weibull (alfa,beta: double) : double;
Var u,z : double;
Begin
u := random;
z := -ln(u);
Weibull := beta * exp (ln(z)/alfa);
End;
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
6) Fungsi Distribusi t-student
function tdistribution(m:integer):double;
Label r2;
Var v,x,r,s,c,a,f,g,mm : real;
begin
mm:=0;
if m < 1 then
begin
writeln('impermissible degrees of freedom.');
halt;
end;
if (m mm) then
begin
s:=m;
c:=-0.25*(s+1);
a:=4/power((1+1/s),c);
f:=16/a;
if m>1 then
begin
g:=s-1;
g:=power(((s+1)/g),c)*sqrt((s+s)/g);
end else
g := 1;
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
mm:=m;
end;
r2:repeat
r:=random;
until r > 0.0;
x:=(2*random-1)*g/r;
v:=x*x;
if (v>(5-a*r)) then
begin
if ((m>=3) and (r*(v+3)>f)) then goto r2;
if (r>power((1+v/s),c)) then goto r2;
end;
tdistribution :=x;
end;
begin
tipe11[1]:=0.2;
tipe11[1]:=0.3;
tipe11[1]:=0.5;
tipe11[1]:=0.8;
tipe11[1]:=1.0;
end.
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2.1.2 Membangkitkan Variabel Random Berdistribusi
Ada lima metode pembangkitan variabel random yaitu Transformasi Invers,
Metode Konvolusi, Metode Komposisi, Metode Acceptance-Rejection, dan Adaptive
Acceptance-Rejection. Unsur dasar yang dibutuhkan tiap metode pembangkitan
tersebut adalah bilangan random yang memenuhi sifat IIDU~(0,1). Pentingnya
distribusi U~(0,1) ini berasal dari kenyataan bahwa variabel-variabel random dari
semua distribusi (weibull, exponensial, dll) dan realisasi bermacam-macam proses
random bisa di dapatkan dengan mentrasformasikan, mengkonvolusikan dan
mengkomposisikan variabel random IIDU~(0,1) menjadi variabel distribusi lain yang
diinginkan / Transformasi Invers.
Metode transformasi invers adalah metode pembangkit variabel random
paling sederhana. Namun, hanya berlaku untuk variabel random yang mempunyai
bentuk distribusi kumulatif (CDF).
Contoh :
Jika X~Eksponensial (λ)maka tentukan variavel random pembangkit variabel
randomnya dengan menggunakan metode transformasi invers.
Jawab
Untuk suatu variabel random yang berdistribusi exponensial, maka
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
Distribusi ini mempunyai CDF close form, yaitu
Sehingga pembangkitan variabel randomnya adalah
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2.1.3 Pseudorandom Number Generation
Pseudrom number disebut juga dengan random semu. Disebut dengan random
semu dikarenakan walaupun data sudah dirandom akan tetapi terdapat nilai yang
berulang secara teratur.
Contoh :
a = 2, m = 5, xo = 3
x1 = 2(3) modulo 5 = 1
x2 = 2(1) modulo 5 = 2
x3 = 2(2) modulo 5 = 4
x4 = 2(4) modulo 5 = 4
atau secara rumus dapat dirumuskan xn = axn-1. Persamaan ini digunakan untuk
menduga variabel random dari distribusi uniform (0,1)
2.1.4 Taksiran Varian
Berikut ini adalah salah satu contoh untuk mengetahui apakah varian suatu
sampel bias terhadap populasinya.
Algoritma untuk melakukanya adalah
1. mulai
2. Bangkitkan data X~N(60,1) sebanyak 100 sebagai populasi
3. mengambil sampel dengan n=10 sebanyak 1000 kali.
4. untuk masing-masing sampel hitung
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
5. Hitung bias S1 dan S2 dan bandingkan
6. selesai
sebagai catatan S1 merupakan varian populasi dan S2 merupakan varian sampel.
2.1.5 Mencari Phi Menggunakan Pascal
Kita juga dapat menggunakan persamaan lingkaran X2+Y2=1 untuk mencari
luas lingkaran. Dimana titik x ~ U(0,1) dan y ~ U(0,1). Sehingga dengan
membangkitkan data untuk distribuís binomial kita bisa memperoleh nilai dari phi.
Algoritma untuk program ini hádala
1. mulai
2. i = 0
3. i = i+1
4. bangkitkan 10000 titik
x ~ U(0,1)
y ~ U(0,1)
5. phi= 4* m/n
6. jika i < 1000 pergi ke langkah 3
7. phi=∑ I / 1000
8. tulis
9. Selesai
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
Dengan algoritma d atas dapat dibuat syntag sebagai berikut
untuk runing 2 kali diperoleh sebagai berikut
Program pertama ini hanya dilakukan pengambilan sample (random) satu kali
saja. Untuk setiap running program dalam waktu yang berbeda diperoleh hasil yang
berbeda pula. Karena dilakukan hanya satu kali pengambilan sample sehingga
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
pernedaanya cukup jauh, untuk itu dibuat jyga program dimana pengambilan sample
dilakukan secara berulang-ulang.
Berikut ini adalah syntag program pascal
hasil yang diperoleh
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2.1.6 Sampel
Sebagai seorang statistikawan kita bekerja tidak langsung pada populasi, akan
tetapi pada sampel. Dari populasi kita akan mendapatkan suatu parameter dengan
mengambil sampel dari populasi kita dapat menduga parameter dengan mengunakan
statistik.
Dapat di gambarkan sebagai berikut
Karena statistik digunakan untuk mengestimasi parameter maka harus memenuhu
kriteria
a. Tak bias
b. Efisien
c. Konsisten
d. Uniformly Minimum Variance Unbiased Estimator (UMVUE)
e. Kecukupan
Tak Bias
Suatu estimator dikatakan tak bias jika E(θˆ)= θ
Contoh:
Suatu populasi bernilai 10,20 dan 30 mempunyai μ = 20
Maka dapat dibuat suatu sample sebagai berikut
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
E(x(bar)) = (15+15+20+20+25+25)/6 = 20
Karena nilai E(x(bar)) = μ maka estimator/penduga rata-rata sampel yang digunakan
tidak bias.
2.1.7 Contoh Simulasi Sederhana (Mencari nilai phi)
Pada umumnya nilai phi diberikan dengan nilai 22/7 atau 3,14. dengan
menggunakan simulasi matematis untuk mencari nilai dari phi. Kita mensimulasikan
dengan mengunakan lingkaran dan bujursangkar, kita membuat titik dimana
dibedakan titik tersebut terdapat didalam lingkaran atau diluar lingkaran tetapi masih
di dalam bujursangkar.
Sehingga perbandingan matematisnya adalah
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2.2 Teori Pogram Yang Dibuat
Simulasi adalah proses merancang model dari system yang sebenarnya,
mengadakan percobaan-percobaan terhadap model tersebut dan mengevaluasinya.
Jadi simulasi merupakan metode penelitian yang eksperimental. Beberapa tujuan
simulasi adalah :
a. Untuk memahami perilaku system nyata.
b. Untuk memprediksi system yang akan datang.
Pemecahan masalah dengan model simulasi biasanya dilakukan dengan
memakai computer, sebab banyak hal atau perhitungan yang terlalu rumit untuik
dihitung dengan tangan. Namun untuk masalah yang sangat sederhana bias
diselesaikan tanpa computer.
Model – model simulasi dapat dikelompokkan ke dalam beberapa golongan,
antara lain adalah :
1. Berdasarkan keteraturan hubungan antara input dan output :
a. Model Stochastik
Di dalam proses stochastic sifat-sifat output dari proses ditentukan
berdasarkan dan merupakan hasil dari konsep random (acak). Meskipun
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
output yang diperoleh dapatdinyatakan dengan rata-rata, kadangkadang
ditunjukkan pula pola penyimpangannya.
b. Model Deterministik
Pada model ini tidak diperhatikan unsure random, sehingga pemecahan
masalahnya lebih sederhana.
2. Berdasarkan perubahan state terhadap waktu :
a) Model Statik
Model yang tidak memperhatikan perubahan nilai dari variable yang ada yang
terjadi pada waktu yang berbeda.
b) Model Dinamik
Model yang memperhatikan perubahan nilai dari variable yang ada yang
terjadi pada waktu yang berbeda. Model ini selalu mjengikuti perkembangan
jaman.
3. Berdasarkan sifat perubahan “state” dari system :
a) Model Kontinu
b) Model Diskret
4. Berdasarkan penyajian :
a) Model Matematik
b) Model Ikonik
c) Model Analog
5. Model Heuristik
Model heuristiuk adalah model yang dilakukan dengan cara coba-coba, jika
dilandasi dengan suatu teori masih bersifat ringan, langkah perubahannya
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
dilakukan berulang-ulang, dan pemilihan langkahnya bebas, sampai diperoleh
hasil yang lebih baik, tetapi belum tentu optimal.
Langkah – langkah dalam simulasi :
1. Formulasi Masalah
Masalah : gabungan atara yang seharusnya dan yang terjadi (kenyataan)
Perumusan masalah : padat, jelas dan memungkinkan pengumpulan data
2. Pendefinisian sisitem
Tujuan studi
Komponen – komponen penting (entity) dan atributnya
Kejadian – kejadian, aktivitas dan keadaan system
Batasan system
Performansi system
3. Formulasi model
Merumuskan hubungan antara komponen dan atribut
Diagram-diagram alir
Persamaan-persamaan matematik
4. Penyiapan data
Data-data empiris dan kritis, data-data kualitatif dan kuantitatif
5. Penterjemahan model
Mentejemahkan model ke program simulasi computer
Bahasa computer :
o Umum : fortran, pascal, basic, dll
o Khusus : GPSS, SIMAN, DINAMO, dll
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
Program khusus simulasi : ProModel, Simul8, Arena, dsb
6. Uji validasi dahn verifikasi
Uji validasi : apakah hasil simulasi sesuai dengan system nyata ?
Uji verifikasi : apakah penterjemahan model sudah benar ?
7. Eksperimen
Mengadakan perlakuan-perlakuan (dengan mengubah nilai-nilai variable
bebas) dan melihat pengaruhnya pada output simulasi.
Analisis sensitivitas
8. Implementasi
Aplikasi model pada beberapa kasus tertentu
9. Dokumentasi
Penyimpanan program hasil simulasi
Model Simulasi yang berupa Pembangkitan Bilangan Random (PBR) terbagi
menjadi dua, yaitu :
1. Pembangkitan bilangan random (PBR) terdistribusi kontinu.
2. Pembangkitan bilangan random (PBR) terdistribusu tidak
uniform.
Kualitas simulasi dipengaruhi oleh kualitas bilangan random yang dihasilkan
dari Pembangkitan Bilangan Random (PBR).Pembangkitan bilangan random
terdistribusi uniform komputer yang sering digunakan :
1) Mixed linier Congruential Generator (LCG)
C ≠ 0
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2) Prime Modulus Multiplicative Linier Congrential Generator
(PMMLCG)
C = 0
Dimana :
a = faktor pengali
c = faktor penjumlah
m = modulus
= nilai awal
yang mana : a, m, > 0
Untuk menghasilkan bilangan random yang baik diperlukan syarat-syarat
sebagai berikut :
1) m dan c habis dibagi bilangan positif 1
2) Jika q bilangan prima habis membagi m, q juga habis
membagi (m-1)
3) Jika 4 habis membagi m, maka 4 juga habis membagi (a-1)
Bilangan random yang baik adalah :
1) Berasal dari satu sumber distribusi uniform U (0,1)
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
2) Antara bilangan random tidak berkorelasi (uji independensi)
3) Periode panjang
4) Spasi antar pengenal diabaikan.
Jenis / Tipe Data :
1) Tipe Integer
Tipe Integer adalah terdiri dari bilangan dan tidak mempunyai titik desimal.
Tanda plus / minus dapat mendahului bilangan tersebut. Data tipe ini digunakan
untuk pencacah.
2) Tipe Real
Tipe Real adalah bilangan yang berisi paling sedikit satu digit titik desimal
sebelum atau sesudah titik desimal. Tidak boleh ada koma dan nilai dapat
positif atau negatif.
3) Tipe Char
Kata Char (Karakter) digunakan untuk mendefinisikan tipe data yang nilainya
berupa himpunan karakter yang dikenal komputer. Dalam pemrograman nilai
rinci data tipe Char ditulis diantara tanda petik.
4) Tipe Boolean
Tipe data Boolean memiliki dua nilai saja yaitu True / False. Nilai Boolean
sangat penting terutama untuk pengambilan keputusan dalam suatu program.
Statement Baca dan Tulis :
1. Statement Baca
Pascal mempunyai dua statement untuk membaca data yaitu statement Read dan
Readln. Statement Read tidak memperlihatkan batas baris, rinci data (yang
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
tersedia) akan selalu dibaca, tidak tergantung apakah mereka ada dibaris yang
sama atau tidak. Statement Readln memulai pembacaan data pada posisi baris
saat itu dan pergi ke awal baris baru setelah pembacaan selesai.
2. Statement Tulis
Pascal mempunyai dua statement keluaran yaitu Write dan Writeln. Untuk
kedua statement lebar baris dalam suatu baris yang bisa digunakan untuk
mencetak keluaran bervariasi sesuai dengan piranti keluaran yang digunakan.
Statement Write digunakan untuk mencetak pada baris yang sama dari beberapa
argumen. Sedangkan Writeln yang tidak diikuti argumen tidak akan mencetak
nilai argumen tersebut dan berpindah ke baris berikutnya.
Perintah Pengulangan :
1. Statement For
Statement For digunakan untuk melakukan operasi Loop. Dalam statement ini
cacah pengerjaan sejumlah statement dapat diketahui dengan pasti.
2. Statement While
Statement While digunakan untuk proses berulang dimana salah satu atau lebih
statement akan dieksekusi berulang kali sampai kondisi yang dinyatakan dalam
Statement While tidak dipenuhi.
2. Statement Repeat
Cara kerja Statement Repeat adalah kebalikan dari While. Perintah Repeat dapat
digunakan untuk mengulang sekelompok perintah dalam suatu program.
Pengajuan waktu dalam simulasi :
1. Fixed Time Increament
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
a. Waktu (clock) diajukan pada interval waktu tertentu
b. Perubahan system dianggap kontinu
Kerangka program simulasi :
Program utama memuat program-sub program :
TIME : Real (waktu simulasi)
tawal : Real (waktu awal)
takhir : Real (waktu akhir)
incrt : (penambahan interval waktu)
Read_Parameter : procedure (subprogram pembacaan parameter)
Init_State : procedure (subprogram pemberian nilai-nilai awal)
Next_State : procedure (subprogram perhitungan state)
Tulis_State : procedure (subprogram penulisan state)
Report : procedure (subprogram penulisan resume dan hasil
simulasi)
2. Event Oriented Simulation
c. Pengajuan waktu (clock) simulasi berdasarkan perubahan state system
akibat adanya event
Kerangka program simulasi :
Main program (program utama) memuat subprogram-subprogram :
Read param : procedure (subprogram pembacaan parameter)
Init : procedure (subprogram pemberian nilai-nilai awal)
Timing event : procedure (subprogram pengajuan clock), bias terdiri dari
beberapa event
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
Report : procedure (subprogram pembacaan hasil akhir simulasi)
Model Simulasi yang berupa Pembangkitan Bilangan Random (PBR) terbagi
menjadi dua, yaitu :
Pembangkitan bilangan random (PBR) terdistribusi kontinu.
Pembangkitan bilangan random (PBR) terdistribusi tidak uniform.
Kualitas simulasi dipengaruhi oleh kualitas bilangan random yang dihasilkan
dari Pembangkitan Bilangan Random. Pembangkitan Bilangan Random terdistribusi
Uniform Komputer yang sering digunakan :
1. Mixed Linier Congruential Generator (LCG)
C ≠ 0
Zi = (a.Zi-1 + C) mod m
Ui = Zi / m
2. Prime Modulus Multiplicate Linier Congruential Generator
(PMMLCG)
C = 0
Zi = (a.Zi – 1) mod m
Ui = Zi / m
Dimana : a = factor pengali
c = factor penjumlah
m = modulus
Zo = nilai awal
yang mana : a, m, Zo > 0
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C
Untuk menghasilkan bilangan random yang baik diperlukan syarat – syarat sebagai
berikut :
1. m dan c habis dibagi bilangan positif 1
2. jika q bilangah prima habis dibagi m, q juga habis membagi (m – 1)
3. jika 4 habis membagi m, maka 4 juga habis membagi (a – 1)
Bilangan random yang baik :
1. berasal dari suatu submer distribusi uniform U(0,1)
2. antar bilangan random tidak berkorelasi (uji independensi)
3. periode panjang
Program-program simulasi yang dibuat harus berdasarkan kerangka dan
penggunaan pokok permasalahan yang ada. Jadi dalam penentuan program harus
menemukan permasalahan apa yang akan diselesaikan dan hasi apa yang dibutuhkan
dalam pengolahan insert data yang diinginkan oleh pengolah dan penterjemah model.
Program TPW. 1.5 ini digunakan untuk menyelesaikan permasalahan simulasi
yang berkaitan dengan pembuatan program yang akan mencari solusi permasalah
kaitannya dengan bilangan random dengan bentuk data kuantitatif. Data-data yang
dikhususkan dengan melalui insert data, berupa integer maupun bilangan real.
Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C