Senin, 08 Juni 2015

Metode Sistem Pendukung Keputusan Weighted Product

Selamat pagi kawan, kali ini saya akan berbagi bagaimana penerapan atau source code Metode Sistem Pendukung Keputusan Weighted Product (Source code SPK WP). Sebelum membaca tulisan ini disarankan terlebih dahulu membaca tulisan saya mengenai Penerapan Metode Sistem Pendukung Keputusan SAW karena saya masih menggunakan data yang sama untuk melakukan percobaan perhitungan Metode Sistem Pendukung Keputusan Weighted Product denan PHP.
Metode WP (Weigted Product) merupakan salah satu metode sistem pendukung keputusan, dimana perkalian digunakan untuk menghubungkan rating atribut, dan rating setiap atribut harus dipangkatkan dulu dengan bobot atribut yang bersangkutan. Untuk Lebih jelasnya berikut ini adalah algoritma metode weighted product :
  • Persiapkan terlebih dahulu bobot dan lakukan perbaikan bobot dengan :
    W j = Wj / ∑Wj
  • Normalisasi matriks X berdasarkan persamaan Normalisasi Matrik Metode WP, sehingga diperoleh matriks ternormalisasi S.
  • wj adalah pangkat bernilai positif untuk atribut keuntungan, dan bernilai negatif untuk atribut biaya.
  • Lakukan perangkingan dengan menggunakan persamaan :
    Perangkingan WP.
Setelah memahami algoritma tersebut, kita siapkan data-data untuk menghitung metode Weighted product dengan PHP.
Data Matrix calon kepala unit sistem informasi :
Data Matrik Metode Weighted Product
Data Matrik Metode Weighted Product
Bobot (w) :
W 0.35 0.25 0.25 0.15
Lets do Code with PHP, tahap ini kita akan melakukan perhitungan metode WP dengan PHP :
  1. Lakukan perbaikan bobot :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    $bobot = array(0.35, 0.25, 0.25, 0.15);
    $jumBobot = array_sum($bobot);
    echo "<h3>Bobot Awal</h3>";
    echo "<table border=1 style='border-collapse:collapse; border:solid 1px #000' width=300><tr><td>Bobot (w)</td>";
    for($i=0; $i<4; $i++)
        echo "<td>$bobot[$i]</td>";
    echo "</tr></table>";  
    //Perbaikan bobot
    //Simpan di array newBobot
    $newBobot = array();
    echo "<h3>Bobot Baru</h3>";
    echo "<table border=1 style='border-collapse:collapse; border:solid 1px #000' width=300><tr><td>Bobot (W new)</td>";
    for($i=0; $i<4; $i++){
        $newBobot[$i] = $bobot[$i] / $jumBobot;
        echo "<td>$newBobot[$i]</td>";
    }
    echo "</tr></table>";  
  2. Normalisasi Matrix
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    //Lakukan Normalisasi dengan rumus pada langkah 2
    //Hitung Normalisasi tiap Elemen
    $sql2 = mysql_query("SELECT * FROM tbmatrik");
    //Buat tabel untuk menampilkan hasil
    echo "<H3>Matrik Normalisasi</H3>
    <table width=300 style='border:1px; #ddd; solid; border-collapse:collapse' border=1>
        <tr>
            <td>No</td><td>Nama</td><td>Nilai S</td>
        </tr>
    ";
    $no = 1;
    $i = 0;
    //Buat variabel S array
    $normS = array();
    while ($dt2 = mysql_fetch_array($sql2)) {
    //Hitung S per baris
        $normS[$i] = pow($dt2['Kriteria1'], $newBobot[0]) * pow($dt2['Kriteria2'], $newBobot[1]) * pow($dt2['Kriteria3'], $newBobot[2]) * pow($dt2['Kriteria4'], $newBobot[3]);
        echo "<tr>
            <td>$no</td><td>".getNama($dt2['idCalon'])."</td><td>".round($normS[$i],2)."</td>
        </tr>";
    $no++;
    $i++;
    }
    echo "</table>";
  3. Lakukan Perangkingan 
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    //Proses perangkingan dengan rumus langkah 3
    //Jumlahkan Terlebih dahulu nilai S
    $jums = round(array_sum($normS),2);
    $sql3 = mysql_query("SELECT * FROM tbmatrik");
    //Buat tabel untuk menampilkan hasil
    echo "<H3>Perangkingan</H3>
    Nilai Sum S = $jums
    <table width=300 style='border:1px; #ddd; solid; border-collapse:collapse' border=1>
        <tr>
            <td>No</td><td>Nama</td><td>Rangking</td>
        </tr>
    ";
    $no = 1;
    $i=0;
    //Kita gunakan rumus (s/ sum(s))
    while ($dt3 = mysql_fetch_array($sql3)) {
        echo "<tr>
            <td>$no</td><td>".getNama($dt3['idCalon'])."</td>
            <td>"
            .round($normS[$i]/ $jums,2)."</td>
        </tr>";
    $no++;
    $i++;
    }
    echo "</table>";
Selesai, berikut adalah hasil dari source code sistem pendukung keputusan Weighted Product :
Hasil SPK Metode WP

Metode Weighted Product WP dalam Sistem Pendukung Keputusan (SPK)

Metode Weight Product (WP)
Metode  WP  mengunakan perkalian untuk menghubungkan rating atribut, di mana rating setiap atribut harus dipangkatkan dulu dengan bobot atribut yang bersangkutan.
Proses ini Ai diberikan sebagai berikut :
rumus
Dimana  ∑wj =  1.  wj  adalah  pangkat  bernilai  positif  untuk  atribut  keuntungan,  dan bernilai negatif untuk atribut biaya.
Preferensi relatif dari setiap alternatif, diberikan sebagai:
rumus1
Contoh kasus :
Misalkan nilai setiap alternatif pada setiap atribut diberikan berdasarkan data riil yang ada seperti pada Tabel 2.1, perlu diidentifikasi terlebih dahulu jenis kriterianya, apakah termasuk kriteria keuntungan atau kriteria biaya.
Rating kecocokan dari setiap alternatif pada setiap kriteria
(Kusumadewi, Hartati, Harjoko, dan Wardoyo, 2006: 78)
tabel
Kriteria C2 (kepadatan penduduk di sekitar lokasi) dan C4 (jarak dengan gudang  yang sudah  ada)  adalah  criteria  keuntungan.  Sedangkan  kriteria  C1(jarak  dengan  pasar terdekat), C3 (jarak dari pabrik), dan C5 (harga tanah untuk lokasi) adalah kriteria biaya.Permasalahan kasus di atasakan di selesaikan dengan menggunakan metode  Weighted Product (WP). Sebelumnya akan dilakukan perbaikan bobot terlebih dahulu. Bobot awal W = (5, 3, 4, 4, 2), akan diperbaiki sehingga total bobot ∑Wj = 1, dengan cara :
rumus2
Kemudian vektor S dihitung berdasarkan persamaan rumus6 dengan i = 1, 2, … ,m sebagai berikut :
rumus3
Nilai  vektor  yang  akan  digunakan  untuk  perankingan  dapat  dihitung  berdasarkan persamaan
rumus4
rumus5
Nilai terbesar ada pada V2  sehingga alternatif A2 adalah alternatif yang terpilih sebagai alternatif  terbaik.  Dengan  kata  lain,  alternatif  A2 akan  terpilih  sebagai  lokasi  untuk mendirikan gudang baru. ( Kusumadewi, Hartati, Harjoko, dan Wardoyo, 2006: 79 )

Metode Simple Additive Weighting (SAW)

1.1 Pengertian Metode Simple Additive Weighting (SAW)


Metode Simple Additive Weighting (SAW) sering juga dikenal istilah metode penjumlahan terbobot.
Konsep dasar metode SAW adalah mencari penjumlahan terbobot dari rating kinerja pada setiap alternatif pada semua atribut (Fishburn, 1967) (MacCrimmon, 1968).
Metode SAW membutuhkan proses normalisasi matriks keputusan (X) ke suatu skala yang dapat diperbandingkan dengan semua rating alternatif yang ada. Metode ini merupakan metode yang paling terkenal dan paling banyak digunakan dalam menghadapi situasi Multiple Attribute Decision Making (MADM). MADM itu sendiri merupakan suatu metode yang digunakan untuk mencari alternatifoptimal dari sejumlah alternatif dengan kriteria tertentu.
Metode SAW ini mengharuskan pembuat keputusan menentukan bobot bagi setiap atribut. Skor total untuk alternatif diperoleh dengan menjumlahkan seluruh hasil perkalian antara rating (yang dapat dibandingkan lintas atribut) dan bobot tiap atribut. Rating tiap atribut haruslah bebas dimensi dalam arti telah melewati proses normalisasi matriks sebelumnya.

1.2 Langkah Penyelesaian Simple Additive Weighting (SAW)
Langkah Penyelesaian SAW sebagai berikut :
1. Menentukan kriteria-kriteria yang akan dijadikan acuan dalam pengambilan keputusan, yaitu Ci.
2. Menentukan rating kecocokan setiap alternatif pada setiap kriteria.
3. Membuat matriks keputusan berdasarkan kriteria(Ci), kemudian melakukan normalisasi matriks berdasarkan persamaan yang disesuaikan dengan jenis atribut (atribut keuntungan ataupun atribut biaya) sehingga diperoleh matriks ternormalisasi R.
4. Hasil akhir diperoleh dari proses perankingan yaitu penjumlahan dari perkalian matriks ternormalisasi R dengan vektor bobot sehingga diperoleh nilai terbesar yang dipilih sebagai alternatif terbaik (Ai)sebagai solusi.


Formula untuk melakukan normalisasi tersebut adalah :


Dimana :
rij = rating kinerja ternormalisasi
Maxij = nilai maksimum dari setiap baris dan kolom
Minij = nilai minimum dari setiap baris dan kolom
Xij = baris dan kolom dari matriks
Dengan rij adalah rating kinerja ternormalisasi dari alternatif Ai pada atribut Cj; i =1,2,…m dan j = 1,2,…,n.
Nilai preferensi untuk setiap alternatif (Vi) diberikan sebagai :


Dimana :
Vi = Nilai akhir dari alternatif
wj = Bobot yang telah ditentukan
rij = Normalisasi matriks
Nilai Viyang lebih besar mengindikasikan bahwa alternatifAi lebih terpilih


Contoh kasus1:
Bagian kemahasiswaan telah membuat pengumuman tentang dibukanya kesempatan memperoleh“BEASISWA”. Beasiswa ini diperuntukkan untuk tiga Mahasiswa. Jumlah pendaftar sampai pada tanggal terakhir terkumpul 50 mahasiswa.
Ø Tugas Kita, adalah “membangun Sistem Pendukung Keputusan untuk menentukan calon penerima beasiswa bagi mahasiswa”.
Langkah-Langkah
MASALAH
ü “ seleksi calon penerima beasiswa “
Kriteria
ü Usia, jumlah penghasilan orangtua, semester, jumlah tanggungan orangtua, dan jumlah saudara kandung.
Penentuan criteria yang dapat digolongkan ke dalam criteria benefit
· Jumlah tanggungan orangtua,
· jumlah saudara kandung, dan
· IPK


Penentuan criteria yang dapat digolongkan ke dalam criteria cost
· Usia
· Jumlah penghasilan orangtua
· semester


Pembuatan table,

No             KRITERIA                               KETERANGAN
1                     C1                                                 Usia
2                     C2                                Jumlah Penghasilan Orangtua
3                     C3                                             Semester
4                     C4                                Jumlah Tanggungan Orangtua
5                     C5                                    Jumlah saudara kandung
6                     C6                                                  IPK


Kriteria dan Pembobotan
Teknik pembobotan pada criteria dapat dilakukan dengan beragai macam cara dan metode yang abash. Pase ini dikenal dengan istilah pra-proses. Namun bisa juga dengan cara secara sederhana dengan memberikan nilai pada masing-masing secara langsung berdasarkan persentasi nilai bobotnya. Sedangkan untuk yang lebih lebih baik bisa digunakan fuzzy logic. Penggunaan Fuzzy logic, sangat dianjurkan bila kritieria yang dipilih mempunyai sifat yang relative, misal Umur, Panas, Tinggi, Baik atau sifat lainnya.



Contoh Pembobotan criteria


Pembobotan (W)
No              KRITERIA                         Nilai bobot
1                      C1                                     0.15
2                      C2                                     0.30
3                      C3                                     0.10
4                      C4                                     0.20
5                      C5                                     0.10
6                      C6                                     0.15

Total
1 Keterangan
A : Calon yang diseleksi
C : Kriteria

Diubah ke dalam matrik keputusan sebagai berikut:


Penghitungan Normalisasi
Untuk normalisai nilai, jika faktor kriteria cost digunakanan rumusan
Rii = ( min{Xij} / Xij)
Maka nilai-nilai normalisasi cost menjadi:
R11 = min{1;0.75;0.5} / 1 = 0.5 / 1 = 0.5
R21 = min{1;0.75;0.5} / 0.75 = 0.5 / 0.75 = 0.67
R31 = min{1;0.75;0.5} / 1 = 0.5 / 0.5 = 1

R12 = min{0.5;0.5;0.5} / 0.5 = 0.5 / 0.5 = 1
R22 = min{0.5;0.5;0.5} / 0.5 = 0.5 / 0.5 = 1
R32 = min{0.5;0.5;0.5} / 0.5 = 0.5 / 0.5 = 1

R13 = min{0.8;0.6;0.6} / 0.8 = 0.6 / 0.8 = 0.75
R23 = min{0.8;0.6;0.6} / 0.6 = 0.6 / 0.6 = 1
R33 = min{0.8;0.6;0.6} / 0.6 = 0.6 / 0.6 = 1

Untuk normalisai nilai, jika faktor kriteria benefit digunakanan rumusan
Rii = ( Xij / max{Xij})

Maka nilai-nilai normalisasi benefit menjadi:
R14 = 1.00 / max{1; 0.5;0.25} = 1 / 1 = 1
R24 = 0.50 / max{1; 0.5;0.25} = 0.5 / 1 = 0.5
R34 = 0.25 / max{1; 0.5;0.25} = 0.25 / 1 = 0.25

R15 = 1.00 / max{1; 0.5;0.25} = 1 / 1 = 1
R25 = 0.50 / max{1; 0.5;0.25} = 0.5 / 1 = 0.5
R35 = 0.25 / max{1; 0.5;0.25} = 0.25 / 1 = 0.25

R16 = 0.50 / max{0.5; 0.75;0.25} = 0.5 / 0.75 = 0.67
R26 = 0.75 / max{0.5; 0.75;0.25} = 0.75 / 0.75 = 1
R36 = 0.25 / max{0.5; 0.75;0.25} = 0.25 / 0.75 = 0.33

Tabel faktor ternormalisasi


Perangkingan




Keterangan:
Vi = rangking untuk setiap alternatif
wj = nilai bobot dari setiap kriteria
rij = nilai rating kinerja ternormalisasi

V1 = 0,8505
V2 = 0,8005
V3 = 0,6745

Kesimpulan
Berdasarkan nilai perankingan maka dapat direkomendasikan prioritas calon penerima beasiswa adalah V1, V2, dan V3

Contoh kasus 2
Suatu institusi perguruan tinggi akan memilih seorang karyawannya untuk dipromosikan sebagai kepala unit sistem informasi.
Ada empat kriteria yang digunakan untuk melakukan penilaian, yaitu:


C1 = tes pengetahuan (wawasan) sistem informasi
C2 = praktek instalasi jaringan
C3 = tes kepribadian
C4 = tes pengetahuan agama


Pengambil keputusan memberikan bobot untuk setiap kriteria sebagai berikut: C1 = 35%; C2 = 25%; C3 = 25%; dan C4 = 15%. Ada enam orang karyawan yang menjadi kandidat (alternatif) untuk dipromosikan sebagai kepala unit, yaitu:
A1 = Indra,
A2 = Roni,
A3 = Putri,
A4 = Dani,
A5 = Ratna, dan
A6 = Mira.

Tabel nilai alternatif di setiap kriteria:

Alternatif                               Kriteria
                               C1           C2            C3              C4
Indra                       70            50             80               60
Roni                        50            60             82               70
Putri                         85           55             80               75
Dani                         82           70             65                85
Ratna                        75           75             85                74
Mira                         62           50             75                 80