Metode (SAW) Simple Additive Weighting dan contoh coding PHP

Pengertian SAW

Simple Additive Weighting meupakan metode penjumlahan terbobot konsep dasar metode SAW adalah mencari penjumlahan terbobot dari rating kinerja pada setiap alternative pada semua kriteria (Kusumadewi, 2006)
Menurut Fajar Nugraha (2011), metode SAW membutuhkan proses normalisasi matrik keputusan (X) ke suatu skala yang dapat diperbandingkan dengan semua rating alternatif yang ada. Metode SAW mengenal adanya 2(dua) atribut yaitu kriteria (benefit) dan kriteria biaya (cost) perbedaan mendasar dari kedua kriteria ini adalah dalam pemilihan kriteria ketika mengambil keputusan.
Adapun langkah penyelesaian dalam menggunakannya adalah

1. Menentukan alternative, yaitu Ai
2. Menentukan kriteria yang akan dijadikan acuan dalam pengambilan keputusan, yaitu Cj
3. Memberikan nilai rating kecocokan setiap alternative pada setiap kriteria.
4. Menentukan bobot preferensi atau tingkat kepentingan (W) setiap kriteria W=[ W1 W2 W3 W4]
5. Membuat table rating kecocokan dari setiap alternative pada setiap kriteria
6. Membuat matrik keputusan yang dibentuk dari table rating kecocokan dari setiap alternative pada setiap kriteria nilai setiap alternative (Ai) pada setiap kriteria (Cj) yang sudah ditentukan,dimana i=1,2 m dan j=1,2,..n
rumus SAW
7. Melakukan normalisasi matrik keputusan dengan cara menghitung nilai rating kinerja ternomalisasi (rij) dari alternative Ai pada kriteria Cj
Rumus :
a. Jika j adalah keuntungan (Benefit)
benefit-saw
b. Jika j adalah biaya (Cost)
cost-saw
Vi = rangking untuk setiap alternative
Wj=nilai bobot dari setiap kriteria
Rij=nilai rating kinerja ternormalisasi
Nilai Vi yang lebih besar mengindikasikan bahwa akternatif Ai lebih terpilih
Keterangan :
a. Dikatakan kriteria keuntungan apabila nilai memberikan keuntungan bagi pengambil keputusan, sebaliknya kriteria biaya apabila menimbulkan biaya bagi pengambil keputusan
b. Apabila berupa kriteria keuntungan maka nilai dibagi dengan nilai dari setiap kolom, sedangkan untuk kriteria biaya dari setiap kolom dibagi dengan nilai.
8. Hasil dari nilai rating kerja ternormalisasi (rij) membentuk matrik ternormalisasi (R)
matrik-ternormalisasi-saw
9. Hasil akhir dari preferensi (Vi) diperoleh dari penjumlahan dari perkalian elemen baris matrik ternormalisasi (R) dengan bobot preferensi (W) yang bersesuai elemen kolom matrik (W)
preferensi-saw
Hasil perhitungan nilai Vi yang lebih besar mengidentifikasikan bahwa alternative Ai merupakan alternative terbaik (Kusumadewi, 2006)
rumus SAW dan koding PHP

penerapan metode SAW ke PHP

sisini akan berbagi coding php untuk penerapan metode simple additive weight. pada contoh coding yang ane buat kasusnya adalah sebuah perlombaan. terserah nama perlombaannya karena ini hanya sebuah contoh penerapan simple additive weigting.
yang memiliki bobot dari kriteria C1=35% C2 =25% C3=25% dan C4=15%
pada percobaan ini ane menggunakan database untuk menyimpan data alternatif dan tabel matriknya.
dengan nama database=" test_spk".
untuk menyimpan data alternatif ane buat nama tabelnya "tbcalon" yang isinya seperti gambar dibawah ini
contoh simple additive weighting php


dan untuk menyimpan nilai dari setiap alternatif ane buat dengan nama "tbmatrik" yang isinya seperti gambar dibawah ini:
alternatif saw












berikutnya adala membuat coding php dengan nama dokumen "spk.php" dan coding phpnya seperti ini gan..

Coding php saw

spk.php
<?php
// Koneksi

mysql_connect("localhost","root","") or die(mysql_error());
mysql_select_db("test_spk") or die(mysql_error());

//Buat array bobot { C1 = 35%; C2 = 25%; C3 = 25%; dan C4 = 15%.}
$bobot = array(0.30,0.30,0.20,0.20);

//Buat fungsi tampilkan nama
function getNama($id){
$q =mysql_query("SELECT * FROm tbcalon where idCalon = '$id'");
$d = mysql_fetch_array($q);
return $d['nama'];
}

//Setelah bobot terbuat select semua di tabel Matrik
$sql = mysql_query("SELECT * FROM tbmatrik");
//Buat tabel untuk menampilkan hasil
echo "<H3>Matrik Awal</H3>
<table width=500 style='border:1px; #ddd; solid; border-collapse:collapse' border=1>
<tr>
<td>No</td>
<td>Nama</td>
<td>C1</td>
<td>C2</td>
<td>C3</td>
<td>C4</td>
<td>jumlah poin</td>
</tr>
";
$no = 1;
while ($dt = mysql_fetch_array($sql)) {
$jumlah= ($dt['Kriteria1'])+($dt['Kriteria2'])+($dt['Kriteria3'])+($dt['Kriteria4']);
echo "<tr>
<td>$no</td>
<td>".getNama($dt['idCalon'])."</td>
<td>$dt[Kriteria1]</td>
<td>$dt[Kriteria2]</td>
<td>$dt[Kriteria3]</td>
<td>$dt[Kriteria4]</td>
<td>$jumlah</td>
</tr>";
$no++;
}
echo "</table>";

//Lakukan Normalisasi dengan rumus pada langkah 2
//Cari Max atau min dari tiap kolom Matrik
$crMax = mysql_query("SELECT max(Kriteria1) as maxK1,
max(Kriteria2) as maxK2,
max(Kriteria3) as maxK3,
max(Kriteria4) as maxK4
FROM tbmatrik");
$max = mysql_fetch_array($crMax);

//Hitung Normalisasi tiap Elemen
$sql2 = mysql_query("SELECT * FROM tbmatrik");
//Buat tabel untuk menampilkan hasil
echo "<H3>Matrik Normalisasi</H3>
<table width=500 style='border:1px; #ddd; solid; border-collapse:collapse' border=1>
<tr>
<td>No</td>
<td>Nama</td>
<td>C1</td>
<td>C2</td>
<td>C3</td>
<td>C4</td>
</tr>
";
$no = 1;
while ($dt2 = mysql_fetch_array($sql2)) {
echo "<tr>
<td>$no</td>
<td>".getNama($dt2['idCalon'])."</td>
<td>".round($dt2['Kriteria1']/$max['maxK1'],2)."</td>
<td>".round($dt2['Kriteria2']/$max['maxK2'],2)."</td>
<td>".round($dt2['Kriteria3']/$max['maxK3'],2)."</td>
<td>".round($dt2['Kriteria4']/$max['maxK4'],2)."</td>
</tr>";
$no++;
}
echo "</table>";

//Proses perangkingan dengan rumus langkah 3
$sql3 = mysql_query("SELECT * FROM tbmatrik");
//Buat tabel untuk menampilkan hasil
echo "<H3>Perangkingan</H3>
<table width=500 style='border:1px; #ddd; solid; border-collapse:collapse' border=1>
<tr>
<td>no</td>
<td>Nama</td>
<td>total poin</td>
<td>SAW</td>
<td>ket</td>
</tr>
";

//Kita gunakan rumus (Normalisasi x bobot)
while ($dt3 = mysql_fetch_array($sql3)) {
$jumlah= ($dt3['Kriteria1'])+($dt3['Kriteria2'])+($dt3['Kriteria3'])+($dt3['Kriteria4']);
$poin= round(
(($dt3['Kriteria1']/$max['maxK1'])*$bobot[0])+
(($dt3['Kriteria2']/$max['maxK2'])*$bobot[1])+
(($dt3['Kriteria3']/$max['maxK3'])*$bobot[2])+
(($dt3['Kriteria4']/$max['maxK4'])*$bobot[3]),3);

$data[]=array('nama'=>getNama($dt3['idCalon']),
'jumlah'=>$jumlah,
'poin'=>$poin);

}


//mengurutkan data
foreach ($data as $key => $isi) {
$nama[$key]=$isi['nama'];
$jlh[$key]=$isi['jumlah'];
$poin1[$key]=$isi['poin'];
}
array_multisort($poin1,SORT_DESC,$jlh,SORT_DESC,$data);
$no=1;
$h="juara";
$juara=1;
$hr=1;

foreach ($data as $item) { ?>
<tr>
<td><?php echo $no ?></td>
<td><?php echo$item['nama'] ?></td>
<td><?php echo$item['jumlah'] ?></td>
<td><?php echo$item['poin'] ?></td>
<td><?php echo"$h $juara" ?></td>
</tr>
<?php
$no++;
if ($no>=4) {
$h=" ";
$juara=" ";
}else{
$juara++;
}

}
echo "</table>";

?>

Hasil dari dari program php

hasil dari proses koding php diatas seperti dibawah ini gan
metode saw dengan php




Posting Komentar

0 Komentar