Algoritma SAW (Simple Additive Weighting) adalah salah satu algoritma yang digunakan untuk pengambilan keputusan. Contoh yang dibahas kali ini adalah mengenai pemilihan sepeda motor dengan kriteria tertentu.
Algoritma ini juga memiliki nama lain yaitu Algoritma MFEP (Multi Factor Evaluation Process). Setelah saya mempelajari algoritma tersebut, cara perhitungan yang dilakukan ternyata sama persis dengan Algoritma ini.
Diasumsikan ada 4 buah motor yang dapat dipilih yaitu Motor A,B,C,D
Masing-masing motor memiliki kriteria, yaitu harga, jarak tempuh per liter, cc, nilai model
Sehingga dalam kasus ini, diasumsikan data awalnya adalah sebagai berikut:
Motor | Harga | Jarak tempuh per liter | cc | nilai model (1-10) |
---|---|---|---|---|
Motor A | 10.000.000 | 35 | 110 | 7 |
Motor B | 12.000.000 | 45 | 125 | 6 |
Motor C | 15.000.000 | 40 | 150 | 8 |
Motor D | 14.000.000 | 37.5 | 125 | 7.5 |
Langkah pertama adalah memasukkan data-data yang digunakan.
Contoh data awal adalah sebagai berikut:
Dim data(3, 3) As Double data(0, 0) = 10000000 data(0, 1) = 35 data(0, 2) = 110 data(0, 3) = 7 data(1, 0) = 12000000 data(1, 1) = 45 data(1, 2) = 125 data(1, 3) = 6 data(2, 0) = 15000000 data(2, 1) = 40 data(2, 2) = 150 data(2, 3) = 8 data(3, 0) = 14000000 data(3, 1) = 37.5 data(3, 2) = 125 data(3, 3) = 7.5
Langkah-langkah penggunaan algoritma ini adalah
1. Tentukan Kriteria Pembobotan untuk masing-masing kriteria
Jumlah pembobotan dari semua kriteria harus sama dengan 100%
Contoh dalam kasus ini:
Bobot harga 35%
Bobot jarak tempuh per liter 25%
Bobot cc 15%
Bobot nilai model 25%
Dim bobot(3) As Double bobot(0) = 0.35 bobot(1) = 0.25 bobot(2) = 0.15 bobot(3) = 0.25
2. Tentukan nilai terbaik dari setiap kriteria
Diasumsikan dalam kasus ini adalah:
Untuk kriteria harga, nilai terbaik adalah nilai terendah, nilai terburuk adalah nilai tertinggi
Untuk kriteria jarak tempuh per liter, nilai terbaik adalah nilai tertinggi, nilai terburuk adalah nilai terendah
Untuk kriteria cc, nilai terbaik adalah nilai tertinggi, nilai terburuk adalah nilai terendah
Untuk kriteria nilai model, nilai terbaik adalah nilai tertinggi, nilai terburuk adalah nilai terendah
3. Hitung matriks normalisasi
Untuk kriteria dengan nilai terbaik adalah nilai terendah, maka matriks normalisasi dihitung dengan (nilai minimal pada kolom tersebut) dibagi dengan data awal
Untuk kriteria dengan nilai terbaik adalah nilai tertinggi, maka matriks normalisasi dihitung dengan data awal dibagi dengan (nilai maksimal pada kolom tersebut))
Dim maksNormalisasi(3) As Double For i As Integer = 0 To 3 If i = 0 Then maksNormalisasi(i) = Double.MaxValue Else maksNormalisasi(i) = 0 End If For j As Integer = 0 To 3 If i = 0 Then If maksNormalisasi(i) > data(j, i) Then maksNormalisasi(i) = data(j, i) Else If maksNormalisasi(i) < data(j, i) Then maksNormalisasi(i) = data(j, i) End If Next Next Dim normalisasi(3, 3) As Double For i As Integer = 0 To 3 For j As Integer = 0 To 3 If j = 0 Then normalisasi(i, j) = maksNormalisasi(j) / data(i, j) Else normalisasi(i, j) = data(i, j) / maksNormalisasi(j) End If Next Next
4. Hitung nilai akhir untuk setiap inputan data dengan cara perkalian antara matriks normalisasi dengan matriks bobot
Data yang terpilih adalah data dengan nilai akhir yang paling besar
Dim motor As String = "" Dim maks As Double = 0 Dim nilai(3) As Double Console.WriteLine("") Console.WriteLine("Hasil nilai akhir adalah") For i As Integer = 0 To 3 nilai(i) = 0 For j As Integer = 0 To 3 nilai(i) += normalisasi(i, j) * bobot(j) Next Console.WriteLine("Motor " & Chr(i + 65) & ": " & nilai(i).ToString("F2")) If maks < nilai(i) Then motor = "Motor " & Chr(i + 65) maks = nilai(i) End If Next
Hasil akhir adalah: (klik untuk perbesar gambar)
Contoh modul / source code dalam bahasa VB (Visual Basic) dapat didownload disini:
Contoh perhitungan dalam bentuk excel
Contoh modul / source code dalam bahasa R:
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.
Bisa tolong dijelaskan dengan cara manual / lewat excel nya?
Anda dapat melihat contoh perhitungan manual dari perhitungan diatas pada dokumen ini
bisa minta tlng untuk perhitungan vb menggunakan data base mysql.
Silahkan berkomunukasi melalui jalur pribadi karena pertanyaan anda tidak sesuai dengan topik pada pos ini