Pembangkitan Data
kamis, tanggal 10 september 2009 adalah tepat 1 hari menjelang 8 tahun tragedi bom WTC. hari dimana 4 pesawat boing 737 dibajak, dan 2 pesawatnya di arahkan ke gedung WTC distrik Manhattan.. tapi, hari itu apa yang ku rasakan? datar… kejadian itu tak membekas sekalipun di ingatanku. kehidupanku hanya berkisar pada kuliah, BEM, mroyek… yaaah,,, wateper lah… tapi, hari-hari harus ku lalui dengan indah meskipun hasrat belajar kiat hari kian terkikis karena homesick..
seperti biasa, dimana ada simulasi, di situ pasti ada blog.. blog yag menjadi tugas rutin ang diberikan oleh pak Dwi dan diperiksa oleh dua asdosnya.. mas senja dan mbak lutfi…
mas senja… dilihat dari namanya—mungkin dilahirkan ketika senja tiba atau apalah,, dan penulis sendiri juga kurang mengetahui hal ini.. dan mbak lutfi.. awal perkenalan penulis dengan mbak lutfi ketika ada LK I salah satu omek di ITS.. cukup menegangkan sih, karena perempuan satu ini memiliki pandangan mata yang cukup tajam dan tipikal yang orang yang bicaranya to the poin.. perkenalan dengan asdos bisa dikupkan sampai disini, karena tujuan penulisan utama blog ini adalah meng-update blog dengan tugas mingguan..
simulasi kamis ini diisi dengan menjelaskan tentang apa itu Pembagian Bilangan Acak–Pseudo Random Generation. Pseudo-atau semu, dilihat dari artinya menurut penulis adalah merupakan benda yang sebenarnya tak ada tapi diumpamakan ada. enth kenapa, tapi pastinya setiap orang punya persepsi sendiri2. penerapannya langsung
misal : a=2, m=5, dan x0 = 3, maka
x1 = 2 (3) modulo 5=1 x2 = 2 (1) modulo 5=2
x3 = 2 (2) modulo 5=4 x4 = 2 (4) m0dulo 5=3
jika bilangan komputer hanya mengenal biner, 0, 1, dan 2 maka
1=1 11=3 111=7 ……..1 pangkat 7 = 2 pangkat 6 -1 adalah bilangan trebesar yang dapat diproses komputer. diluar itu, adalah komputer diluar kemampuannya bekerja.
tentunya komputer ini adalah mesin yang sangat pintar dalam membangkitkan data distribusi statistika.. dalam kesempatan kali ini, pek dwi memberi tugas membangkitkan data berdistribusi uniform (a, b), exponendial (λ), norma (μ,σ²), lognormal, wellbul, t-student, dan Fisher. untuk memastikan dapat dicek dengan cara membuat plot ataupun melakukan pengujian. berikut jika data dibangkitkan dengan distribusi yang telah disebutkan di atas (menggunakan pascal-delphi).
Interface
Uses util, tipe;
{Type
tipe1 = array[1..5] of double;}
Var
tipe11 : tipe1;
{ 1 } Function Uniform (a,b : double) : double;
{ 2 } Function Eksponensial (beta : double) : double;
{ 3 } Function Weibull (alfa,beta: double) : double;
{ 4a} Procedure Normal (mean,variance : double ; Var z1,z2 : double);
{ 4b} procedure lognormal (mean,varr : double; Var zln1,zln2 : double);
{ 5 } Function Acak_Diskrit_Sebarang (n : longint ; x,probd : tipe1) : double;
{6 } Function tdistribution(m:integer):double;
Implementation
Function Uniform (a,b : double) : double;
Var u : double;
Begin
u := random;
Uniform := (b-a) * u + a;
End;
Function Eksponensial (beta : double) : double;
Var u : double;
Begin
u := random;
Eksponensial := -beta * ln(u);
End;
Function Weibull (alfa,beta: double) : double;
Var u,z : double;
Begin
u := random;
z := -ln(u);
Weibull := beta * exp (ln(z)/alfa);
End;
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;
end
Until w <= 1;
End;
Function Acak_Diskrit_Sebarang (n : longint ; x,probd : tipe1) : double;
Var u : double;
i : longint;
Begin
u := random;
for i:=1 to n-1 do
if u <= probd[i] then
begin
Acak_Diskrit_Sebarang := x[i];
exit
end;
Acak_Diskrit_Sebarang := x[i];
End;
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;
function tdistribution(m:integer):double;
{ created :
based on Principles of Random Variate Generation
by John Dagpunar, 1988
published by Claredon Press - OXFORD
please check if any other theory of t-distribution }
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;
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.
running program di atas dibuat di program delphi dengan menggunakan algoritma pascal. penulis menyadari masih terdapat banyal kesalahan dan kekurangan pada penulisan blog ini. blog ini merupakan up date tugas simulasi mingguan. penulis memohon maaf apabila terdapat pembaca diluar ITS yang membaca latikel ini.
terima kasih…
ulai membuat program Klik menubar File –> NewProject atau tekan alt + shift + n bersamaan . 

