ALGORITMA, FLOWCHART,
IMPLEMENTASI/PSEUDOCODE Algoritma Elimination
And Choice Expressing Reality (ELECTRE)
Rahmaniar
2018130059
keputusan multikriteria yang berasal dari Eropa pada tahun 1960an. ELECTRE
sesuai dengan kriteria dieliminasi dan alternatif yang sesuai dapat dihasilkan.
alternatif namun hanya sedikit kriteria yang dilibatkan (Setiyawati dalam Erwin
jika satu atau lebih kriterianya melebihi (dibandingkan dengan kriteria alternatif
yang lain) dan sama dengan kriteria lain yang tersisa (Kusumadewi, 2006 dalam
……..Algoritma II-1.
……Algoritma II-2.
dimana W adalah
3. Menentukan himpunan concordance dan disordance
Untuk setiap pasang dari alternatif k dan l (k, l = 1,2,3, ..., m dan
……Algoritma II-3.
……Algoritma II-4.
………………….Algoritma II-5.
………….Algoritma II-6.
nilai threshold.
Ckl ≥ c
………….Algoritma II-7.
………….Algoritma II-8.
dinyatakan sebagai:
daripada A1. Sehingga, baris dalam matriks E yang memiliki jumlah ekl=1
(2017:24)).
B. Contoh Aplikasi dengan ELECTRE
ELECTRE.
1. Flowchart
kurang sesuai dengan kriteria dieliminasi dan alternatif yang sesuai dapat
Dalam prosedur ini, setiap atribut diubah menjadi nilai yang comparable
Listing
$bbt = array(0,$nitrogen,$posfor,$kalium,$tekstur);
$rekomtakaran = $this->Rekomedasi_model->get_rekomtakaran()->result();
foreach ($rekomtakaran as $row) {
$arr_N[$row->id] = $row->nitrogen2;
$arr_P[$row->id] = $row->posfor2;
$arr_K[$row->id] = $row->kalium2;
$arr_T[$row->id] = $row->tekstur2;
}
<?php $arr_SQRT[1]=number_format(SQRT(($arr_N[1]*$arr_N[1])+
($arr_N[2]*$arr_N[2]) + ($arr_N[3]*$arr_N[3]) + ($arr_N[4]*$arr_N[4]) +
($arr_N[5]*$arr_N[5]) + ($arr_N[6]*$arr_N[6]) + ($arr_N[7]*$arr_N[7]) +
($arr_N[8]*$arr_N[8]) + ($arr_N[9]*$arr_N[9]) + ($arr_N[10]*$arr_N[10])
+ ($arr_N[11]*$arr_N[11]) + ($arr_N[12]*$arr_N[12]) +
($arr_N[13]*$arr_N[13]) + ($arr_N[14]*$arr_N[14]) +
($arr_N[15]*$arr_N[15]) + ($arr_N[16]*$arr_N[16]) +
($arr_N[17]*$arr_N[17])),2); ?>
Listing
<?php
for ($h=1; $h <= 17; $h++) {
for ($i=1; $i <= 17; $i++) {
for ($j=1; $j <= 4; $j++) {
if ($arr_nor[$j][$h] >= $arr_nor[$j][$i]) {
$arr_ccd[$i][$h]= @$arr_ccd[$i][$h] .'1'. ",";
$arr_XMccd[$i][$h]= @$arr_XMccd[$i][$h] .
$bbt[$j]. ",";
} else {
$arr_ccd[$i][$h]= @$arr_ccd[$i][$h] .'0'. ",";
$arr_XMccd[$i][$h]= @$arr_XMccd[$i][$h] . 0 .
",";
}
}
}
}
for ($i=0; $i <=17 ; $i++) {
$arr_ccd[$i][$i]='-';
}
?>
<!-- N Corcordance -->
Listing
<!--Matriks Corcordance-->
<?php
$thresholdCon=0;
for ($h=1; $h <= 17; $h++) {
for ($i=1; $i <= 17; $i++) {
$arr_Mccd[$i][$h] = array_sum($arr_int = json_decode('[' .
$Mccd1=substr($arr_XMccd[$i][$h], 0, -1) . ']', true));
}
}
for ($h=1; $h <=17 ; $h++) {
$arr_Mccd[$h][$h]='-';
for ($i=1; $i <= 17; $i++) {
$thresholdCon= $arr_Mccd[$i][$h] + @$thresholdCon;
}
}
?>
<!—End Matriks Corcordance-->
<!--Matriks Discordance-->
<?php
$thresholdDis=0;
$x[1]=0;
$y[1]=0;
for ($h=1; $h <= 17; $h++) {
for ($i=1; $i <= 17; $i++) {
for ($j=1; $j <= 4; $j++) {
if ($h !== $i) $x[$j] = @$$x[$j] . ABS($arr_bbt[$j][$h] -
$arr_bbt[$j][$i]);
}
if (MAX($y)==0 or MAX($x)==0)
$arr_Mdcd[$i][$h] = 0; else $arr_Mdcd[$i][$h]
=number_format((MAX($y)/MAX($x)),3);
}
}
for ($h=1; $h <=17 ; $h++) {
$arr_Mdcd[$h][$h]='-';
for ($i=1; $i <= 17; $i++) {
$thresholdDis=$arr_Mdcd[$i][$h] + $thresholdDis;
}
}
?>
<!—End Matriks Discordance-->
Menghasilkan
discordance
Listing
<!—Nilai Threshold-->
<div class="col-sm-6">
<h3 class="block-header">Nilai Threshold Dominan Matriks
Corcordance; <?php echo
$thresholdConFix=number_format(($thresholdCon/(17*17)-1),3);
?></h3>
</div>
<div class="col-sm-6">
<h3 class="block-header">Nilai Threshold Dominan Matriks
Discordance : <?php echo
$thresholdDisFix=number_format(($thresholdDis/(17*17)-
1),3); ?>
</h3>
</div>
<!—End Nilai Threshold-->
<!—Matriks D Corcordance-->
<?php
for ($h=1; $h <= 17; $h++) {
for ($i=1; $i <= 17; $i++) {
if ($arr_Mccd[$i][$h] >= $thresholdConFix) {
$arr_MDccd[$i][$h] = 1;
} else {
$arr_MDccd[$i][$h] = 0;
}
}
}
for ($h=1; $h <=17 ; $h++) {
$arr_MDccd[$h][$h]='-';
}
?>
<!—End Matriks D Corcordance-->
<!—Matriks D Discordance-->
<?php
$thresholdDis=0;
for ($h=1; $h <= 17; $h++) {
for ($i=1; $i <= 17; $i++) {
if ($arr_Mdcd[$i][$h] >= $thresholdDisFix) {
$arr_MDdcd[$i][$h] = 1;
} else {
$arr_MDdcd[$i][$h] = 0;
}
}
}
Listing
<?php
for ($h=1; $h <= 17; $h++) {
for ($i=1; $i <= 17; $i++) {
$arr_DME[$i][$h] = $arr_MDccd[$i][$h] * $arr_MDdcd[$i][$h];
$arr_DME[18][$h]= @$arr_DME[18][$h] + $arr_DME[$i][$h];
}
}
Menghasilkan
7. Tahap 7. Eliminasi alternatif yang less favourable
daripada A1. Sehingga, baris dalam matriks E yang memiliki jumlah ekl=1
Listing
<?php
$i=1; foreach ($rekomtakaran as $row) {
$data_poin_electre = array(
'id_analisa' => $ujitanah_DSC->id,
'kd_formula' => $row->kd_formula,
'poin' => $arr_DME[18][$i],
);
$insert = $this->Rekomedasi_model-
>add_poin_electre($data_poin_electre);
$i++;}
?>
<?php
$poin=$this->Rekomedasi_model
>get_poin_topsis($ujitanah_DSC->id);
$i=1; foreach ($poin as $row) {
?>
<tr>
<td><?php echo $i; ?></td>
<td><?php echo $row->formula; ?></td>
<td><?php echo $row->poin; ?></td>
<td><?php echo $i; ?></td>
</tr>
<?php $i++; }
Menghasilkan