Anda di halaman 1dari 27

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 AcakPseudorandom 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:

I=1 II = 3 Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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 1-U = e-x U = e-x Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

-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;

2) Fungsi Distribusi Eksponensial

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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; z2 := sqrt (variance) * x2 + mean; Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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;

6) Fungsi Distribusi t-student Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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; mm:=m; Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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.

2.1.2 Membangkitkan Variabel Random Berdistribusi Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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

2.1.3 Pseudorandom Number Generation

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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 distribus binomial kita bisa memperoleh nilai dari phi. Algoritma untuk program ini hdala 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

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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 pernedaanya cukup jauh, untuk itu dibuat jyga program dimana pengambilan sample dilakukan secara berulang-ulang.

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

Berikut ini adalah syntag program pascal

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

hasil yang diperoleh

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.

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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 output yang

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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 dilakukan

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

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 :

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

o Umum : fortran, pascal, basic, dll o Khusus : GPSS, SIMAN, DINAMO, dll Program khusus simulasi : ProModel, Simul8, Arena, dsb

6. Uji validasi dahn verifikasi Uji validasi Uji verifikasi : apakah hasil simulasi sesuai dengan system nyata ? : 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. 2. uniform. Kualitas simulasi dipengaruhi oleh kualitas bilangan random yang dihasilkan dari Pembangkitan Bilangan Random (PBR).Pembangkitan bilangan random terdistribusi uniform komputer yang sering digunakan : Pembangkitan bilangan random (PBR) terdistribusi kontinu. Pembangkitan bilangan random (PBR) terdistribusu tidak

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

1)

Mixed linier Congruential Generator (LCG) C0 Zi = ( a.Zi-1 + C )mod m Ui = Zi m

2)

Prime Modulus Multiplicative Linier Congrential Generator (PMMLCG) C=0 Zi = ( a.Zi-1 )mod m Ui = Zi m

Dimana : a = faktor pengali c = faktor penjumlah m = modulus Z0 = nilai awal a, m, Z0 > 0

yang mana :

Untuk menghasilkan bilangan random yang baik diperlukan syarat-syarat sebagai berikut : 1) 2) membagi (m-1) 3) Jika 4 habis membagi m, maka 4 juga habis membagi (a-1) m dan c habis dibagi bilangan positif 1 Jika q bilangan prima habis membagi m, q juga habis

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

Bilangan random yang baik adalah : 1)Berasal dari satu sumber distribusi uniform U (0,1) 2)Antara bilangan random tidak berkorelasi (uji independensi) 3)Periode panjang 4) Spasi antar pengenal diabaikan. Jenis / Tipe Data : 3) 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. 4) 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. 5) 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 Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

Pascal mempunyai dua statement untuk membaca data yaitu statement Read dan Readln. Statement Read tidak memperlihatkan batas baris, rinci data (yang 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 : Statement For Statement For digunakan untuk melakukan operasi Loop. Dalam statement ini cacah pengerjaan sejumlah statement dapat diketahui dengan pasti. 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. Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

1.

2.

Pengajuan waktu dalam simulasi : 1. Fixed Time Increament a. b. Waktu (clock) diajukan pada interval waktu tertentu Perubahan system dianggap kontinu

Kerangka program simulasi : Program utama memuat program-sub program : TIME tawal takhir incrt : Real (waktu simulasi) : Real (waktu awal) : Real (waktu akhir) : (penambahan interval waktu) : procedure (subprogram pembacaan parameter) : procedure (subprogram pemberian nilai-nilai awal) : procedure (subprogram perhitungan state)

Read_Parameter Init_State Next_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 Init : procedure (subprogram pembacaan parameter) : procedure (subprogram pemberian nilai-nilai awal) Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

Timing event

: procedure (subprogram pengajuan clock), bias terdiri dari beberapa event

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. C0 Zi = (a.Zi-1 + C) mod m Ui = Zi / m 2. C=0 Zi = (a.Zi 1) mod m Ui = Zi / m Dimana : a = factor pengali c = factor penjumlah m = modulus Zo = nilai awal Prime Modulus Multiplicate Linier Congruential Generator (PMMLCG) Mixed Linier Congruential Generator (LCG)

Modul II Dinar Resita Cesilvrenia ( 0932010027 ) Senin I / Meja C

yang mana : a, m, Zo > 0 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