Pemilihan Bibit Kelapa Sawit Metode Promethee

147

Pemilihan Bibit Kelapa Sawit Metode Promethee

Metode Promethee

The Preference Ranking Organization METHod untuk Enrichment of Evaluations dan analisis geometris komplemen komperatifnya untuk bantuan interaktif lebih dikenal sebagai metode Promethee dan Gaia [1].

Berdasarkan matematika dan sosiologi, metode Promethee dan Gaia dikembangkan pada awal tahun 1980-an dan telah dipelajari dan disempurnakan secara ekstensif sejak saat itu.

Ini memiliki aplikasi khusus dalam pengambilan keputusan, dan digunakan di seluruh dunia dalam berbagai skenario keputusan, di bidang-bidang seperti bisnis, lembaga pemerintah, transportasi, kesehatan dan pendidikan.

Daripada menunjukkan keputusan “benar”, metode Promethee dan Gaia membantu pengambil keputusan menemukan alternatif yang paling sesuai dengan tujuan mereka dan pemahaman mereka tentang masalah. Ini menyediakan kerangka kerja yang komprehensif dan rasional untuk menyusun masalah keputusan, mengidentifikasi dan mengukur konflik dan sinergi, kelompok tindakan, dan menyoroti alternatif utama dan alasan terstruktur di belakang.

Artikel bagus tentang promethee ada disini : http://cahyadsn.dev.php.or.id/extra/promethee.php

contoh perhitungan promethee bentuk file bisa didownload disini : https://wahyudisetiawan.files.wordpress.com/2009/08/contoh-perhitungan-metode-promethee.odt

 

Contoh implementasi DSS (Decision Support System) dengan metode PROMETHEE menggunakan PHP dan MySQL

 

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 hardisk external.

[ author : cahya dsn, published on : June 28, 2017 updated on : March 22, 2018]

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 criteria 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).

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;

Membuat Data Tabel Alternatif

Tabel alternatif (promethee_alternatives) digunakan untuk menyimpan data-data alternatif dari kasus yang akan dihitung. Struktur tabel dasarnya adalah sebagai berikut :

DROP TABLE IF EXISTS promethee_alternatives;
CREATE TABLE IF NOT EXISTS promethee_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 promethee_alternatives(id_alternative,name,code)
VALUES 
(1,'Lacie Rugged Triple','A'),
(2,'WD My Passport','B'),
(3,'Toshiba Canvio Simple','C'),
(4,'Seagate','D'),
(5,'Transcend StoreJet','E'),
(6,'A-Data DashDrive','F'),
(7,'Hitachi Touro Mobile','G'),
(8,'Buffalo Mini Station','H'),
(9,'Spectra Flash RapidStore','I'),
(10,'Fujitsu','J');

Pada tabel promethee_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.

Membuat Data Tabel Kriteria

Tabel kriteria promethee_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 promethee_criterias;
CREATE TABLE IF NOT EXISTS promethee_criterias (
  id_criteria smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  criteria varchar(30) NOT NULL,
  PRIMARY KEY (id_criteria)
);

INSERT INTO promethee_criterias(id_criteria,criteria)
VALUES 
(1,'Kapasitas'),
(2,'Kecepatan Transfer'),
(3,'Dimensi'),
(4,'Tipe USB');

Membuat Data Tabel Tipe Preferensi

Berdasarkan Tipe-tipe Kriteria Dasar Fungsi Preferensi yang dijelaskan di atas, dibuat tabel tipe preferensi promethee_types sebagai berikut:

DROP TABLE IF EXISTS promethee_types;
CREATE TABLE IF NOT EXISTS promethee_types (
  id_type smallint(5) unsigned NOT NULL AUTO_INCREMENT,
  type varchar(30) NOT NULL,
  PRIMARY KEY (id_type)
);
INSERT INTO promethee_types(id_type,type)
VALUES
(1,'Usual'),
(2,'Linear'),
(3,'Quasi'),
(4,'Linear Quasi'),
(5,'Level'),
(6,'Gaussian');

Membuat Data Tabel Sub Kriteria

Dari data pada Tabel 1 dibuatkan tabel sub kriteria promethee_sub_criterias yang berisi data sub kriteria secara lebih detail, sebagai berikut :

DROP TABLE IF EXISTS promethee_sub_criterias;
CREATE TABLE IF NOT EXISTS promethee_sub_criterias (
  id_sub_criteria smallint(11) unsigned NOT NULL AUTO_INCREMENT,
  id_criteria smallint(5) unsigned 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 promethee_sub_criterias(id_sub_criteria,id_criteria,id_type,min_max,p,q,s)
VALUES
(1,1,4,'max',7,1,null),
(2,1,3,'max',7,5,null),
(3,2,2,'max',7,null,null),
(4,2,2,'max',7,null,null),
(5,3,5,'max',7,1,null),
(6,3,5,'max',7,1,null),
(7,4,6,'max',null,null,1),
(8,4,1,'max',null,null,null);

Membuat Data Tabel Evaluasi

Pemetaan nilai data-data dari data alternatif yang akan dihitung dimasukkan dalam tabel promethee_evaluations sebagai berikut:

DROP TABLE IF EXISTS promethee_evaluations;
CREATE TABLE IF NOT EXISTS promethee_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 promethee_evaluations(id_alternative,id_sub_criteria,value)
VALUES
(1,1,7),(1,2,7),(1,3,7),(1,4,7),(1,5,6),(1,6,5),(1,7,7),(1,8,7),
(2,1,7),(2,2,7),(2,3,4),(2,4,2),(2,5,7),(2,6,4),(2,7,6),(2,8,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),
(4,1,7),(4,2,5),(4,3,6),(4,4,6),(4,5,7),(4,6,6),(4,7,5),(4,8,7),
(5,1,7),(5,2,7),(5,3,5),(5,4,5),(5,5,6),(5,6,6),(5,7,6),(5,8,7),
(6,1,7),(6,2,7),(6,3,4),(6,4,4),(6,5,6),(6,6,5),(6,7,6),(6,8,7),
(7,1,7),(7,2,6),(7,3,1),(7,4,4),(7,5,7),(7,6,6),(7,7,5),(7,8,7),
(8,1,7),(8,2,6),(8,3,6),(8,4,6),(8,5,7),(8,6,6),(8,7,5),(8,8,7),
(9,1,7),(9,2,6),(9,3,4),(9,4,2),(9,5,7),(9,6,6),(9,7,6),(9,8,7),
(10,1,7),(10,2,4),(10,3,3),(10,4,3),(10,5,7),(10,6,7),(10,7,6),(10,8,7);

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.

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

promethee_evaluations a

JOIN promethee_sub_criterias b USING(id_sub_criteria)

JOIN promethee_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;

}

?>

 

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

}

}

}

}

?>

 

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

}

}

}

}

?>

 

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;

}

}

}

?>

 

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;

}

?>

 

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.
  • 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.
  • 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 , 2003Fuzzy 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.

 

 

Printscreen Promethee

methode promethee

spk metode promethee

Anda mungkin ingin membaca ini