Metode Weighted Product (WP) merupakan salah satu metode untukmenyelsaikan masalah Multi-Attribute Decision Making(MADM) yang menggunakan perkalian untuk menghubungkan rating atribut,dimana rating setiap atribut harus dipangkatkan dulu dengan bobot atribut yang bersangkutan
author : cahya dsn
,
published on : February 4th, 2015
updated on : May 31st, 2019
Metode Weighted Product (WP) disebutkan pada awalnya pada artikel dari Bridgman (
Bridgman 1922
) serta Miller dan Starr (Miller and Starr 1969
). Metode Weighted Product (WP) ini hampir serupa dengan metode Weighted Sum(WS), dengan perbedaan utamanya adalah pada operasi matematika utamanya yang menggunakan perkalian pada Weighted Product (WP) dibandingkan dengan operasi penjumlahan pada metode Weighted Sum(WS)
Metode Weighted Product (WP) merupakan salah satu metode untuk menyelesaikan masalah Multi Attribute Decision Making(MADM) yang menggunakan perkalian untuk menghubungkan rating atribut,dimana rating setiap atribut harus dipangkatkan dulu dengan bobot atribut yang bersangkutan (Yoon,1989
).
Proses ini sama halnya dengan proses normalisasi(Kusumadewi, dkk.,2006:79
) Preferensi untuk alternatif Ai
diberikan sebagai berikut:
dengan i=1,2,...,m
; nilai m
menunjukkan jumlah alternatif yang dievaluasi, dan nilai Xij
menunjukkan nilai rating kecocokan alternatif ke-i
terhadap kriteria ke-j
. Dalam hal ini :
Dengan wj
adalah pangkat bernilai positif untuk atribut keuntungan,
dan bernilai negatif untuk atribut biaya. Nilai wj
menunjukkan nilai bobot dari kriteria C
yang ke-j
Preferensi relatif dari setiap alternatif, diberikan sebagai:
dengan i=1,2,...,m
, sedangkan nilai n
menunjukkan jumlah kriteria yang digunakan dalam perhitungan.
Berikut ini beberapa kelebihan dan kekurangan yang ada pada penggunaan metode Weighted Product untuk pengambilan keputusan
Metode Weigthed Product merupakan metode MCDM dalam pengambilan keputusan yang sederhana, dan mempunyai beberapa kelebihan dibanding metode yang lain, yaitu:
Selain kelebihan yang sudah dijelaskan sebelumnya, metode WP juga memiliki beberapa kekurangan, diantaranya:
S
alternatif dengan cara mengalikan data nilai rating kecocokan yang berpangkat positif dari hasil perbaikan bobot kriteriaPenerapan Metode Weighted Product (WP) diharapkan mampu untuk membantu dalam menentukan Senior Web Developer baru dari beberapa kandidat pelamar yang diajukan, untuk menjadi karyawan di departemen IT
Sebuah perusahaan IT membutuhkan seorang senior web application programmer yang menguasai bahasa pemrograman PHP, database Mysql, menguasai HTML5, javascript dan CSS3. Ada 6 kandidat yang akan dipilih dari hasil interview yang sudah dilakukan oleh tim HRD dan IT yang akan dijadikan alternatif; yaitu A1: Gatot, A2: Kevin, A3: Usman, A4: Nina, A5: Enrico, dan A6: James .
Ada 5 kriteria dasar yang menjadi acuan dalam pengambilan keputusan, yaitu:
Tabel 1 menunjukkan rating kecocokan dari setiap alternatif dengan setiap kriteria. Nilai setiap alternatif pada setiap atribut diberikan berdasarkan data riil.
Alternatif | Kriteria | ||||
---|---|---|---|---|---|
C1 | C2 | C3 | C4 | C5 | |
A1 Gatot | 9 | 4.5 | 7.5 | 27 | 5 |
A2 Kevin | 6.5 | 1 | 6 | 29 | 8 |
A3 Usman | 8.5 | 3.5 | 7.5 | 32 | 10 |
A4 Nina | 9 | 2.5 | 9 | 38 | 5 |
A5 Enrico | 7 | 6.5 | 6 | 30 | 8 |
A6 James | 9 | 9 | 7 | 24 | 8 |
Pengambil keputusan memberi bobot preferensi dari setiap kriteria sebagai: W=(5,4,4,2.5,3)
dengan masing-masing jenisnya (keuntungan/benefit atau biaya/cost) seperti dalam tabel 2 berikut:
Kriteria | Deskripsi | Bobot | Atribut |
---|---|---|---|
C1 | Penguasaan Aspek teknis | 5 | benefit |
C2 | Pengalaman Kerja | 4 | benefit |
C3 | Interpersonal Skill | 4 | benefit |
C4 | Usia | 2.5 | cost |
C5 | Status Perkawinan | 3 | cost |
W
), penentuan nilai preferensi (S
), penentuan nilai preferensi realtif (V
), dan perangkingan dari data alternatif yang diberikan. Penjelasannya sendiri disajikan secara langkah per langkah agar mudah dipahami.W
)
Berdasarkan data-data tabel kriteria di atas, bobot awal yang ada adalah W=(5,4,4,2.5,3)
akan diperbaiki sehingga total
bobot
$\sum w_j=1$
seperti dalam persamaan [WP-02], dengan cara
Dari persamaan [WP-04] diperoleh hasil sebagai berikut:
$\begin{align}w_{1}&= \frac{5}{(5+4+4+2.5+3)}\\ &= \frac{5}{18.5}\\ &= 0.27027027027027\end{align}$
$\begin{align}w_{2}&= \frac{4}{(5+4+4+2.5+3)}\\ &= \frac{4}{18.5}\\ &= 0.21621621621622\end{align}$
$\begin{align}w_{3}&= \frac{4}{(5+4+4+2.5+3)}\\ &= \frac{4}{18.5}\\ &= 0.21621621621622\end{align}$
$\begin{align}w_{4}&= \frac{2.5}{(5+4+4+2.5+3)}\\ &= \frac{2.5}{18.5}\\ &= 0.13513513513514\end{align}$
$\begin{align}w_{5}&= \frac{3}{(5+4+4+2.5+3)}\\ &= \frac{3}{18.5}\\ &= 0.16216216216216\end{align}$
Sehingga diperoleh bobot ternormalisasi w=(0.27027027027027,0.21621621621622,0.21621621621622,0.13513513513514,0.16216216216216)
S
Nilai vektor preferensi S
dihitung berdasarkan persamaan [WP-01], sehingga diperoleh hasil:
$\begin{align}S{1}&=(9^{0.27027027027027})(4.5^{0.21621621621622})(7.5^{0.21621621621622})(27^{-0.13513513513514})(5^{-0.16216216216216})\\ &=1.9123\end{align}$
$\begin{align}S{2}&=(6.5^{0.27027027027027})(1^{0.21621621621622})(6^{0.21621621621622})(29^{-0.13513513513514})(8^{-0.16216216216216})\\ &=1.1063\end{align}$
$\begin{align}S{3}&=(8.5^{0.27027027027027})(3.5^{0.21621621621622})(7.5^{0.21621621621622})(32^{-0.13513513513514})(10^{-0.16216216216216})\\ &=1.5577\end{align}$
$\begin{align}S{4}&=(9^{0.27027027027027})(2.5^{0.21621621621622})(9^{0.21621621621622})(38^{-0.13513513513514})(5^{-0.16216216216216})\\ &=1.6728\end{align}$
$\begin{align}S{5}&=(7^{0.27027027027027})(6.5^{0.21621621621622})(6^{0.21621621621622})(30^{-0.13513513513514})(8^{-0.16216216216216})\\ &=1.6841\end{align}$
$\begin{align}S{6}&=(9^{0.27027027027027})(9^{0.21621621621622})(7^{0.21621621621622})(24^{-0.13513513513514})(8^{-0.16216216216216})\\ &=2.0606\end{align}$
V
Perhitungan nilai vektor preferensi V
mengacu pada persamaan [WP-03]. Dari persamaan tersebut dapat disederhanakan menjadi persamaan sebagai berikut:
Dari persamaan [WP-05] tersebut kita peroleh:
$\begin{align}V_1&= \frac{1.9123}{(1.9123 + 1.1063 + 1.5577 + 1.6728 + 1.6841 + 2.0606)}\\&= 0.1914\end{align}$
$\begin{align}V_2&= \frac{1.1063}{(1.9123 + 1.1063 + 1.5577 + 1.6728 + 1.6841 + 2.0606)}\\&= 0.1107\end{align}$
$\begin{align}V_3&= \frac{1.5577}{(1.9123 + 1.1063 + 1.5577 + 1.6728 + 1.6841 + 2.0606)}\\&= 0.1559\end{align}$
$\begin{align}V_4&= \frac{1.6728}{(1.9123 + 1.1063 + 1.5577 + 1.6728 + 1.6841 + 2.0606)}\\&= 0.1674\end{align}$
$\begin{align}V_5&= \frac{1.6841}{(1.9123 + 1.1063 + 1.5577 + 1.6728 + 1.6841 + 2.0606)}\\&= 0.1685\end{align}$
$\begin{align}V_6&= \frac{2.0606}{(1.9123 + 1.1063 + 1.5577 + 1.6728 + 1.6841 + 2.0606)}\\&= 0.2062\end{align}$
V
Dari hasil perhitungan nilai vektor V
di atas dapat diurutkan secara descending (dari nilai terbesar ke nilai terkecil) sebagai berikut:
No | Alternatif | Nilai Akhir |
---|---|---|
1 | A6 James | 0.20618509857598 |
2 | A1 Gatot | 0.1913534415586 |
3 | A5 Enrico | 0.16851174875229 |
4 | A4 Nina | 0.16738084565717 |
5 | A3 Usman | 0.15586249057774 |
6 | A2 Kevin | 0.11070218724205 |
Sehingga dari 6 orang kandidat, diperoleh hasil yang terpilih untuk diterima sebagai Senior Web Developer di departemen IT adalah James dengan total nilai perhitungan akhir sebesar 0.20618509857598.
Sebagai pelengkap artikel Metode Weighted Product (WP) pada bagian ini akan dibahas langkah-langkah dalam implementasinya dengan bahasa pemrograman PHP dan database MySQL/MariaDB.
Sebagai bahan pembelajaran aplikasi WP ini; dibuat database (dalam hal ini menggunakan MySQL/MariaDB Database server) sebagai berikut:
CREATE DATABASE IF NOT EXISTS db_dss; USE db_dss;
Awalnya membuat dulu database dengan nama db_dss
jika belum ada database dengan nama tersebut, kemudian gunakan database tersebut dengan memakai sintak USE db_dss;
Berdasarkan contoh kasus di atas dibuatkan tabel untuk data-data kriteria sebagai berikut:
DROP TABLE IF EXISTS wp_criterias; CREATE TABLE IF NOT EXISTS wp_criterias( id_criteria TINYINT(3) UNSIGNED NOT NULL, criteria VARCHAR(100) NOT NULL, weight FLOAT NOT NULL, attribute SET('benefit','cost'), PRIMARY KEY(id_criteria) )ENGINE=MyISAM; INSERT INTO wp_criterias(id_criteria,criteria,weight,attribute) VALUES (1,'Penguasaan Aspek teknis',5,'benefit'), (2,'Pengalaman Kerja',4,'benefit'), (3,'Interpersonal Skill',4,'benefit'), (4,'Usia',2.5,'cost'), (5,'Status Perkawinan',3,'cost');
Data-data mengenai kandidat yang akan dievaluasi seperti yang tertera pada contoh kasus di atas dapat di representasikan dalam tabel database sebagai berikut:
DROP TABLE IF EXISTS wp_alternatives; CREATE TABLE IF NOT EXISTS wp_alternatives( id_alternative SMALLINT(5) UNSIGNED NOT NULL AUTO_INCREMENT, name VARCHAR(30) NOT NULL, PRIMARY KEY(id_alternative) ) ENGINE=MyISAM; INSERT INTO wp_alternatives(name) VALUES ('Gatot'), ('Kevin'), ('Usman'), ('Nina'), ('Enrico'), ('James');
Dalam tabel wp_alternatives
tersebut hanya disimpan id dan nama alternatif-nya; dalam pengembangannya dapat ditambahkan atribut/properti data lainnya, semisal alamat, nomor telepon, email, dan sebagainya sesuai kebutuhan. Namun dalam contoh ini hanya diperlukan namanya saja.
Berikutnya adalah membuat tabel yang berisi hasil evaluasi dari tiap-tiap kandidat(alternatif) terhadap kriteria-kriteria yang diberikan. Data-data yang ada pada contoh kasus di atas dapat di representasikan dalam tabel relasi antara tabel wp_criterias
dengan tabel wp_alternatives
sebagai berikut:
DROP TABLE IF EXISTS wp_evaluations; CREATE TABLE IF NOT EXISTS wp_evaluations( id_alternative SMALLINT(5) UNSIGNED NOT NULL, id_criteria TINYINT(3) UNSIGNED NOT NULL, value FLOAT NOT NULL, PRIMARY KEY (id_alternative,id_criteria) )ENGINE=MyISAM; INSERT INTO wp_evaluations(id_alternative,id_criteria,value) VALUES (1,1,9),(1,2,4.5),(1,3,7.5),(1,4,27),(1,5,5), (2,1,6.5),(2,2,1),(2,3,6),(2,4,29),(2,5,8), (3,1,8.5),(3,2,3.5),(3,3,7.5),(3,4,32),(3,5,10), (4,1,9),(4,2,2.5),(4,3,9),(4,4,38),(4,5,5), (5,1,7),(5,2,6.5),(5,3,6),(5,4,30),(5,5,8), (6,1,9),(6,2,9),(6,3,7),(6,4,24),(6,5,8);
Dari databse yang sudah dibuat, kita bisa membuat script php untuk membuat koneksi ke database server dengan extension mysqli secara sederhana sebagai berikut:
<?php
//-- konfigurasi database
$dbhost = 'localhost';
$dbuser = 'root';
$dbpass = '';
$dbname = 'db_dss';
//-- koneksi ke database server dengan extension mysqli
$db = new mysqli($dbhost,$dbuser,$dbpass,$dbname);
//-- hentikan program dan tampilkan pesan kesalahan jika koneksi gagal
if ($db->connect_error) {
die('Connect Error ('.$db->connect_errno.')'.$db->connect_error);
}
?>
Sesuaikan nilai-nilai $dbhost,$dbuser,$dbpass
dan $dbname
dengan konfigurasi database yg digunakan.
Secara umum dalam WP, langkah-langkah yang dilakukan dalam pengambilan keputusan adalah sebagai berikut:
W
)S
V
V
Untuk keperluan perhitungan berikutnya, terlebih dahulu dengan PHP diambil data dari database MySQL/MariaDB yang sudah dibuat sebelumnya dan disimpan dalam variabel array, sebagai berikut:
<?php
//--- query mengambil nilai data-data kriteria
$sql="SELECT id_criteria,criteria,weight
FROM wp_criterias
ORDER BY id_criteria";
$result=$db->query($sql);
//--- inisialisasi array kriteria 'C'
$C=array();
//--- inisialisasi array weight/bobot 'W'
$W=array();
//--- inisialisasi jumlah kriteria 'n'
$n=0;
while($criteria=$result->fetch_assoc()){
$W[$id_criteria]=$criteria['weight'];
$C[]=$criteria;
++$n;
}
$result->free();
//--- query mengambil nilai data-data hasil evaluasi
$sql="SELECT id_criteria,criteria,weight
FROM wp_evaluations
ORDER BY id_alternative,id_criteria";
$result=$db->query($sql);
//--- inisialisasi array X
$X=array();
$alternative='';
//--- inisialisasi jumlah alternative 'm'
$m=0;
while($row=$result->fetch_assoc()){
if($row['id_alternative']!=$alternative){
$X[$row['id_alternative']]=array();
$alternative=$row['id_alternative'];
++$m;
}
$X[$row['id_alternative']][$row['id_criteria']]=$row['value'];
}
$result->free();
?>
W
)Script PHP yang digunakan untuk mengimplementasikan perhitungan normalisasi bobot dapat dituliskan sebagai berikut:
<?php
//--- menghitung total jumlah bobot
$sigma_w=array_sum($W);
//--- membagi masing-masing bobot dengan total jumlah bobot
foreach($W as $j=>$w){
$W[$j]=$w/$sigma_w;
}
?>
S
Perhitungan nilai vektor preferensi S
dengan PHP dapat dilakukan dengan script berikut:
<?php
//--- inisialisasi array 'S'
$S=array();
//--- menghitung nilai preferensi S untuk tiap-tiap alternatif
foreach($X as $i=>$x){
//--- inisialisasi nilai S untuk alternatif ke-i
$S[$i]=1;
//--- lakukan iterasi untuk tiap-tiap data hasil evaluasi X
foreach($x as $j=>$value){
//--- kalikan dengan pangkat negatif dari nilai untuk kriteria ke j
//--- jika merupakan kriteria biaya/cost
if($criterias[$j]['attribute']=='cost')
$S[$i]*=pow($value,-$W[$j]);
//--- kalikan dengan pangkat positif dari nilai untuk kriteria ke j
//--- jika merupakan kriteria keuntungan/benefit
else
$S[$i]*=pow($value,$W[$j]);
}
}
?>
V
Nilai dari Vektor V
adalah nilai dari masing-masing nilai preferensi S
dibagi dengan jumlah total nilai vektor S
. Perhitungan tersebut dapat direpresentasikan dalam kode-kode PHP sebagai berikut:
<?php
//--- inisialisasi vektor V
$V=array();
//--- menghitung total jumlah nilai preferensi S
$sigma_s=array_sum($S);
//--- membagi masing-masing bobot dengan total jumlah nilai preferensi S
foreach($S as $j=>$s){
$V[$j]=$s/$sigma_s;
}
?>
V
Proses perankingan nilai vektor V dalam PHP dapat dilakukan dengan perintah berikut:
<?php
//--- mengurutkan data nilai vektor V secara descending
arsort($V);
//--- menampilkan data secara terurut dari yang terbesar
$rank=0;
foreach($V as $i=>$v){
echo ++$rank." V{$i} = {$v} <br>";
}
?>
Dari hasil perangkingan tersebut, diperolah alternatif dengan nilai tertinggi sebagai alternatif yang terpilih.
Berikut simpulan yang dapat diambil dari contoh kasus dengan metode Weighted Product (WP) tersebut:
Implementasi Metode Weighted Product menggunakan PHP
Untuk melengkapi artikel ini, berikut disertakan simulasi sederhana implementasi Metode Weighted Product dengan PHP. Masukkan nilai-nilai yang diperlukan dan dibagian akhir akhir ditampilkan hasilnya berdasarkan nilai-nilai yang dimasukkan tersebut.
Masukkan jumlah Kriteria (n
) dan jumlah Alternatif (m
) yang akan disimulasikan. Pada simulasi ini dibatasi nilai masukkannya masing-masing hanya bilangan bulat antara 3 s.d 7 saja