PROMETHEE (Preference Ranking Organization METHod for Enrichment Evaluation) adalah Metode MCDM(Multi Criteria Decision Making) yang dibangun oleh Brans.(Brans and Vincke 1985; Brans et al. 1986
). PROMETHEE adalah metode yang cukup sederhana dalam konsep dan aplikasi dibandingkan metode lain yang digunakan dalam analisa kasus multi kriteria. Dalam artikel ini akan ditunjukkan contoh implementasi metode PROMETHEE dalam pemilihan harddisk external.
author : cahya dsn
,
published on : June 28th, 2017
updated on : May 31st, 2022
PROMETHEE adalah metodologi untuk mengevaluasi alternatif dengan kriteria yang diberikan dan membuat peringkat alternatif untuk keputusan akhir. Dugaan dari dominasi kriteria yang digunakan dalam PROMETHEE adalah penggunaan nilai dalam hubungan outranking, outranking merupakan metode yang dapat menangani kriteria kualitatif dan kuantitatif secara bersamaan. Metode ini mampu memperhitungkan alternatif-alternatif berdasarkan karakteristik yang berbeda.
Metode outranking membandingkan beberapa kemungkinan alternatif (pada kriteria) dengan kriteria dasar. Mereka pada dasarnya menghitung indeks untuk setiap pasangan alternatif yang memenuhi syarat atau antara peringkat satu relatif dengan alternatif lain. Semua parameter yang terlibat mempunyai pengaruh nyata menurut pandangan ekonomi (Brans and Vincke, 1985
).
Metode PROMETHEE merupakan salah satu yang paling dikenal dan merupakan metode outranking yang diterapkan secara luas, terdiri dari pembangunan relasi outranking melalui perbandingan berpasangan alternatif diperiksa di setiap kriteria terpisah.
PROMETHEE menyediakan kepada user untuk menggunakan data secara langsung dalam bentuk tabel multikriteria sederhana. PROMETHEE mempunyai kemampuan untuk menangani banyak perbandingan, pengambil keputusan hanya mendefinisikan skala ukurannya sendiri tanpa batasan, untuk mengindikasi prioritasnya dan preferensi untuk setiap kriteria dengan memusatkan pada nilai (value). Penggunaan metode PROMETHEE dapat dijadikan metode untuk pengambilan keputusan dibidang pemasaran, sumber daya manusia, pemilihan lokasi, atau bidang lain yang berhubungan dengan pemilihan alternatif.
Nilai f
merupakan nilai nyata dari suatu kriteria, f : K → Я
(Real Word) dan tujuannya berupa prosedur optimasi untuk setiap alternatif yang akan diseleksi, a ε K, f(a)
merupakan evaluasi dari alternatif yang akan diseleksi tersebut untuk setiap kriteria. Pada saat dua alternatif dibandingkan a,b ε K
, harus dapat ditentukan perbandingan preferensinya.
Perbandingan nilai intensitas (P) dari preferensi alternatif a
terhadap alternatif b
sedemikian rupa dapat dinyatakan sebagai:
P(a,b) = 0
, berarti tidak ada beda antara a
dan b
, atau tidak ada preferensi a
lebih baik dari b
.P(a,b) ≈ 0
, berarti preferensi a
lebih baik dari b
-nya lemah.P(a,b) ≈ 1
, berarti preferensi a
lebih baik dari b
-nya kuat. P(a,b) = 1
, berarti mutlak preferensi a
lebih baik dari b
.Keterkaitan fungsi preferensi P(a,b)
dari a
yang berhubungan dengan b
dapat didefiniskan sebagai:
Untuk kasus konkret, tampaknya masuk akal untuk memilih fungsi p(.)
dari jenis berikut:
f(a)
dengan f(b)
Untuk menunjukkan dengan jelas daerah indifference di lingkungan f(b)
, kita dapat tuliskan:
dan representasi grafis fungsi H(x)
dinyatakan sebagai berikut
Dalam metode ini fungsi preferensi seringkali menghasilkan nilai fungsi yang berbeda antara dua evaluasi, sehingga : P(a,b) = P(f(a)-f(b))
.
Untuk semua kriteria, suatu obyek akan dipertimbangkan memiliki nilai kriteria yang lebih baik ditentukan nilai f
dan akumulasi dari nilai ini menentukan nilai preferensi atas masing–masing obyek yang akan dipilih.
Setiap kriteria boleh memiliki nilai dominasi kriteria atau bobot kriteria yang sama atau berbeda, dan nilai bobot tersebut harus di atas 0 (Nol). Sebelum menghitung bobot untuk masing-masing kriteria, maka dihitung total bobot dari seluruh kriteria terlebih dahulu.
Untuk setiap kriteria, fungsi preferensi menerjemahkan perbedaan antara dua alternatif menjadi derajat preferensi mulai dari nol sampai satu. Struktur preferensi PROMETHEE berdasarkan perbandingan berpasangan. Semakin kecil nilai deviasi maka semakin kecil nilai preferensinya, semakin besar deviasi semakin besar preferensinya. Dalam rangka memfasilitasi pemilihan fungsi preferensi tertentu, Brans dan Vincke, mengusulkan 6 (enam) tipe dasar sebagai berikut (Brans and Vincke, 1985
):
Tipe Usual adalah tipe dasar, yang tidak memiliki nilai threshold atau kecenderungan dan tipe ini jarang digunakan. Secara matematis dapat dituiskan dalam notasi berikut:
a
dan alternatif b
jika a=b
atau f(a)=f(b)
, maka niliai preferensinya benilai 0 (Nol) atau P(x)=0
. Apabila nilai kriteria pada masing-masing alternatif memiliki nilai berbeda, maka pembuat keputusan membuat preferensi mutlak benilai 1 (Satu) atau P(x)=1
untuk alternatif yang memiliki nilai lebih baik.
Tipe Quasi sering digunakan dalam penilaian suatu data dari segi kwalitas atau mutu, yang mana tipe ini menggunakan Satu threshold atau kecenderungan yang sudah ditentukan, dalam kasus ini threshold itu adalah indifference. Indifference ini biasanya dilambangkan dengan karakter m
atau q
, dan nilai indifference harus diatas 0 (Nol).
P(x)
dari masing-masing alternatif tidak melebihi nilai threshold. Apabila selisih hasil evaluasi untuk masing-masing alternatif melebihi nilai m
atau q
maka terjadi bentuk preferensi mutlak, jika pembuat memutuskan menggunakan kriteria ini, maka decision maker tersebut harus menentukan nilai m
atau q
, dimana nilai ini dapat menjelaskan pengaruh yang signifikan dari sutau kriteria.
Tipe Linier acapkali digunakan dalam penilaian dari segi kuantitatif atau banyaknya jumlah, yang mana tipe ini juga menggunakan Satu threshold atau kecenderungan yang sudah ditentukan, dalam kasus ini threshold itu adalah preference.
n
atau p
, dan nilai preference harus diatas 0 (Nol). Kriteria ini menjelaskan bahwa selama nilai selisih memiliki nilai yang lebih rendah dari n
atau p
, maka nilai preferensi dari pembuat keputusan meningkat secara linier dengan nilai x, jika nilai x lebih besar dibandingkan dengan nilai n
atau p
, maka terjadi preferensi mutlak.
Tipe Linear Quasi juga mirip dengan tipe Linear yang acapkali digunakan dalam penilaian dari segi kuantitatif atau banyaknya jumlah. Tipe ini juga menggunakan threshold preference (n
atau p
) tetapi ditambahkan Satu threshold lagi yaitu indifference (m
atau q
).
Nilai indifference serta preference harus diatas 0 (Nol) dan nilai indifference harus di bawah nilai preference. Pengambilan keputusan mempertimbangkan peningkatan preferensi secara linier dari tidak berbeda hingga preferensi mutlak dalam area antara dua kecenderungan m
dan n
(atau q
dan p
)
Tipe ini mirip dengan tipe Quasi yang sering digunakan dalam penilaian suatu data dari segi kwalitas atau mutu. Tipe ini juga menggunakan threshold indifference (m
atau q
) tetapi ditambahkan Satu threshold lagi yaitu preference (n
atau p
).
Nilai indifference serta preference harus diatas 0 (Nol) dan nilai indifference harus di bawah nilai preference. Apabila alternatif tidak memiliki perbedaan (x), maka nilai preferensi sama dengan 0 (Nol) atau P(x)=0
. Jika x berada diatas nilai m
(atau q
) dan dibawah nilai n
(atau p
), hal ini berarti situasi preferensi yang lemah P(x)=0.5
. Dan jika x lebih besar atau sama dengan nilai n
(atau p
) maka terjadi preferensi mutlak P(x)=1
Tipe Gaussian sering digunakan untuk mencari nilai aman atau titik aman pada data yang bersifat continue atau berjalan terus.(Tien-Yin Chou, 2004
)
Tipe ini memiliki nilai threshold yaitu Gaussian threshold yang berhubungan dengan nilai standar deviasi atau distribusi normal dalam statistik.
Enam tipe dari penyamarataan kriteria bisa dipertimbangkan dalam metode PROMETHEE, tiap-tiap tipe bisa lebih mudah ditentukan nilai kecenderungannya atau parameternya karena hanya Satu atau Dua parameter yang mesti ditentukan. Hanya tipe Usual saja yang tidak memiliki nilai parameter.
Dalam fungsi-fungsi preferensi tersebut terdapat threshold preferensi m
dan n
(atau q
dan p
). Threshold pengabaian m
atau q
adalah deviasi terbesar yang dianggap dapat diabaikan oleh pengambil keputusan, sedangkan threshold preferensi n
atau p
adalah deviasi terkecil yang dianggap cukup untuk menghasilkan preferensi penuh.
m
atau q
. Jika nilai perbedaan (x) di bawah atau sama dengan nilai indifference x ≤ m
maka x dianggap tidak memiliki nilai perbedaan x = 0
.n
atau p
. Jika nilai perbedaan (x) di atas atau sama dengan nilai preference x ≥ n
maka perbedaan tersebut memiliki nilai mutlak x = 1
.σ
atau s
serta diketahui dengan baik sebagai parameter yang secara langsung berhubungan dengan nilai standar deviasi pada distribusi normal.(Tzeng 2003
)Tahapan prosedur untuk pelaksanaan PROMETHEE adalah sebagai berikut (Ignatius J, dkk, 2012
) :
dimana dj(a,b)
menunjukan perbedaan antara evaluasi alternatif dari a
dan b
pada kriteria ke j
, dan k
menunjukan kriteria berhingga
dimana Pj(a,b)
sebagai fungsi dj(a,b)
menunjukan preferensi alternatif a
yang berkaitan dengan alternatif b
pada setiap kriteria
dimana φ(a,b)
dengan a
lebih besar dari b
(antara nol hingga satu) didefinisikan sebagai jumlah bobot P(a,b)
pada setiap kriteria, dan wj
adalah bobot yang berhubungan dengan kriteria ke-j
Dalam tahapan ini dihitung nilai-nilai leaving flow dan entering flow pada setiap alternatif
Dari persamaan [PMT-04] di atas, ϕ+(a)
adalah nilai leaving flow pada setiap alternatif a
; sedangkan untuk mengitung nilai entering flow-nya atau nilai ϕ-(a)
didapat dari persamaan berikut :
dimana ϕ(a)
adalah net flow, digunakan untuk menghasilkan keputusan akhir penentuan urutan dalam menyelesaikan masalah sehingga menghasilkan urutan lengkap.
Langkah-langkah perhitungan dengan Algoritma PROMETHEE adalah sebagai berikut:
Diperlukan tahapan-tahapan yang harus dilakukan oleh pembuat keputusan untuk mendapatkan hasil penyeleksian dengan metode PROMETHEE.
Contoh perhitungan untuk menentukan Harddisk External yang terbaik dari 6 alternatif yang diberikan
Hardisk merupakan ruang simpan utama dalam sebuah komputer. Bukan hanya dokumen, tapi juga gambar, musik, dan video. Program-program komputer, sistem operasi semuanya disimpan dalam hardisk komputer. Hardisk merupakan media penyimpan yang didesain untuk dapat digunakan menyimpan data dalam kapasitas yang besar.
Pada artikel ini hanya akan membahas mengenai hardisk eksternal. Hardisk eksternal adalah hardisk yang berdiri sendiri, terhubung dengan kabel ke port USB (Universal Serial Bus) ke unit komputer, sama seperti hardisk internal (Vermaat, 2008
). Selain itu volume serta desainnya yang simpel memudahkan untuk dibawa dan disimpan tanpa menghabiskan ruang dan tempat. Permasalahannya ialah bagaimana cara user memilih hardisk eksternal yang sesuai diantara hardisk eksternal yang ada sehingga penggunaan terhadap hardisk eksternal sesuai dengan kebutuhan user.
Memilih hardisk eksternal yang tepat sesuai dengan kebutuhan user bukan hal yang mudah, banyaknya pilihan tersedia dipasaran bisa jadi membuat user sulit untuk memilihnya. Masalah utama yang di angkat dari penelitian ini adalah bagaimana mengimplementasikan Algoritma Preference Ranking Organization For Enrichment Evaluation (PROMETHEE) untuk memecahkan permasalahan Sistem Pendukung Keputusan untuk Pemilihan Hardisk Eksternal
Dalam artikel ini kriteria yang digunakan ialah Kapasitas, Kecepatan Transfer, Dimensi dan Tipe USB (Universal Serial Bus) dari Hardisk eksternal. Di sini kriteria dibagi menjadi sub kriteria, antara lain: Kriteria Kapasitas dibagi menjadi menjadi sub kriteria Kapasitas Hardisk dan System Requirements, kriteria Kecepatan Transfer dibagi menjadi sub kriteria Write Speed dan Read Speed, kriteria Dimensi dibagi menjadi sub kriteria Height dan Width, dan kriteria Tipe USB dibagi menjadi sub kriteria Interface dan FileSystem.
Sedangkan alternatif yang diperhitungkan dalam artikel ini hanya meliputi 6 Hardisk Eksternal; yaitu : WD My Passport (A1)
, Lacie Rugged Triple (A2)
, Toshiba Canvio Simple (A3)
, Spectra Flash RapidStore (A4)
, A-Data DashDrive (A5)
, dan Buffalo Mini Station (A6)
Contoh nilai data dari bobot kriteria/sub-kriteria, tipe kriteria, dan nilai preferensinya ditunjukkan pda Tabel 1 berikut ini:
Kriteria | Min/Max | Alternatif | Tipe | Threshold | |||||||
---|---|---|---|---|---|---|---|---|---|---|---|
A1 | A2 | A3 | A4 | A5 | A6 | p | q | s | |||
Kapasitas | |||||||||||
HDD Capacity | Max | 7 | 7 | 7 | 7 | 7 | 7 | Linear Quasi | 7 | 1 | 0 |
System Requirement | Max | 7 | 7 | 7 | 6 | 7 | 6 | Quasi | 7 | 5 | 0 |
Kecepatan Transfer | |||||||||||
Write Speed | Max | 4 | 7 | 2 | 4 | 4 | 6 | Linear Quasi | 7 | 1 | 0 |
Read Speed | Max | 2 | 7 | 2 | 2 | 4 | 6 | Linear | 7 | 0 | 0 |
Dimensi | |||||||||||
Height | Max | 7 | 6 | 7 | 7 | 6 | 7 | Level | 7 | 1 | 0 |
Width | Max | 4 | 5 | 7 | 6 | 5 | 6 | Level | 7 | 1 | 0 |
Tipe USB | |||||||||||
Interface | Max | 6 | 7 | 6 | 6 | 6 | 5 | Gaussian | 0 | 0 | 1 |
File System | Max | 7 | 7 | 7 | 7 | 7 | 7 | Usual | 0 | 0 | 0 |
Lain-lain | |||||||||||
Harga | Min | 4 | 7 | 4 | 6 | 6 | 6 | Linear | 7 | 0 | 0 |
)* Pada Tabel 1 tersebut nilai Min/Max menunjukkan kecenderungan data, dimana jika kecenderungannya Min maka menunjukkan nilai yang semakin kecil adalah semakin baik, sedangkan jika Max maka nilainya semakin baik jika nilainya semakin tinggi.
)** Pada kasus ini diasumsikan nilai bobot preferensinya semua sama yaitu 1 (satu) atau wj=1
, sehingga dalam Tabel 1 untuk nilai bobot-nya tidak dicantumkan, demikian pun dalam perhitungan nantinya tidak diperhitungkan.
Berdasarkan data yang disajikan dalam Tabel 1, dilakukan perhitungan dengan menggunakan metoda PROMETHEE sebagai berikut:
dj(a,b)
Berdasarkan persamaan [PMT-01] dapat dihitung nilai deviasi berdasarkan perbandingan berpasangan antara dua alternatif untuk suatu kriteria.
Sebagai contoh nilai deviasi perbandingan antara alternatif A2
dengan alternatif A4
yaitu dj(2,4)
dapat dicari sebagai berikut:
Rincian perhitungannya adalah sebagai berikut :
rangking 1 : A2 = 1
rangking 2 : A5 = 0.4
rangking 3 : A6 = -0
rangking 4 : A1 = -0.1
rangking 5 : A4 = -0.4
rangking 6 : A3 = -0.9
Sehingga dipilih alternatif Harddisk External A2
(Lacie Rugged Triple) dengan nilai Net Flow sebesar 1.
Sebagai bahan pembelajaran aplikasi PROMETHEE ini; dibuat database bernama db_dss
(dalam hal ini menggunakan MySQL/MariaDB Database server) sebagai berikut:
CREATE DATABASE IF NOT EXISTS db_dss; USE db_dss;
Tabel alternatif (pro_alternatives
) digunakan untuk menyimpan data-data alternatif dari kasus yang akan dihitung. Struktur tabel dasarnya adalah sebagai berikut :
DROP TABLE IF EXISTS pro_alternatives; CREATE TABLE IF NOT EXISTS pro_alternatives ( id_alternative smallint(5) unsigned NOT NULL AUTO_INCREMENT, name varchar(30) NOT NULL, code char(1) NOT NULL, PRIMARY KEY (id_alternative) ); INSERT INTO pro_alternatives(id_alternative,name,code) VALUES (1,'WD My Passport','A1'),
(2,'Lacie Rugged Triple','A2'),
(3,'Toshiba Canvio Simple','A3'),
(4,'Spectra Flash RapidStore','A4'),
(5,'A-Data DashDrive','A5'),
(6,'Buffalo Mini Station','A6');
Pada tabel pro_alternatives
tersebut hanya disimpan nilai attribute name
, dan code
saja secara praktis, untuk pengembangannya dapat ditambahkan atribut-atribut lainnya; semisal spesifikasi teknis, harga dan sebagainya.
Tabel kriteria pro_criterias
berisi data nama kriteria-kriteria utama yang akan dibandingkan. Dalam contoh ini, seperti data yang ada dalam [Tabel 1] ada 4 kriteria yang ada (Kapasitas, Kecepatan Transfer, Dimensi, dan Tipe USB). Struktur tabel dan data yang dimasukkan adalah sebagai berikut:
DROP TABLE IF EXISTS pro_criterias; CREATE TABLE IF NOT EXISTS pro_criterias ( id_criteria smallint(5) unsigned NOT NULL AUTO_INCREMENT, criteria varchar(30) NOT NULL, PRIMARY KEY (id_criteria) ); INSERT INTO pro_criterias(id_criteria,criteria) VALUES (1,'Kapasitas'),
(2,'Kecepatan Transfer'),
(3,'Dimensi'),
(4,'Tipe USB'),
(5,'Lain-lain');
Berdasarkan Tipe-tipe Kriteria Dasar Fungsi Preferensi yang dijelaskan di atas, dibuat tabel tipe preferensi pro_types
sebagai berikut:
DROP TABLE IF EXISTS pro_types; CREATE TABLE IF NOT EXISTS pro_types ( id_type smallint(5) unsigned NOT NULL AUTO_INCREMENT, type varchar(30) NOT NULL, PRIMARY KEY (id_type) ); INSERT INTO pro_types(id_type,type) VALUES (1,'Usual'),
(2,'Linear'),
(3,'Quasi'),
(4,'Linear Quasi'),
(5,'Level'),
(6,'Gaussian');
Dari data pada Tabel 1 dibuatkan tabel sub kriteria pro_sub_criterias
yang berisi data sub kriteria secara lebih detail, sebagai berikut :
DROP TABLE IF EXISTS pro_sub_criterias; CREATE TABLE IF NOT EXISTS pro_sub_criterias ( id_sub_criteria smallint(11) unsigned NOT NULL AUTO_INCREMENT, id_criteria smallint(5) unsigned NOT NULL, nama varchar(30) NOT NULL, id_type tinyint(2) NOT NULL, min_max SET('min','max') DEFAULT 'max', p double, q double, s double, PRIMARY KEY (id_sub_criteria) ); INSERT INTO pro_sub_criterias(id_sub_criteria,id_criteria,nama,id_type,min_max,p,q,s) VALUES (1,1,'HDD Capacity',4,'max',7,1,0),
(2,1,'System Requirement',3,'max',7,5,0),
(3,2,'Write Speed',4,'max',7,1,0),
(4,2,'Read Speed',2,'max',7,0,0),
(5,3,'Height',5,'max',7,1,0),
(6,3,'Width',5,'max',7,1,0),
(7,4,'Interface',6,'max',0,0,1),
(8,4,'File System',1,'max',0,0,0),
(9,5,'Harga',2,'min',7,0,0);
Pemetaan nilai data-data dari data alternatif yang akan dihitung dimasukkan dalam tabel pro_evaluations
sebagai berikut:
DROP TABLE IF EXISTS pro_evaluations; CREATE TABLE IF NOT EXISTS pro_evaluations ( id_alternative smallint(5) unsigned NOT NULL, id_sub_criteria smallint(5) unsigned NOT NULL, value tinyint(2) NOT NULL, PRIMARY KEY (id_alternative,id_sub_criteria) ); INSERT INTO pro_evaluations(id_alternative,id_sub_criteria,value) VALUES (1,1,7),(1,2,7),(1,3,4),(1,4,2),(1,5,7),(1,6,4),(1,7,6),(1,8,7),(1,9,4),
(2,1,7),(2,2,7),(2,3,7),(2,4,7),(2,5,6),(2,6,5),(2,7,7),(2,8,7),(2,9,7),
(3,1,7),(3,2,7),(3,3,2),(3,4,2),(3,5,7),(3,6,7),(3,7,6),(3,8,7),(3,9,4),
(4,1,7),(4,2,6),(4,3,4),(4,4,2),(4,5,7),(4,6,6),(4,7,6),(4,8,7),(4,9,6),
(5,1,7),(5,2,7),(5,3,4),(5,4,4),(5,5,6),(5,6,5),(5,7,6),(5,8,7),(5,9,6),
(6,1,7),(6,2,6),(6,3,6),(6,4,6),(6,5,7),(6,6,6),(6,7,5),(6,8,7),(6,9,6);
Dari databse yang sudah dibuat, kita bisa membuat script php untuk membuat koneksi ke database server dengan extension mysqli secara sederhana sebagai berikut:
<?php
//-- database configurations
$dbhost='localhost';
$dbuser='root';
$dbpass='';
$dbname='db_dss';
//-- database connections
$db=new mysqli($dbhost,$dbuser,$dbpass,$dbname);
//-- halt and show error message if connection fail
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.
Sebelum melangkah ke pemrograman yang lebih lanjut, disiapkan dulu data-data yang akan diolah. Data-data tersebut diambil dari database yang sudah dibuat sebelumnya. Data-data yang disiapkan adalah data alternatif, sub-kriteria dan data nilai untuk tiap-tiap alternatif (data evaluasi). Data-data tersebut dimasukkan ke dalam variable array untuk selanjutnya akan digunakan dipemrograman berikutnya.
<?php
$sql="SELECT
a.id_alternative,c.name AS alternative, c.code,
a.id_sub_criteria,a.value,
b.id_criteria, b.id_type, b.p,b.q,b.s
FROM
pro_evaluations a
JOIN pro_sub_criterias b USING(id_sub_criteria)
JOIN pro_alternatives c USING(id_alternative)
ORDER BY
a.id_alternative,a.id_sub_criteria";
$result=$db->query($sql);
$data=array();
$alternative='';
$alternatives=array();
$sub='';
$subs=array();
while($r=$result->fetch_object()){
if($sub!=$r->id_sub_criteria){
$subs[$r->id_sub_criteria]=array(
'type'=>$r->id_type,
'p'=>$r->p,
'q'=>$r->q,
's'=>$r->s
);
}
if($alternative!=$r->code){
$alternative=$r->code;
$alternatives[$r->code]=$r->alternative;
$data[$r->code]=array();
}
$data[$r->code][$r->id_sub_criteria]=$r->value;
}
?>
Dengan menggunakan persamaan [PMT-01], ditentukan nilai deviasi dari masing-masing kriteria/subkriteria dari suatu alternatif terhadap alternatif yang lainnya.
<?php
$d=array();
foreach($alternatives as $code_A=>$name_A){
$d[$code_A]=array();
foreach($alternatives as $code_B=>$name_B){
if($code_A!=$code_B){
$d[$code_A][$code_B]=array();
foreach($subs as $sub=>$v){
$d[$code_A][$code_B][$sub]=abs($data[$code_A][$sub]-$data[$code_B][$sub]);
}
}
}
}
?>
Dari hasil perhitungan nilai deviasi pada langkah sebelumnya, dan mengacu pada persamaan [PMT-02] serta mengaplikasikan fungsi preferensi yang sesuai (lihat: Tipe-tipe Kriteria Dasar Fungsi Preferensi] maka dapat dihitung nilai-nilai preferensinya.
Untuk keperluan penghitungan nilai preferensi dibuat satu fungsi preference()
, dengan parameter masukan berupa nilai dan data sesuai tipe preferensinya, sebagai berikut:
<?php
function preference($value,$sub){
if($sub['type']==1){ //-- usual`
return $value==0?0:1;
}elseif($sub['type']==2){ //-- linear
return $value==0?0:($value>$sub['p']?1:abs($value/$sub['p']));
}elseif($sub['type']==3){ //-- quasi
return $value<=$sub['q']?0:1;
}elseif($sub['type']==4){ //-- linear quasi
return $value<$sub['q']?0:($value>$sub['p']?1:abs($value/($sub['p']-$sub['q'])));
}elseif($sub['type']==5){ //-- level
return $value==$sub['q']?0:($value>$sub['p']?1:0.5);
}elseif($sub['type']==6){ //-- gaussian
return $value==0?0:1-exp(-1*pow($value,2)/(2*pow($sub['s'],2)));
}
}
?>
Sehingga dapat ditentukan nilai-nilai preferensi sebagai berikut :
<?php
$P=array();
foreach($alternatives as $code_A=>$name_A){
$P[$code_A]=array();
foreach($alternatives as $code_B=>$name_B){
if($code_A!=$code_B){
$P[$code_A][$code_B]=array();
foreach($subs as $sub=>$v){
$P[$code_A][$code_B][$sub]=preference($d[$code_A][$code_B][$sub],$subs[$sub]);
}
}
}
}
?>
Karena dalam kasus ini nilai semua bobot preferensinya dianggap sama dengan 1 (satu) maka dapat diabaikan, sehingga nilai Indeks Preferensi Global-nya sesuai persamaan [PMT-03] dapat dihitung sebagai berikut:
<?php
$j=count($subs);
$sigma=array();
foreach($alternatives as $code_A=>$name_A){
$sigma[$code_A]=array();
foreach($alternatives as $code_B=>$name_B){
if($code_A!=$code_B){
$sigma[$code_A][$code_B]=array_sum($P[$code_A][$code_B])/$j;
}
}
}
?>
Langkah berikutnya adalah menghitung aliran perangkingan dan peringkat parsialnya, dalam hal ini akan dihitung nilai leaving flow [PMT-04 dan nilai entering flow [PMT-05]
<?php
//-- menghitung Leaving Flow
$leaving_flow=array();
$devider=count($sigma)-1;
foreach($sigma as $code_A=>$value_A){
$leaving_flow[$code_A]=array_sum($value_A)/$devider;
}
//-- menghitung Entering Flow
$entering_flow=array();
foreach($sigma as $code_A=>$item_A){
foreach($item_A as $code_B=>$value_B){
if(!isset($entering_flow[$code_B])) $entering_flow[$code_B]=0;
$entering_flow[$code_B]+=$value_B;
}
}
foreach($sigma as $code_A=>$value_A){
$entering_flow[$code_A]/=$devider;
}
?>
Langkah terakhir adalah menghitung Net-FLow (Aliran perangkingan bersih) dan peringkat lengkap-nya
<?php
//-- Menghitung Net-Flow
$net_flow=array();
foreach($leaving_flow as $code_A=>$value_A){
$net_flow[$code_A]=$value_A - $entering_flow[$code_A];
}
//-- Menentukan peringkat lengkapnya
arsort($net_flow);
?>
PROMETHEE memiliki kelebihan dalam proses perangkingan yang menggunakan data kuantitatif maupun data kualitatif. Kelemahan dari metode PROMETHEE yaitu tidak dapat menangani masalah dalam pemilihan alternatif optimal dan membutuhkan fungsi tambahan
Dan (bagi) orang-orang yang menerima (mematuhi) seruan Tuhannya dan mendirikan shalat sedang urusan mereka (diputuskan) dengan musyawarat antara mereka dan mereka menafkahkan sebagian dari rezeki yang Kami berikan kepada mereka.