348 lines
14 KiB
PHP
348 lines
14 KiB
PHP
@include('layouts.header_admin')
|
|
|
|
<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-danger"><i class="fa fa-table"></i> Pilih Jenis Kelamin</h6>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<select class="form-control" onchange="location = this.value;">
|
|
<option value="">--Pilih--</option>
|
|
<option value="1" @if ($j == 1) selected @endif>Laki-laki</option>
|
|
<option value="2" @if ($j == 2) selected @endif>Perempuan</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
@if (count($alternatifs) > 0)
|
|
<?php
|
|
\App\Models\PerhitunganModel::hapus_hasil($j);
|
|
//Matrix Keputusan (X)
|
|
$matriks_x = [];
|
|
foreach ($rangkings 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 Normalisasi (R) & Matriks Normalisasi Terbobot & Nilai V
|
|
$matriks_r = [];
|
|
$matriks_rb = [];
|
|
$nilai_v = [];
|
|
foreach ($rangkings as $alternatif):
|
|
$id_alternatif = $alternatif->id_alternatif;
|
|
$nilai_total = 0;
|
|
foreach ($kriterias as $kriteria):
|
|
$id_kriteria = $kriteria->id_kriteria;
|
|
|
|
$nilai = $matriks_x[$id_kriteria][$id_alternatif];
|
|
$type_kriteria = $kriteria->jenis;
|
|
$bobot = $kriteria->bobot;
|
|
|
|
$nilai_max = @max($matriks_x[$id_kriteria]);
|
|
$nilai_min = @min($matriks_x[$id_kriteria]);
|
|
|
|
if ($type_kriteria == 'Benefit'):
|
|
$r = $nilai != 0 ? $nilai / $nilai_max : 0;
|
|
elseif ($type_kriteria == 'Cost'):
|
|
$r = $nilai != 0 ? $nilai_min / $nilai : 0;
|
|
endif;
|
|
|
|
$matriks_r[$id_kriteria][$id_alternatif] = $r;
|
|
|
|
$nilai_penjumlahan = $bobot * $r;
|
|
$matriks_rb[$id_kriteria][$id_alternatif] = $nilai_penjumlahan;
|
|
$nilai_total += $nilai_penjumlahan;
|
|
endforeach;
|
|
//Nilai (V)
|
|
$nilai_v[$id_alternatif] = $nilai_total;
|
|
endforeach;
|
|
?>
|
|
|
|
<div class="card shadow mb-4">
|
|
<!-- /.card-header -->
|
|
<div class="card-header py-3">
|
|
<h6 class="m-0 font-weight-bold text-danger"><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-danger text-white">
|
|
<tr align="center">
|
|
<th width="5%">No</th>
|
|
<th>Nama Alternatif</th>
|
|
<th>Asal Divisi</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>
|
|
<td><?= $alternatif->divisi ?></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">
|
|
<th colspan="3" class="bg-light">MIN</th>
|
|
<?php
|
|
foreach ($kriterias as $kriteria):
|
|
$id_kriteria = $kriteria->id_kriteria;
|
|
echo '<th class="bg-light">';
|
|
echo min($matriks_x[$id_kriteria]);
|
|
echo '</th>';
|
|
endforeach;
|
|
?>
|
|
</tr>
|
|
<tr align="center">
|
|
<th colspan="3" class="bg-light">MAX</th>
|
|
<?php
|
|
foreach ($kriterias as $kriteria):
|
|
$id_kriteria = $kriteria->id_kriteria;
|
|
echo '<th class="bg-light">';
|
|
echo max($matriks_x[$id_kriteria]);
|
|
echo '</th>';
|
|
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-danger"><i class="fa fa-table"></i> Matriks Normalisasi (R)</h6>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered" width="100%" cellspacing="0">
|
|
<thead class="bg-danger text-white">
|
|
<tr align="center">
|
|
<th width="5%">No</th>
|
|
<th>Nama Alternatif</th>
|
|
<th>Asal Divisi</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>
|
|
<td><?= $alternatif->divisi ?></td>
|
|
<?php
|
|
foreach ($kriterias as $kriteria):
|
|
$id_alternatif = $alternatif->id_alternatif;
|
|
$id_kriteria = $kriteria->id_kriteria;
|
|
echo '<td>';
|
|
echo $matriks_r[$id_kriteria][$id_alternatif];
|
|
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-danger"><i class="fa fa-table"></i> Bobot Preferensi (W)</h6>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered" width="100%" cellspacing="0">
|
|
<thead class="bg-danger text-white">
|
|
<tr align="center">
|
|
<?php foreach ($kriterias as $kriteria): ?>
|
|
<th><?= $kriteria->kode_kriteria ?> (<?= $kriteria->jenis ?>)</th>
|
|
<?php endforeach ?>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<tr align="center">
|
|
<?php foreach ($kriterias as $alternatif): ?>
|
|
<td>
|
|
<?php
|
|
echo $alternatif->bobot;
|
|
?>
|
|
</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-danger"><i class="fa fa-table"></i> Matriks Normalisasi Terbobot</h6>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered" width="100%" cellspacing="0">
|
|
<thead class="bg-danger text-white">
|
|
<tr align="center">
|
|
<th width="5%">No</th>
|
|
<th>Nama Alternatif</th>
|
|
<th>Asal Divisi</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>
|
|
<td><?= $alternatif->divisi ?></td>
|
|
<?php
|
|
foreach ($kriterias as $kriteria):
|
|
$id_alternatif = $alternatif->id_alternatif;
|
|
$id_kriteria = $kriteria->id_kriteria;
|
|
echo '<td>';
|
|
echo $matriks_rb[$id_kriteria][$id_alternatif];
|
|
echo '</td>';
|
|
endforeach;
|
|
?>
|
|
</tr>
|
|
<?php
|
|
$no++;
|
|
endforeach ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
{{-- add pagination in bootstrap --}}
|
|
<div class="d-flex justify-content-center">
|
|
{!! $alternatifs->links() !!}
|
|
</div>
|
|
|
|
<div class="card shadow mb-4">
|
|
<!-- /.card-header -->
|
|
<div class="card-header py-3 d-flex justify-content-between align-items-center">
|
|
<h6 class="m-0 font-weight-bold text-danger"><i class="fa fa-table"></i> Nilai (V)</h6>
|
|
<div class="form-group">
|
|
<select class="form-control" id="filterByDivision">
|
|
<option value="">--Pilih Divisi--</option>
|
|
@foreach ($divisis as $data)
|
|
<option value="{{ $data->divisi }}">{{ $data->divisi }}</option>
|
|
@endforeach
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="card-body">
|
|
<div class="table-responsive">
|
|
<table class="table table-bordered" width="100%" cellspacing="0" id="tableRanking">
|
|
<thead class="bg-danger text-white">
|
|
<tr align="center">
|
|
<th width="5%">No</th>
|
|
<th>Nama Alternatif</th>
|
|
<th width="15%">Nilai (V)</th>
|
|
<th>Asal Divisi</th>
|
|
</tr>
|
|
</thead>
|
|
<tbody>
|
|
<?php
|
|
$no=1;
|
|
foreach ($rangkings as $alternatif): ?>
|
|
<tr align="center">
|
|
<td><?= $no ?></td>
|
|
<td align="left"><?= $alternatif->nama ?></td>
|
|
<?php
|
|
$id_alternatif = $alternatif->id_alternatif;
|
|
echo '<td>';
|
|
echo $v = $nilai_v[$id_alternatif];
|
|
echo '</td>';
|
|
?>
|
|
</td>
|
|
<td><?= $alternatif->divisi ?></td>
|
|
</tr>
|
|
<?php
|
|
$no++;
|
|
$hasil_akhir = [
|
|
'id_alternatif' => $id_alternatif,
|
|
'jenis_kelamin' => $j,
|
|
'nilai' => $v,
|
|
];
|
|
|
|
DB::table('hasil')->insert($hasil_akhir);
|
|
endforeach; ?>
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
@else
|
|
<div class="alert alert-danger">Data alternatif masih kosong!</div>
|
|
@endif
|
|
|
|
@push('js-internal')
|
|
<script>
|
|
// filter table by division select box
|
|
$('#filterByDivision').on('change', function() {
|
|
var value = $(this).val().toLowerCase();
|
|
$('#tableRanking tbody tr').filter(function() {
|
|
$(this).toggle($(this).text().toLowerCase().indexOf(value) > -1)
|
|
});
|
|
});
|
|
</script>
|
|
@endpush
|
|
|
|
@include('layouts.footer_admin')
|