Volije/resources/views/perhitungan/index.blade.php

473 lines
12 KiB
PHP

@include('layouts.header_admin')
<?php
\App\Models\PerhitunganModel::hapus_hasil();
//Matrix Keputusan (X)
$matriks_x = array();
foreach($alternatifs as $alternatif):
foreach($kriterias as $kriteria):
$id_alternatif = $alternatif->id_alternatif;
$id_kriteria = $kriteria->id_kriteria;
$data_pencocokan = \App\Models\PerhitunganModel::data_nilai($id_alternatif, $id_kriteria);
if(!empty($data_pencocokan['nilai'])){$nilai = $data_pencocokan['nilai'];}else{$nilai = 0;}
$matriks_x[$id_kriteria][$id_alternatif] = $nilai;
endforeach;
endforeach;
//Matriks Ternormalisasi (R)
$nilai_x = array();
foreach($alternatifs as $alternatif):
foreach($kriterias as $kriteria):
$id_kriteria = $kriteria->id_kriteria;
$id_alternatif = $alternatif->id_alternatif;
$nilai = $matriks_x[$id_kriteria][$id_alternatif];
$nilai_max = @(max($matriks_x[$id_kriteria]));
$nilai_min = @(min($matriks_x[$id_kriteria]));
if(($nilai_max - $nilai_min) == 0) {
$x = 0;
} else {
$x = ($nilai_max-$nilai)/($nilai_max-$nilai_min);
}
$nilai_x[$id_alternatif][$id_kriteria] = $x;
endforeach;
endforeach;
//Normalisasi Bobot (R)
$nilai_r = array();
$s = array();
$n_s = array();
foreach($alternatifs as $alternatif):
$total_r = 0;
foreach($kriterias as $kriteria):
$id_kriteria = $kriteria->id_kriteria;
$id_alternatif = $alternatif->id_alternatif;
$bobot = $kriteria->bobot;
$nilai = $nilai_x[$id_alternatif][$id_kriteria];
$r = $nilai*$bobot;
$nilai_r[$id_alternatif][$id_kriteria] = $r;
$total_r += $r;
endforeach;
$s[$id_alternatif] = $total_r;
$n_s[$id_alternatif]['nilai'] = $total_r;
endforeach;
// Nilai R
$r = array();
$n_r = array();
foreach($alternatifs as $alternatif):
$id_alternatif = $alternatif->id_alternatif;
$nilai_max = @(max($nilai_r[$id_alternatif]));
$r[$id_alternatif] = $nilai_max;
$n_r[$id_alternatif]['nilai'] = $nilai_max;
endforeach;
// Max R
$r_nilai = array();
foreach($n_r as $key =>$row):
$r_nilai[$key] = $row['nilai'];
endforeach;
// Max S
$s_nilai = array();
foreach($n_s as $key =>$row):
$s_nilai[$key] = $row['nilai'];
endforeach;
//Nilai Qi
$nilai_q = array();
foreach($alternatifs as $alternatif):
$id_alternatif = $alternatif->id_alternatif;
$nil_s = $s[$id_alternatif];
$nil_r = $r[$id_alternatif];
$max_s = max($s_nilai);
$min_s = min($s_nilai);
$max_r = max($r_nilai);
$min_r = min($r_nilai);
$v = 0.5;
$n1 = $nil_s-$min_s;
$n2 = $max_s-$min_s;
$n3 = $nil_r-$min_r;
$n4 = $max_r-$min_r;
$bagi1 = ($n2 != 0) ? $n1/$n2 : 0;
$bagi2 = ($n4 != 0) ? $n3/$n4 : 0;
$hasil1 = $bagi1*$v;
$hasil2 = $bagi2*(1-$v);
$q = $hasil1+$hasil2;
$nilai_q[$id_alternatif] = $q;
endforeach;
?>
<div class="d-sm-flex align-items-center justify-content-between mb-4">
<h1 class="h3 mb-0 text-gray-800"><i class="fas fa-fw fa-calculator"></i> Data Perhitungan</h1>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Bobot Kriteria (W)</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<th>Kode Kriteria</th>
<th>Nama Kriteria</th>
<th>Bobot</th>
</tr>
</thead>
<tbody>
<?php foreach ($kriterias as $kriteria): ?>
<tr align="center">
<td><?php echo $kriteria->kode_kriteria ?></td>
<td><?php echo $kriteria->keterangan ?></td>
<td>
<?php
if($kriteria->bobot == NULL){
echo "-";
}else{
echo $kriteria->bobot;
}
?>
</td>
</tr>
<?php endforeach ?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Matriks Keputusan (X)</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<th width="5%" rowspan="2">No</th>
<th>Nama Alternatif</th>
<?php foreach ($kriterias as $kriteria): ?>
<th><?= $kriteria->kode_kriteria ?></th>
<?php endforeach; ?>
</tr>
</thead>
<tbody>
<?php
$no=1;
foreach ($alternatifs as $alternatif): ?>
<tr align="center">
<td><?= $no; ?></td>
<td align="left"><?= $alternatif->nama ?></td>
<?php
foreach ($kriterias as $kriteria):
$id_alternatif = $alternatif->id_alternatif;
$id_kriteria = $kriteria->id_kriteria;
echo '<td>';
echo $matriks_x[$id_kriteria][$id_alternatif];
echo '</td>';
endforeach;
?>
</tr>
<?php
$no++;
endforeach;
?>
<tr align="center" class="bg-light">
<th colspan="2">MAX</th>
<?php foreach ($kriterias as $kriteria): ?>
<th>
<?php
$id_kriteria = $kriteria->id_kriteria;
echo max($matriks_x[$id_kriteria]);
?>
</th>
<?php endforeach; ?>
</tr>
<tr align="center" class="bg-light">
<th colspan="2">MIN</th>
<?php foreach ($kriterias as $kriteria): ?>
<th>
<?php
$id_kriteria = $kriteria->id_kriteria;
echo min($matriks_x[$id_kriteria]);
?>
</th>
<?php endforeach; ?>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Normalisasi Matrix (X)</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<th width="5%" rowspan="2">No</th>
<th>Nama Alternatif</th>
<?php foreach ($kriterias as $kriteria): ?>
<th><?= $kriteria->kode_kriteria ?></th>
<?php endforeach ?>
</tr>
</thead>
<tbody>
<?php
$no=1;
foreach ($alternatifs as $alternatif): ?>
<tr align="center">
<td><?= $no; ?></td>
<td align="left"><?= $alternatif->nama ?></td>
<?php
foreach($kriterias as $kriteria):
$id_alternatif = $alternatif->id_alternatif;
$id_kriteria = $kriteria->id_kriteria;
echo '<td>';
echo $nilai_x[$id_alternatif][$id_kriteria];
echo '</td>';
endforeach;
?>
</tr>
<?php
$no++;
endforeach
?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Normalisasi Matriks (R)</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<th width="5%" rowspan="2">No</th>
<th>Nama Alternatif</th>
<?php foreach ($kriterias as $kriteria): ?>
<th><?= $kriteria->kode_kriteria ?></th>
<?php endforeach ?>
</tr>
</thead>
<tbody>
<?php
$no=1;
foreach ($alternatifs as $alternatif): ?>
<tr align="center">
<td><?= $no; ?></td>
<td align="left"><?= $alternatif->nama ?></td>
<?php
foreach($kriterias as $kriteria):
$id_alternatif = $alternatif->id_alternatif;
$id_kriteria = $kriteria->id_kriteria;
echo '<td>';
echo $nilai_r[$id_alternatif][$id_kriteria];
echo '</td>';
endforeach;
?>
</tr>
<?php
$no++;
endforeach
?>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Nilai R</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<?php
$no=1;
foreach ($alternatifs as $alternatif): ?>
<th>R<sub><?= $no ?></sub></th>
<?php
$no++;
endforeach ?>
</tr>
</thead>
<tbody>
<tr align="center">
<?php
foreach ($alternatifs as $alternatif):
$id_alternatif = $alternatif->id_alternatif;
?>
<td>
<?php
echo $r[$id_alternatif];
?>
</td>
<?php endforeach ?>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Nilai S</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<?php
$no=1;
foreach ($alternatifs as $alternatif): ?>
<th>S<sub><?= $no ?></sub></th>
<?php
$no++;
endforeach ?>
</tr>
</thead>
<tbody>
<tr align="center">
<?php
foreach ($alternatifs as $alternatif):
$id_alternatif = $alternatif->id_alternatif;
?>
<td>
<?php
echo $s[$id_alternatif];
?>
</td>
<?php endforeach ?>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Nilai S dan R</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<th>S<sup>+</sup></th>
<th>S<sup>-</sup></th>
<th>R<sup>+</sup></th>
<th>R<sup>-</sup></th>
</tr>
</thead>
<tbody>
<tr align="center">
<td><?= max($s_nilai); ?></td>
<td><?= min($s_nilai); ?></td>
<td><?= max($r_nilai); ?></td>
<td><?= min($r_nilai); ?></td>
</tr>
</tbody>
</table>
</div>
</div>
</div>
<div class="card shadow mb-4">
<!-- /.card-header -->
<div class="card-header py-3">
<h6 class="m-0 font-weight-bold text-primary"><i class="fa fa-table"></i> Nilai Qi</h6>
</div>
<div class="card-body">
<div class="table-responsive">
<table class="table table-bordered" width="100%" cellspacing="0">
<thead class="bg-primary text-white">
<tr align="center">
<th width="5%">No</th>
<th>Alternatif</th>
<th>Nilai Qi</th>
</tr>
</thead>
<tbody>
<tr align="center">
<?php
$no=1;
foreach ($alternatifs as $alternatif):
$id_alternatif = $alternatif->id_alternatif;
?>
<tr align="center">
<td><?= $no; ?></td>
<td align="left"><?= $alternatif->nama ?></td>
<td>
<?php
echo $hasil = $nilai_q[$id_alternatif];
?>
</td>
</tr>
<?php
$no++;
$hasil_akhir = [
'id_alternatif' => $alternatif->id_alternatif,
'nilai' => $hasil
];
DB::table('hasil')->insert($hasil_akhir);
endforeach;
?>
</tr>
</tbody>
</table>
</div>
</div>
</div>
@include('layouts.footer_admin')