TIF_E41200029/resources/views/perhitungan/jenis.blade.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')