Anda di halaman 1dari 34

Materi 4

Pembangkit Bilangan Acak


(Random Number Generation )


Ir. Risma A. Simanjuntak, MT


Teknik Industri
Fakultas Teknologi industri
Institut Sains & Teknologi AKPRIND
Yogyakarta

Kompetensi

Mampu membangkitkan bilangan
random dengan berbagai metode
Pokok Bahasan
Tabel random number

Congruential pseudo random number
Linier Congruental Generator (LCG)
Multiplicate RNG
Mixed Congruential RNG

Metode midsquare

Pengantar
Bilangan acak adalah suatu algoritma yang
digunakan untuk menghasilkan urutan-urutan
atau sequence dari angka-angka sebagai hasil
dari perhitungan , yang diketahui distribusinya
sehingga angka-angka tersebut muncul acak
dan digunakan terus menerus.

Pengertian Bilangan Acak

Sebuah algoritma yang menghasilkan
serangkaian bilangan yang mengikuti distribusi
tertentu dan memiliki sifat random.
Berarti berhubungan dengan statistic ; simulasi
--- statistic
Biasanya bilangan random yang dihasilkan
komputer masih berbentuk bilangan bulat, untuk
mendapatkan bilangan random yang mengikuti
distribusi probabilitas tertentu yang dikehendaki

Bilangan Acak
Digunakan oleh hampir semua model simulasi

Bilangan random fisik

Pseudo-random bilangan random uniform

Simulasi statik atau Monte Carlo
Contoh
Simulasi system/proses pada hakekatnya terdiri
dari komponen-komponen random seperti
waktu antar kedatangan, waktu pelayanan, laju
permintaan yang berarti membutuhkan metoda
untuk memperoleh bilangan-bilangan yang
random.
Pada umumnya distribusi probabilitas untuk
random number adalah Uniform Variate
(distribusi uniform / seragam)
Teknik Membangkitkan Bilangan Random
Tabel random number
Manual (koin, dadu, kartu, rolet)
Electric Random Number
Congruential Pseudo RNG--- yang paling
sering digunakan pada computer.
Linear Congruental Generators (LCG)
/Additive (arithmetic) RNG
Multiplicate RNG
Mixed Congruential RNG

1. Tabel Random Number

140 900 150 296 246 812 725 250 612 999
223 321 465 925 514 009
241
421
375
779 383 888 774 573 075 261 972 773 478

2. Manual Lemparan Koin
Outcome (H : muka ; B belakang)
S={M,B}, P(M)=P(B)=0,5
Algoritma (prosedur):
1. Bangkitkan bilangan random Uniform u
2. Bila 0 O u < 0,5 keluarkan output M
Bila 0,5 O u O 1 kelurkan output B
Atau (untuk u diskrit)
Bila u = 0,1,2,3,4 kelurakan output M
Bila u = 5,6,7,8,9 keluarkan output B

Manual Lemparan Koin (lanjut)
Contoh
Urutan dari u
1 9 2 4 5 0 4 6 8
Outcome
M B M M M M M B B
Manual Lemparan Dadu
Langkah :
a) Seolah-oleh mempunyai kotak yang memuat
100 dadu diberi nomor 0 hingga 99
b) Kocok kotak , ambil sebuah dadu (tiap
dadu/nomor mempunyai peluang 0,01,
misalmya muncul nomor 10
c) Ulangi lagi langkah ke 2, misalnya keluar
angka 25

Manual Lemparan Dadu (lanjut)
Demikan seterusnya , sampai diperoleh
bilangan random yang diinginkan

Misalnya dilakukan sebanyak 20 kali 10,
25, 38, 24, 92, 80, 15, 32, 67, 23, 97, 32,
63, 35, 80, 54, 32, 5, 63, 97

******
3. Metode Midsquare
Mulai dengan integer positip 4 digit (Zo) yang
disebut seed

Kuadratkan Zo diperoleh angka 8 digit Jika
perlu tambahkan nol pada sisi kiri, sehingga
diperoleh angka 8 digit)

Ambil 4 digit ditengah sebagai Z
1



Metode Midsquare (lanjut)
Tempatkan titik desimal disisi kiri dari Z
1

diperoleh bilangan random U (0,1) yang pertama
(U
1
)

Kemudian Z
2
adalah digit tengah Z
1
2

Demikian seterusnya, sampai diperoleh bilangan
random yang diinginkan
Metode Midsquare (lanjut)
Tempatkan titik decimal disisi kiri dari Z
1

diperoleh bilangan random U (0,1) yang
pertama (U
1
)

Kemudian Z
2
adalah digit tengah dari Z
1
2

Demikian seterusnya, samapai diperoleh
bilangan random yang diinginkan
Contoh Midsguare

Seed : 7.182
i Z
i
U
i
Z
i
2

0
1
2
3
4
5
7.182
5.811
7.677
9.363
6.657
3.156
-
0,5811
0,7677
0,9363
0,6657
0,3156
51.581.124
33.767.721
58.936.329
87.665.769
44.315.649
09.960.336
4. Linear Congruental Generators (LCG)
Rumusnya
Zi = (a . Zi-1 + c ) mod.m

Ri = Zi / M
Keterangan :
Zi : angka random yang baru
Zi-1 : angka random number yang lama / yang
semula
c : increment / angka konstan yang bersyarat
m : modulus / angka modulo
a : multiplier / konstanta

Syarat
0 < m ; a < m c < m dan Z0 < m
konstanta a harus lebih besar dari m
Biasanya dinyatakan dengan syarat
m/100 < a < m - m
m/100 + m > a > m
Konstan c harus berangka ganjil apabila m
berpangkat dua, tidak boleh nilai berkelipatan m
Untuk modulo m harus bilangan prime atau
bilangan tidak terbagikan
Untuk pertama Zo harus merupakan angka
integer dan juga ganjil dan cukup besar

Contoh :

Bila digunakan computer dengan 8 bits
Jadi :
Zo : 12357
a : 19
m : 128
c : 237
Random number
Z1 = ( 19 x 12357 + 237 ) mod 128
= 235020 235008
= 12 R1 = 12/ 128 = 0.09375

Lanjutan
Z2 = ( 19 x 12 + 237 ) mod 128
= 465 384
= 81 R2 = 81/ 128 = 0.6328
Z3 = ( 19 x 18 + 237 ) mod 128
= 1776 1664
= 112 R3 = 112/ 128 = 0.875
dan seterusnya

Contoh : Ilustrasi LCG
dimana m kecil
m = 16 , a = 5 , c = 3 , Z0 = 7

Cara :
Z
1
= (5 x 7 +3) mod 16
= 38 mod 16
= 2 sisa 6
R
1
= 6/16 = 0,375
Lanjut
Catatan : Jika dilanjutkan maka diperoleh :
Z
17
= Z
1
= 6 dan
Z
18
= Z
2
= 1 dst

Sehingga dari i = 17 sampai i = 32 akan
diperoleh nilai yang sama untuk Z
i
dan R
i
seperti
halnya i = 1 sampai i = 16
i Z
i
R
i

0 7 -
1 6 0,375
2 1 0,063
3 8 0,500
4 11 0,688
5 10 0,625
6 5 0,313
7 12 0,750
8 15 0,938
9 14 0,875
10 dst
5. Multiplicate RNG --- jika c = 0

Rumusnya

Z
i+1
= ( a . Z ) mod.m

Keterangan :
Zi : angka random number semula
Z
i+1
: angka random yang baru
a > 1 : c = 0 ; m > 1
Syarat lain sama dengan additive RNG

6. Mixed Generator
1). Pemilihan nilai : m (modulo)
m = 2
b

b = jumlah bits (binary digit) sesuai
ketersediaan di computer untuk
penyimpanan data

Pemilihan nilai : m (modulo) merupakan
angka integer yang cukup besar dan
merupakan
satu kata (word) dari yang dipakai pada
computer.
Contoh :

Komputer IBM 360/370 ---- sebuah kata 32 bits
kata ---- berarti angka integer yang terbesar
dimana bit terakhir untuk anda, sehingga b = 31
adalah

m = 2
32-1
1 = 2147488647

Maka nilai m harus lebih satu integer atau
m = 2
32-1
+1 = 2147483648
Komputer IBM 1130/1800 dikenal

16 bits ---- berarti angka integer
yang terbesar dalam satu kata
computer adalah

M = 2
16-1
1 = 32.768
2). Pemilihan konstanta multiplier : a harus tepat

Pemilihan nilai a harus bilangan prima terhadap m, a juga
harus bilangan ganjil (odd number) Pemilihan terbaik
adalah dengan rumus :

a = 2 b/2 3
b = jumlah bits

Untuk IBM 1130/1800 ---- 16 bits

a = 2
16/2
+ 3 = 259
3). Pemilihan untuk Z
0

Pemilihan untuk Z
0
mengharuskan relative
bilangan prima terhadap m
Hal ini dapat diperhatikan dengan mudah
apabila dicari untuk m adalah angka
berpangkat 2 --- angka expoler dari angka 2.
Dengan demikian untuk Z
0
adalah setiap
angka-angka yang ganjil seperti Z
0
= 12357,
dapat diambil sembarang asalkan bilangan
ganjil, dan bilangan cukub besar.
4). Bilangan c
Bilangan c yang dipilih harus bukan
merupakan kelipatan dari m dan harus
bilangan ganjil
Rangkuman

Jika simulasi dilakukan secara manual,
pemilihan bilangan acak dapat dilakukan
dengan memilih angka-angka dari tabel
bilangan acak. Dimana setiap digit atau angka
dalam tabel memiliki kesempatan yang sama
untuk muncul.
Rangkuman (lanjut)
Bilangan acak di bangkitkan untuk masalah-
masalah simulasi dengan berbagai cara. Jika
masalah sangat kompleks dan proses yang
diamati melibatkan ribuan percobaan simulasi,
maka suatu program komputer dapat digunakan
untuk membangkitkan bilangan acak yang
dibutuhkan.

Soal soal
1. Bangkitkan bilangan random 10 kali, 3 digit dengan
menggunakan metode LCG jika diketahui : X
0
= 27, a
= 8, c = 47 dan m =100

1. Bangkitkan bilangan random dengan metode
midsquare seed (Z
0
) = 5625

3. Bangkitkan bilangan random dengan metode
midsquare seed (Z
0
) = 5500

4. Sebutkan pengertian dari RNG