Algoritma Monte Carlo adalah salah satu algoritma yang digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai pengambilan produk investasi dengan nilai pengembalian paling besar.
Diasumsikan ada 2 Produk Investasi yang dapat dipilih yaitu A dan B
Masing-masing produk memiliki 3 macam pengembalian nilai investasi, yaitu investasi rendah, sedang, dan tinggi
Nilai pengembalian investasi tiap produk juga berbeda-beda, dan probabilitas antar macamnya juga berbeda-beda
Maka tentukan produk Investasi yang dapat mengembalikan nilai maksimal
Diasumsikan dalam kasus ini, data awalnya adalah sebagai berikut
Nama | ||
---|---|---|
Produk A | probabilitas nilai rendah 0.4 | pengembalian investasi 1.1 kali modal |
Produk A | probabilitas nilai sedang 0.4 | pengembalian investasi 1.15 kali modal |
Produk A | probabilitas nilai tinggi 0.2 | pengembalian investasi 1.3 kali modal |
Produk B | probabilitas nilai rendah 0.2 | pengembalian investasi 1.05 kali modal |
Produk B | probabilitas nilai sedang 0.5 | pengembalian investasi 1.2 kali modal |
Produk B | probabilitas nilai tinggi 0.3 | pengembalian investasi 1.25 kali modal |
Langkah pertama adalah memasukkan data-data yang digunakan.
Contoh data adalah sebagai berikut
Dim data(5, 2) As Double data(0, 0) = 0 data(0, 1) = 39 data(0, 2) = 1.1 data(1, 0) = 40 data(1, 1) = 79 data(1, 2) = 1.15 data(2, 0) = 80 data(2, 1) = 99 data(2, 2) = 1.3 data(3, 0) = 0 data(3, 1) = 19 data(3, 2) = 1.05 data(4, 0) = 20 data(4, 1) = 69 data(4, 2) = 1.2 data(5, 0) = 70 data(5, 1) = 99 data(5, 2) = 1.25
Langkah-langkah penggunaan algoritma ini adalah
1. Tentukan modal investasi yang akan digunakan
Console.WriteLine("Masukkan Modal: ") Dim modal As Double = Console.ReadLine
2. Tentukan banyak nilai data acak yang dihasilkan
Semakin banyak nilai acak yang dihasilkan, semakin baik hasil akhirnya.
Diasumsikan dalam kasus ini, banyak data nilai acak adalah 50
Const n As Integer = 50
3 Cari nilai acak antara 0-99 sebanyak n
Kemudian cari nilai pengembalian investasinya berdasarkan kriteria probabilitas nilainya
Dim hasil(n - 1, 1) As Double Dim input As Integer = 0 Dim rnd As New Random Dim iTotalA As Double = 0, itotalB As Double = 0 For i As Integer = 0 To n - 1 'Produk A input = rnd.Next(0, 99) If input >= data(0, 0) And input <= data(0, 1) Then hasil(i, 0) = modal * data(0, 2) If input >= data(1, 0) And input <= data(1, 1) Then hasil(i, 0) = modal * data(1, 2) If input >= data(2, 0) And input <= data(2, 1) Then hasil(i, 0) = modal * data(2, 2) iTotalA += hasil(i, 0) 'Produk B input = rnd.Next(0, 99) If input >= data(3, 0) And input <= data(3, 1) Then hasil(i, 1) = modal * data(3, 2) If input >= data(4, 0) And input <= data(4, 1) Then hasil(i, 1) = modal * data(4, 2) If input >= data(5, 0) And input <= data(5, 1) Then hasil(i, 1) = modal * data(5, 2) itotalB += hasil(i, 1) Next
4. Cari nilai rata-rata antara 2 produk tersebut, kemudian bandingkan nilainya
Hasil akhir adalah produk yang nilai rata-ratanya lebih besar
Hasil akhir adalah: (klik untuk perbesar gambar)
Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:
[sdm_download id=”311″ fancy=”0″]
Jika membutuhkan jasa kami dalam pembuatan program, keterangan selanjutnya dapat dilihat di Fasilitas dan Harga
Jika ada yang kurang paham dengan langkah-langkah algoritma diatas, silahkan berikan komentar Anda.
Selamat mencoba.
Leave a Reply