Decision Support System Series

Preference Ranking Organization METHod for Enrichment Evaluation

Contoh implementasi DSS (Decision Support System) dengan metode PROMETHEE menggunakan PHP dan MySQL untuk pemilihan hardisk eksternal.

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

minerva minerva donasi donation

Mau lihat artikel lainya? Dapatkan artikel-artikel lain seputar pemrograman website di sini, dan dapatkan ide-ide baru

2.4. Perhitungan Manual

Berdasarkan data yang disajikan dalam Tabel 1, dilakukan perhitungan dengan menggunakan metoda PROMETHEE sebagai berikut:

2.4.1. Penentuan Nilai Deviasi berdasarkan Perbandingan Berpasangan 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 :

Nilai Deviasi dj(1,2)

dHDD Capacity(1,2) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(1,2) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(1,2) = 4 - 7 = -3 -> linear quasi -> H(d)= 0
dRead Speed(1,2) = 2 - 7 = -5 -> linear -> H(d)= 0.714
dHeight(1,2) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(1,2) = 4 - 5 = -1 -> level -> H(d)= 0.5
dInterface(1,2) = 6 - 7 = -1 -> gaussian -> H(d)= 0.393
dFile System(1,2) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(1,2) = 4 - 7 = -3 -> linear -> H(d)= 0.429
H(dj(1,2)) = 1/9 * (0+0+0+0.714+0+0.5+0.393+0+0.429) = 2.036

Nilai Deviasi dj(1,3)

dHDD Capacity(1,3) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(1,3) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(1,3) = 4 - 2 = 2 -> linear quasi -> H(d)= 0.333
dRead Speed(1,3) = 2 - 2 = 0 -> linear -> H(d)= 0
dHeight(1,3) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(1,3) = 4 - 7 = -3 -> level -> H(d)= 0.5
dInterface(1,3) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(1,3) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(1,3) = 4 - 4 = 0 -> linear -> H(d)= 0
H(dj(1,3)) = 1/9 * (0+0+0.333+0+0.5+0.5+0+0+0) = 1.333

Nilai Deviasi dj(1,4)

dHDD Capacity(1,4) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(1,4) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(1,4) = 4 - 4 = 0 -> linear quasi -> H(d)= 0
dRead Speed(1,4) = 2 - 2 = 0 -> linear -> H(d)= 0
dHeight(1,4) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(1,4) = 4 - 6 = -2 -> level -> H(d)= 0.5
dInterface(1,4) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(1,4) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(1,4) = 4 - 6 = -2 -> linear -> H(d)= 0.286
H(dj(1,4)) = 1/9 * (0+0+0+0+0.5+0.5+0+0+0.286) = 1.286

Nilai Deviasi dj(1,5)

dHDD Capacity(1,5) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(1,5) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(1,5) = 4 - 4 = 0 -> linear quasi -> H(d)= 0
dRead Speed(1,5) = 2 - 4 = -2 -> linear -> H(d)= 0.286
dHeight(1,5) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(1,5) = 4 - 5 = -1 -> level -> H(d)= 0.5
dInterface(1,5) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(1,5) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(1,5) = 4 - 6 = -2 -> linear -> H(d)= 0.286
H(dj(1,5)) = 1/9 * (0+0+0+0.286+0+0.5+0+0+0.286) = 1.071

Nilai Deviasi dj(1,6)

dHDD Capacity(1,6) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(1,6) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(1,6) = 4 - 6 = -2 -> linear quasi -> H(d)= 0
dRead Speed(1,6) = 2 - 6 = -4 -> linear -> H(d)= 0.571
dHeight(1,6) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(1,6) = 4 - 6 = -2 -> level -> H(d)= 0.5
dInterface(1,6) = 6 - 5 = 1 -> gaussian -> H(d)= 0.393
dFile System(1,6) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(1,6) = 4 - 6 = -2 -> linear -> H(d)= 0.286
H(dj(1,6)) = 1/9 * (0+0+0+0.571+0.5+0.5+0.393+0+0.286) = 2.251

Nilai Deviasi dj(2,1)

dHDD Capacity(2,1) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(2,1) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(2,1) = 7 - 4 = 3 -> linear quasi -> H(d)= 0.5
dRead Speed(2,1) = 7 - 2 = 5 -> linear -> H(d)= 0.714
dHeight(2,1) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(2,1) = 5 - 4 = 1 -> level -> H(d)= 0
dInterface(2,1) = 7 - 6 = 1 -> gaussian -> H(d)= 0.393
dFile System(2,1) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(2,1) = 7 - 4 = 3 -> linear -> H(d)= 0.429
H(dj(2,1)) = 1/9 * (0+0+0.5+0.714+0.5+0+0.393+0+0.429) = 2.536

Nilai Deviasi dj(2,3)

dHDD Capacity(2,3) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(2,3) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(2,3) = 7 - 2 = 5 -> linear quasi -> H(d)= 0.833
dRead Speed(2,3) = 7 - 2 = 5 -> linear -> H(d)= 0.714
dHeight(2,3) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(2,3) = 5 - 7 = -2 -> level -> H(d)= 0.5
dInterface(2,3) = 7 - 6 = 1 -> gaussian -> H(d)= 0.393
dFile System(2,3) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(2,3) = 7 - 4 = 3 -> linear -> H(d)= 0.429
H(dj(2,3)) = 1/9 * (0+0+0.833+0.714+0.5+0.5+0.393+0+0.429) = 3.37

Nilai Deviasi dj(2,4)

dHDD Capacity(2,4) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(2,4) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(2,4) = 7 - 4 = 3 -> linear quasi -> H(d)= 0.5
dRead Speed(2,4) = 7 - 2 = 5 -> linear -> H(d)= 0.714
dHeight(2,4) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(2,4) = 5 - 6 = -1 -> level -> H(d)= 0.5
dInterface(2,4) = 7 - 6 = 1 -> gaussian -> H(d)= 0.393
dFile System(2,4) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(2,4) = 7 - 6 = 1 -> linear -> H(d)= 0.143
H(dj(2,4)) = 1/9 * (0+0+0.5+0.714+0.5+0.5+0.393+0+0.143) = 2.751

Nilai Deviasi dj(2,5)

dHDD Capacity(2,5) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(2,5) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(2,5) = 7 - 4 = 3 -> linear quasi -> H(d)= 0.5
dRead Speed(2,5) = 7 - 4 = 3 -> linear -> H(d)= 0.429
dHeight(2,5) = 6 - 6 = 0 -> level -> H(d)= 0.5
dWidth(2,5) = 5 - 5 = 0 -> level -> H(d)= 0.5
dInterface(2,5) = 7 - 6 = 1 -> gaussian -> H(d)= 0.393
dFile System(2,5) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(2,5) = 7 - 6 = 1 -> linear -> H(d)= 0.143
H(dj(2,5)) = 1/9 * (0+0+0.5+0.429+0.5+0.5+0.393+0+0.143) = 2.465

Nilai Deviasi dj(2,6)

dHDD Capacity(2,6) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(2,6) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(2,6) = 7 - 6 = 1 -> linear quasi -> H(d)= 0.167
dRead Speed(2,6) = 7 - 6 = 1 -> linear -> H(d)= 0.143
dHeight(2,6) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(2,6) = 5 - 6 = -1 -> level -> H(d)= 0.5
dInterface(2,6) = 7 - 5 = 2 -> gaussian -> H(d)= 0.865
dFile System(2,6) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(2,6) = 7 - 6 = 1 -> linear -> H(d)= 0.143
H(dj(2,6)) = 1/9 * (0+0+0.167+0.143+0.5+0.5+0.865+0+0.143) = 2.317

Nilai Deviasi dj(3,1)

dHDD Capacity(3,1) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(3,1) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(3,1) = 2 - 4 = -2 -> linear quasi -> H(d)= 0
dRead Speed(3,1) = 2 - 2 = 0 -> linear -> H(d)= 0
dHeight(3,1) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(3,1) = 7 - 4 = 3 -> level -> H(d)= 0.5
dInterface(3,1) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(3,1) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(3,1) = 4 - 4 = 0 -> linear -> H(d)= 0
H(dj(3,1)) = 1/9 * (0+0+0+0+0.5+0.5+0+0+0) = 1

Nilai Deviasi dj(3,2)

dHDD Capacity(3,2) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(3,2) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(3,2) = 2 - 7 = -5 -> linear quasi -> H(d)= 0
dRead Speed(3,2) = 2 - 7 = -5 -> linear -> H(d)= 0.714
dHeight(3,2) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(3,2) = 7 - 5 = 2 -> level -> H(d)= 0.5
dInterface(3,2) = 6 - 7 = -1 -> gaussian -> H(d)= 0.393
dFile System(3,2) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(3,2) = 4 - 7 = -3 -> linear -> H(d)= 0.429
H(dj(3,2)) = 1/9 * (0+0+0+0.714+0+0.5+0.393+0+0.429) = 2.036

Nilai Deviasi dj(3,4)

dHDD Capacity(3,4) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(3,4) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(3,4) = 2 - 4 = -2 -> linear quasi -> H(d)= 0
dRead Speed(3,4) = 2 - 2 = 0 -> linear -> H(d)= 0
dHeight(3,4) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(3,4) = 7 - 6 = 1 -> level -> H(d)= 0
dInterface(3,4) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(3,4) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(3,4) = 4 - 6 = -2 -> linear -> H(d)= 0.286
H(dj(3,4)) = 1/9 * (0+0+0+0+0.5+0+0+0+0.286) = 0.786

Nilai Deviasi dj(3,5)

dHDD Capacity(3,5) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(3,5) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(3,5) = 2 - 4 = -2 -> linear quasi -> H(d)= 0
dRead Speed(3,5) = 2 - 4 = -2 -> linear -> H(d)= 0.286
dHeight(3,5) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(3,5) = 7 - 5 = 2 -> level -> H(d)= 0.5
dInterface(3,5) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(3,5) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(3,5) = 4 - 6 = -2 -> linear -> H(d)= 0.286
H(dj(3,5)) = 1/9 * (0+0+0+0.286+0+0.5+0+0+0.286) = 1.071

Nilai Deviasi dj(3,6)

dHDD Capacity(3,6) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(3,6) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(3,6) = 2 - 6 = -4 -> linear quasi -> H(d)= 0
dRead Speed(3,6) = 2 - 6 = -4 -> linear -> H(d)= 0.571
dHeight(3,6) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(3,6) = 7 - 6 = 1 -> level -> H(d)= 0
dInterface(3,6) = 6 - 5 = 1 -> gaussian -> H(d)= 0.393
dFile System(3,6) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(3,6) = 4 - 6 = -2 -> linear -> H(d)= 0.286
H(dj(3,6)) = 1/9 * (0+0+0+0.571+0.5+0+0.393+0+0.286) = 1.751

Nilai Deviasi dj(4,1)

dHDD Capacity(4,1) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(4,1) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(4,1) = 4 - 4 = 0 -> linear quasi -> H(d)= 0
dRead Speed(4,1) = 2 - 2 = 0 -> linear -> H(d)= 0
dHeight(4,1) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(4,1) = 6 - 4 = 2 -> level -> H(d)= 0.5
dInterface(4,1) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(4,1) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(4,1) = 6 - 4 = 2 -> linear -> H(d)= 0.286
H(dj(4,1)) = 1/9 * (0+0+0+0+0.5+0.5+0+0+0.286) = 1.286

Nilai Deviasi dj(4,2)

dHDD Capacity(4,2) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(4,2) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(4,2) = 4 - 7 = -3 -> linear quasi -> H(d)= 0
dRead Speed(4,2) = 2 - 7 = -5 -> linear -> H(d)= 0.714
dHeight(4,2) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(4,2) = 6 - 5 = 1 -> level -> H(d)= 0
dInterface(4,2) = 6 - 7 = -1 -> gaussian -> H(d)= 0.393
dFile System(4,2) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(4,2) = 6 - 7 = -1 -> linear -> H(d)= 0.143
H(dj(4,2)) = 1/9 * (0+0+0+0.714+0+0+0.393+0+0.143) = 1.251

Nilai Deviasi dj(4,3)

dHDD Capacity(4,3) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(4,3) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(4,3) = 4 - 2 = 2 -> linear quasi -> H(d)= 0.333
dRead Speed(4,3) = 2 - 2 = 0 -> linear -> H(d)= 0
dHeight(4,3) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(4,3) = 6 - 7 = -1 -> level -> H(d)= 0.5
dInterface(4,3) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(4,3) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(4,3) = 6 - 4 = 2 -> linear -> H(d)= 0.286
H(dj(4,3)) = 1/9 * (0+0+0.333+0+0.5+0.5+0+0+0.286) = 1.619

Nilai Deviasi dj(4,5)

dHDD Capacity(4,5) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(4,5) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(4,5) = 4 - 4 = 0 -> linear quasi -> H(d)= 0
dRead Speed(4,5) = 2 - 4 = -2 -> linear -> H(d)= 0.286
dHeight(4,5) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(4,5) = 6 - 5 = 1 -> level -> H(d)= 0
dInterface(4,5) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(4,5) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(4,5) = 6 - 6 = 0 -> linear -> H(d)= 0
H(dj(4,5)) = 1/9 * (0+0+0+0.286+0+0+0+0+0) = 0.286

Nilai Deviasi dj(4,6)

dHDD Capacity(4,6) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(4,6) = 6 - 6 = 0 -> quasi -> H(d)= 0
dWrite Speed(4,6) = 4 - 6 = -2 -> linear quasi -> H(d)= 0
dRead Speed(4,6) = 2 - 6 = -4 -> linear -> H(d)= 0.571
dHeight(4,6) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(4,6) = 6 - 6 = 0 -> level -> H(d)= 0.5
dInterface(4,6) = 6 - 5 = 1 -> gaussian -> H(d)= 0.393
dFile System(4,6) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(4,6) = 6 - 6 = 0 -> linear -> H(d)= 0
H(dj(4,6)) = 1/9 * (0+0+0+0.571+0.5+0.5+0.393+0+0) = 1.965

Nilai Deviasi dj(5,1)

dHDD Capacity(5,1) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(5,1) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(5,1) = 4 - 4 = 0 -> linear quasi -> H(d)= 0
dRead Speed(5,1) = 4 - 2 = 2 -> linear -> H(d)= 0.286
dHeight(5,1) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(5,1) = 5 - 4 = 1 -> level -> H(d)= 0
dInterface(5,1) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(5,1) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(5,1) = 6 - 4 = 2 -> linear -> H(d)= 0.286
H(dj(5,1)) = 1/9 * (0+0+0+0.286+0.5+0+0+0+0.286) = 1.071

Nilai Deviasi dj(5,2)

dHDD Capacity(5,2) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(5,2) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(5,2) = 4 - 7 = -3 -> linear quasi -> H(d)= 0
dRead Speed(5,2) = 4 - 7 = -3 -> linear -> H(d)= 0.429
dHeight(5,2) = 6 - 6 = 0 -> level -> H(d)= 0.5
dWidth(5,2) = 5 - 5 = 0 -> level -> H(d)= 0.5
dInterface(5,2) = 6 - 7 = -1 -> gaussian -> H(d)= 0.393
dFile System(5,2) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(5,2) = 6 - 7 = -1 -> linear -> H(d)= 0.143
H(dj(5,2)) = 1/9 * (0+0+0+0.429+0.5+0.5+0.393+0+0.143) = 1.965

Nilai Deviasi dj(5,3)

dHDD Capacity(5,3) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(5,3) = 7 - 7 = 0 -> quasi -> H(d)= 0
dWrite Speed(5,3) = 4 - 2 = 2 -> linear quasi -> H(d)= 0.333
dRead Speed(5,3) = 4 - 2 = 2 -> linear -> H(d)= 0.286
dHeight(5,3) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(5,3) = 5 - 7 = -2 -> level -> H(d)= 0.5
dInterface(5,3) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(5,3) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(5,3) = 6 - 4 = 2 -> linear -> H(d)= 0.286
H(dj(5,3)) = 1/9 * (0+0+0.333+0.286+0.5+0.5+0+0+0.286) = 1.905

Nilai Deviasi dj(5,4)

dHDD Capacity(5,4) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(5,4) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(5,4) = 4 - 4 = 0 -> linear quasi -> H(d)= 0
dRead Speed(5,4) = 4 - 2 = 2 -> linear -> H(d)= 0.286
dHeight(5,4) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(5,4) = 5 - 6 = -1 -> level -> H(d)= 0.5
dInterface(5,4) = 6 - 6 = 0 -> gaussian -> H(d)= 0
dFile System(5,4) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(5,4) = 6 - 6 = 0 -> linear -> H(d)= 0
H(dj(5,4)) = 1/9 * (0+0+0+0.286+0.5+0.5+0+0+0) = 1.286

Nilai Deviasi dj(5,6)

dHDD Capacity(5,6) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(5,6) = 7 - 6 = 1 -> quasi -> H(d)= 0
dWrite Speed(5,6) = 4 - 6 = -2 -> linear quasi -> H(d)= 0
dRead Speed(5,6) = 4 - 6 = -2 -> linear -> H(d)= 0.286
dHeight(5,6) = 6 - 7 = -1 -> level -> H(d)= 0.5
dWidth(5,6) = 5 - 6 = -1 -> level -> H(d)= 0.5
dInterface(5,6) = 6 - 5 = 1 -> gaussian -> H(d)= 0.393
dFile System(5,6) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(5,6) = 6 - 6 = 0 -> linear -> H(d)= 0
H(dj(5,6)) = 1/9 * (0+0+0+0.286+0.5+0.5+0.393+0+0) = 1.679

Nilai Deviasi dj(6,1)

dHDD Capacity(6,1) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(6,1) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(6,1) = 6 - 4 = 2 -> linear quasi -> H(d)= 0.333
dRead Speed(6,1) = 6 - 2 = 4 -> linear -> H(d)= 0.571
dHeight(6,1) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(6,1) = 6 - 4 = 2 -> level -> H(d)= 0.5
dInterface(6,1) = 5 - 6 = -1 -> gaussian -> H(d)= 0.393
dFile System(6,1) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(6,1) = 6 - 4 = 2 -> linear -> H(d)= 0.286
H(dj(6,1)) = 1/9 * (0+0+0.333+0.571+0.5+0.5+0.393+0+0.286) = 2.584

Nilai Deviasi dj(6,2)

dHDD Capacity(6,2) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(6,2) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(6,2) = 6 - 7 = -1 -> linear quasi -> H(d)= 0
dRead Speed(6,2) = 6 - 7 = -1 -> linear -> H(d)= 0.143
dHeight(6,2) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(6,2) = 6 - 5 = 1 -> level -> H(d)= 0
dInterface(6,2) = 5 - 7 = -2 -> gaussian -> H(d)= 0.865
dFile System(6,2) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(6,2) = 6 - 7 = -1 -> linear -> H(d)= 0.143
H(dj(6,2)) = 1/9 * (0+0+0+0.143+0+0+0.865+0+0.143) = 1.15

Nilai Deviasi dj(6,3)

dHDD Capacity(6,3) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(6,3) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(6,3) = 6 - 2 = 4 -> linear quasi -> H(d)= 0.667
dRead Speed(6,3) = 6 - 2 = 4 -> linear -> H(d)= 0.571
dHeight(6,3) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(6,3) = 6 - 7 = -1 -> level -> H(d)= 0.5
dInterface(6,3) = 5 - 6 = -1 -> gaussian -> H(d)= 0.393
dFile System(6,3) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(6,3) = 6 - 4 = 2 -> linear -> H(d)= 0.286
H(dj(6,3)) = 1/9 * (0+0+0.667+0.571+0.5+0.5+0.393+0+0.286) = 2.917

Nilai Deviasi dj(6,4)

dHDD Capacity(6,4) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(6,4) = 6 - 6 = 0 -> quasi -> H(d)= 0
dWrite Speed(6,4) = 6 - 4 = 2 -> linear quasi -> H(d)= 0.333
dRead Speed(6,4) = 6 - 2 = 4 -> linear -> H(d)= 0.571
dHeight(6,4) = 7 - 7 = 0 -> level -> H(d)= 0.5
dWidth(6,4) = 6 - 6 = 0 -> level -> H(d)= 0.5
dInterface(6,4) = 5 - 6 = -1 -> gaussian -> H(d)= 0.393
dFile System(6,4) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(6,4) = 6 - 6 = 0 -> linear -> H(d)= 0
H(dj(6,4)) = 1/9 * (0+0+0.333+0.571+0.5+0.5+0.393+0+0) = 2.298

Nilai Deviasi dj(6,5)

dHDD Capacity(6,5) = 7 - 7 = 0 -> linear quasi -> H(d)= 0
dSystem Requirement(6,5) = 6 - 7 = -1 -> quasi -> H(d)= 0
dWrite Speed(6,5) = 6 - 4 = 2 -> linear quasi -> H(d)= 0.333
dRead Speed(6,5) = 6 - 4 = 2 -> linear -> H(d)= 0.286
dHeight(6,5) = 7 - 6 = 1 -> level -> H(d)= 0
dWidth(6,5) = 6 - 5 = 1 -> level -> H(d)= 0
dInterface(6,5) = 5 - 6 = -1 -> gaussian -> H(d)= 0.393
dFile System(6,5) = 7 - 7 = 0 -> usual -> H(d)= 0
dHarga(6,5) = 6 - 6 = 0 -> linear -> H(d)= 0
H(dj(6,5)) = 1/9 * (0+0+0.333+0.286+0+0+0.393+0+0) = 1.013

2.4.2. Perhitungan Nilai Leaving Flow

Perhitungan Leaving Flow A1

$\phi^{+}_{1}=\frac{1}{(6-1)}*(2.036+1.333+1.286+1.071+2.251)\\\phi^{+}_{1}=\frac{1}{5}*(7.977)\\\phi^{+}_{1}=1.595$

Perhitungan Leaving Flow A2

$\phi^{+}_{2}=\frac{1}{(6-1)}*(2.536+3.37+2.751+2.465+2.317)\\\phi^{+}_{2}=\frac{1}{5}*(13.439)\\\phi^{+}_{2}=2.688$

Perhitungan Leaving Flow A3

$\phi^{+}_{3}=\frac{1}{(6-1)}*(1+2.036+0.786+1.071+1.751)\\\phi^{+}_{3}=\frac{1}{5}*(6.644)\\\phi^{+}_{3}=1.329$

Perhitungan Leaving Flow A4

$\phi^{+}_{4}=\frac{1}{(6-1)}*(1.286+1.251+1.619+0.286+1.965)\\\phi^{+}_{4}=\frac{1}{5}*(6.406)\\\phi^{+}_{4}=1.281$

Perhitungan Leaving Flow A5

$\phi^{+}_{5}=\frac{1}{(6-1)}*(1.071+1.965+1.905+1.286+1.679)\\\phi^{+}_{5}=\frac{1}{5}*(7.906)\\\phi^{+}_{5}=1.581$

Perhitungan Leaving Flow A6

$\phi^{+}_{6}=\frac{1}{(6-1)}*(2.584+1.15+2.917+2.298+1.013)\\\phi^{+}_{6}=\frac{1}{5}*(9.962)\\\phi^{+}_{6}=1.992$

2.4.3. Menghitung Nilai Entering Flow

Perhitungan Entering Flow A1

φ-1=1/(6-1)*(2.536+1+1.286+1.071+2.584)
φ-1=1/5*(8.477)
φ-1=1.6954829742102

Perhitungan Entering Flow A2

φ-2=1/(6-1)*(2.036+2.036+1.251+1.965+1.15)
φ-2=1/5*(8.439)
φ-2=1.6877084155826

Perhitungan Entering Flow A3

φ-3=1/(6-1)*(1.333+3.37+1.619+1.905+2.917)
φ-3=1/5*(11.144)
φ-3=2.2288163075435

Perhitungan Entering Flow A4

φ-4=1/(6-1)*(1.286+2.751+0.786+1.286+2.298)
φ-4=1/5*(8.406)
φ-4=1.6811972599245

Perhitungan Entering Flow A5

φ-5=1/(6-1)*(1.071+2.465+1.071+0.286+1.013)
φ-5=1/5*(5.906)
φ-5=1.1811972599245

Perhitungan Entering Flow A6

φ-6=1/(6-1)*(2.251+2.317+1.751+1.965+1.679)
φ-6=1/5*(9.962)
φ-6=1.9924703203445

2.4.4. Menghitung Nilai Net Flow

Perhitungan Net Flow A1

φ(1) = φ+(1) - φ-(1)
φ(1) = 1.595 - 1.695
φ(1) = -0.1

Perhitungan Net Flow A2

φ(2) = φ+(2) - φ-(2)
φ(2) = 2.688 - 1.688
φ(2) = 1

Perhitungan Net Flow A3

φ(3) = φ+(3) - φ-(3)
φ(3) = 1.329 - 2.229
φ(3) = -0.9

Perhitungan Net Flow A4

φ(4) = φ+(4) - φ-(4)
φ(4) = 1.281 - 1.681
φ(4) = -0.4

Perhitungan Net Flow A5

φ(5) = φ+(5) - φ-(5)
φ(5) = 1.581 - 1.181
φ(5) = 0.4

Perhitungan Net Flow A6

φ(6) = φ+(6) - φ-(6)
φ(6) = 1.992 - 1.992
φ(6) = -0

2.4.5. Perangkingan

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;

3.1. Membuat Data Tabel Alternatif

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.

3.2. Membuat Data Tabel Kriteria

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');

3.3. Membuat Data Tabel Tipe Preferensi

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');

3.4. Membuat Data Tabel Sub Kriteria

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);

3.5. Membuat Data Tabel Evaluasi

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);

4.1. Koneksi ke Database Server

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.

4.2. Menyiapkan Data yang Akan Diolah

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;
}
?>

4.3. Penentuan Deviasi Berdasarkan Perbandingan Berpasangan

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]);
            }
        }
    }
}
?>

4.4 Penerapan Fungsi Preferensi

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]);
            }
        }
    }
}
?>

4.5. Perhitungan Indeks Preferensi Global

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;
        }
    }
}
?>

4.6. Perhitungan Aliran Perangkingan dan Peringkat Parsial (PROMETHEE I)

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;
}

?>

4.7. Perhitungan Aliran Perangkingan Bersih dan Peringkat Lengkap (PROMETHEE II)

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);
?>

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.

QS Asy Syuura (42) : 38

  • Brans, J.P. & Vincke, Ph., (1985) A preference ranking organization method: The PROMETHEE method. Management Science 31: 647–656.
  • Brans, Jean-Pierre. (1998) Promethee Method. Centrum Voor Statistiek Operationeel Onderzoek, Brussel University.Belgia.
  • Brans, J.P. & Mareschal, B., (2005) PROMETHEE Method, Multiple Criteria Decision Analysis: State of the Art Surveys, Springer pp 163-186
  • Ignatius, J. , dkk. (2012) Financial Performance of Iran’s Automotive Sector based on PROMETHEE II. Malaysia : IEEE ICMIT
  • Kusrini. (2007). Konsep dan Aplikasi Sistem Pendukung Keputusan. Yogyakarta: Penerbit Andi.
  • Kusumadewi, S., Hartati, S., Harjoko, A., dan Wardoyo, R. (2006). Fuzzy Multi-Atribute Decision Making (FUZZY MADM). Yogyakarta: Penerbit Graha Ilmu.
  • Mateo, J.R.S.C. (2012) Multi-Criteria Analysis in the Renewable Energy Industry , Springer
  • Tien-Yin Chou, Wen-Tzu Lin, Chao-Yuan Lin, Wen-Chieh Choud dan Pi-Hui Huang, (2004), Application of the PROMETHEE technique to determine depression outlet location and flow direction in DEM, Journal of Hydrology, 287:49–61.
  • Tzeng, Gwo-Hshiung , (2003) Fuzzy MCDM in Past, Present, and Future, Management of Technology, 1:12-18
  • Vermaat, Shelly Cashman. (2008) Discovering Computers "Menjelajah Dunia Komputer" FUNDAMENTAL. Third Edition. Salemba Infotek.