-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathhasil.php
92 lines (78 loc) · 2.55 KB
/
hasil.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
<?php
include 'header.php';
require 'criteria.php';
require 'alternatives.php';
// Mendapatkan daftar kriteria
$criterias = getCriterias();
// Mendapatkan daftar alternatif
$alternatives = getAlternatives();
// Langkah pertama: Menjumlahkan nilai bobot
$totalWeight = 0;
foreach ($criterias as $criteria) {
$totalWeight += $criteria['weight'];
}
// Langkah kedua: Menghitung bobot kepentingan
$criteriaWeights = array();
foreach ($criterias as $criteria) {
$criteriaWeights[$criteria['id']] = $criteria['weight'] / $totalWeight;
}
// Langkah ketiga: Mengalikan bobot kepentingan dengan nilai alternatif
$sVector = array();
foreach ($alternatives as $alternative) {
$s = 1;
foreach ($criterias as $criteria) {
$value = $alternative['value' . $criteria['id']];
$weight = $criteriaWeights[$criteria['id']];
if ($criteria['type'] === 'benefit') {
$s *= pow($value, $weight);
} else {
$s *= pow($value, -$weight);
}
}
$sVector[$alternative['id']] = $s;
}
// Langkah keempat: Menjumlahkan nilai vektor s
$totalS = array_sum($sVector);
// Langkah kelima: Menghitung nilai vektor v
$vVector = array();
foreach ($alternatives as $alternative) {
$vVector[$alternative['id']] = $sVector[$alternative['id']] / $totalS;
}
// Langkah keenam: Meranking alternatif berdasarkan nilai vektor v
arsort($vVector);
?>
<div class="panel panel-container" style="padding: 20px; box-shadow: 2px 2px 5px #888888;">
<h4>Tabel Ranking</h4>
<div class="table-responsive">
<table class="table table-bordered">
<thead>
<tr>
<th>ID</th>
<th>Ranking</th>
<th>Nama Alternatif</th>
<th>Nilai S</th>
<th>Nilai Vektor V</th>
</tr>
</thead>
<tbody>
<?php
$rank = 1;
foreach ($vVector as $alternativeId => $value) {
$alternative = getAlternative($alternativeId);
echo "<tr>";
echo "<td>" . $alternative['id'] . "</td>";
echo "<td>" . $rank . "</td>";
echo "<td>" . $alternative['name'] . "</td>";
echo "<td>" . $sVector[$alternative['id']] . "</td>";
echo "<td>" . $value . "</td>";
echo "</tr>";
$rank++;
}
?>
</tbody>
</table>
</div>
</div>
<?php
include 'footer.php';
?>