Langsung ke konten utama

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




Komentar

Posting Komentar

Postingan populer dari blog ini

Php root Url untuk include dari dalam dan luar folder

Pada Posting ini akan membahas pemanggilan file-file php atau juga html document. yang melalui fungsi yang telah disediakan oleh php dan membahas bagaimana menggali berdasarkan letak file atau root(akar) didalam folder,sub folder dan sub sub folder. Fungsi PHP untuk memanggil file php lainya Bahasa pemograman PHP  memiliki kemampuan utuk menyertakan file php yang lainnya.adapun fungsi untuk menyertakan file php lainya yaitu. include(); require(); include_once(); requere_once(); agan bisa gunakan salah satu dari fungsi tersebut sesuai dengan kebutuhan agan. Bagaimana memanggil file php berdasaran lokasi akar foldernya ? 1.memanggil di dalam satu folder yang sama memanggil dalam satu folder ini maksunya adalah file php yang akan memanggil dan file php yang akan di panggil berada dalam satu folder. nah, untuk menyertakan file php didalam folder yang sama pathnya seperti  contoh dibawah ini: include(‘koneksi.php’); pada conto diatas file php koneksi berada dalam satu folder dengan file yan

Belajar php : membuat nomor ID otomatis untuk insert data

Penjelasan tentang membuat nomor id otomatis Hallo gan pada postingan saya kali ini .saya akan berbagi cara untuk membuat id otomatis pada pemograman PHP dan mySQL . id otomatis maksudnya adalah kita akan menciptakan sebuah nomor unik dengan proses penambahan kode tersebut tanpa kita inputkan alias akan dibuat dan diproses oleh php.hampir semua aplikasi menggunakan id otomatis untuk penambahan data baik itu program berbasis desktop maupun berbasis web.jadi jangan diragukan lagi ,agan sudah berada dalam kesempatan yang baik untuk belajar menjadi programmer yang handal. dalam pemograman PHP banyak sekali cara yang dapat dilakukan untuk generate nomor unik yang dapat digunakan sebagai primary key pada database. pada kasus tutorial kali ini saya praktekan menyimpan sebuah data ke database menggunakan PHP yang sesuai dengan posting ini membuat id otomatis.untuk itu saya asumsikan ,agan sudah bisa membuat tabel database dan mengkoneksikannya.pada kasus ini saya mengunakan database seperti in