Transformasi Nilai

This commit is contained in:
Zakiaass 2024-03-15 22:34:48 +07:00
parent 4064acc1c5
commit 4d24eabe7a
6 changed files with 79 additions and 112 deletions

View File

@ -73,24 +73,44 @@ public function calculateBobotSubKriteria()
}
return redirect()->route('subkriteria.index')->with('success', 'Bobot Sub Kriteria Berhasil Dihitung dan Disimpan.');
}
}
public function penilaian()
{
{
$criterias = Criteria::all();
$extracuricullars = Extracuricullar ::all();
$subcriterias = Subcriteria::all();
return view('penilaian.input-nilai', compact('criterias','extracuricullars','subcriterias'));
}
}
public function transformasiNilai(Request $request)
public function transformasiNilai(Request $request)
{
// Ambil data nilai dari subkriteria yang dipilih dari form
$subcriteriaData = $request->input('subcriteria');
// Inisialisasi variabel untuk menyimpan nilai hasil transformasi
$transformedValues = [];
// Lakukan transformasi nilai berdasarkan bobot subkriteria
foreach ($subcriteriaData as $extracurricularId => $criteriaData) {
foreach ($criteriaData as $criteriaId => $subcriteriaId) {
// Ambil data sub-kriteria berdasarkan ID yang dipilih dari form
$subcriteria = SubCriteria::findOrFail($subcriteriaId);
// Ambil bobot dari subkriteria yang dipilih
$bobot = $subcriteria->bobot;
// Simpan hasil transformasi nilai ke dalam array
$transformedValues[$extracurricularId][$criteriaId] = $bobot;
}
}
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
$criterias = Criteria::all();
$subcriterias = SubCriteria::all();
$extracuricullars = Extracuricullar::all();
return view('perhitungan.transformasi-nilai');
return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues'));
}
public function index()

View File

@ -1,23 +0,0 @@
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class WakilKepalaController extends Controller
{
public function dashboard()
{
return view('wakil_kepala.dashboard');
}
public function kriteria()
{
return view('wakil_kepala.kriteria');
}
public function subkriteria()
{
return view('wakil_kepala.subkriteria');
}
}

View File

@ -47,10 +47,10 @@
<span class="micon bi bi-table"></span><span class="mtext">Perhitungan</span>
</a>
<ul class="submenu">
<li><a href="{{ route('transformasi-nilai.index') }}">Transformasi Nilai</a></li>
<li><a href="{{ route('transformasi-nilai.index') }}">Nilai utility</a></li>
<li><a href="{{ route('transformasi-nilai.index') }}">Nilai Akhir</a></li>
<li><a href="{{ route('transformasi-nilai.index') }}">Hasil Perangkingan</a></li>
<li><a href="{{ route('transformasiNilai') }}">Transformasi Nilai</a></li>
<li><a href="">Nilai utility</a></li>
<li><a href="">Nilai Akhir</a></li>
<li><a href="">Hasil Perangkingan</a></li>
</ul>
</li>
</ul>

View File

@ -35,6 +35,8 @@
<div class="pd-20">
<h4 class="text-blue h4 mb-0">Data Penilaian</h4>
</div>
<form method="POST" action="{{ route('transformasiNilai') }}">
@csrf
<div class="pb-10">
<div class="table-responsive">
<table class="data-table table stripe hover nowrap">
@ -71,11 +73,12 @@
</table>
<div class="col-sm-12">
<div class="input-group mb-3 mx-auto">
<button id="transformButton" class="btn btn-primary btn-lg btn-block">Transformasi Nilai</button>
<button type="submit" class="btn btn-primary btn-lg btn-block">Transformasi Nilai</button>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="footer-wrap pd-20 mb-20 card-box">
@ -83,43 +86,9 @@
</div>
</div>
</div>
{{-- <script>
$(document).ready(function(){
$('select[name^="subcriteria"]').on('change', function(){
var selectedSubCriterias = {};
$('select[name^="subcriteria"]').each(function(){
var extracurricularId = $(this).data('extracurricular-id');
var criteriaId = $(this).data('criteria-id');
var subcriteriaId = $(this).val();
if (subcriteriaId) {
if (!selectedSubCriterias.hasOwnProperty(extracurricularId)) {
selectedSubCriterias[extracurricularId] = {};
}
selectedSubCriterias[extracurricularId][criteriaId] = subcriteriaId;
}
});
$('button#transformButton').data('selected-sub-criterias', JSON.stringify(selectedSubCriterias));
});
});
</script>
<script>
$('#transformButton').on('click', function(){
var selectedSubCriterias = $(this).data('selected-sub-criterias');
$.ajax({
type: 'POST',
url: '{{ route('perhitungan.transformasiNilai') }}',
data: {
_token: '{{ csrf_token() }}',
subcriteria: selectedSubCriterias
},
success: function(response){
// Tampilkan data bobot sub kriteria yang telah dihitung
$('#bobotSubKriteria').html(response);
},
error: function(xhr, status, error){
console.error(xhr.responseText);
}
});
});
</script> --}}
@if(session('success'))
<script>
alert('{{ session('success') }}');
</script>
@endif
@endsection

View File

@ -2,7 +2,7 @@
@section('body')
@php
$menu = 'Data Perhitungan';
$pageTitle = 'Data Hasil Transformasi Nilai';
$pageTitle = 'Hasil Transformasi Nilai';
@endphp
@include('layout.navbar')
@ -20,7 +20,7 @@
</div>
<nav aria-label="breadcrumb" role="navigation">
<ol class="breadcrumb">
<li class="breadcrumb-item"><a href="{{ route('dashboard.index') }}">Dashboard</a></li>
<li class="breadcrumb-item"><a href="{{ route('penilaian.input-nilai') }}">Input Penilaian</a></li>
@if (isset($pageTitle))
<li class="breadcrumb-item active" aria-current="page">{{ $pageTitle }}</li>
@else
@ -33,49 +33,50 @@
</div>
<div class="card-box mb-30">
<div class="pd-20">
<h4 class="text-blue h4 mb-0">Data Penilaian</h4>
<h4 class="text-blue h4 mb-0">Hasil Transformasi Nilai</h4>
</div>
<div class="pb-10">
<div class="table-responsive">
<table class="data-table table stripe hover nowrap">
<thead>
<tr>
<th>No</th>
<th>Ekstrakurikuler</th>
@foreach ($criterias as $criteria)
<th>{{ $criteria->nama }}</th>
@endforeach
</tr>
</thead>
<tbody>
@forelse ($extracuricullars as $extracuricullar)
<form method="POST" action="">
@csrf
<div class="pb-10">
<div class="table-responsive">
<table class="data-table table stripe hover nowrap">
<thead>
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $extracuricullar->nama }}</td>
<th>No</th>
<th>Ekstrakurikuler</th>
@foreach ($criterias as $criteria)
<td>
{{-- <select class="form-control" name="subcriteria[{{ $extracuricullar->id }}][{{ $criteria->id }}]">
<option value="" selected disabled>Pilih Sub Kriteria</option>
@foreach ($criteria->subCriteria as $subCriteria)
<option value="{{ $subCriteria->id }}">{{ $subCriteria->nama }}</option>
@endforeach
</select> --}}
</td>
<th>{{ $criteria->nama }}</th>
@endforeach
@empty
<tr>
<td colspan="5" class="text-center">Tidak ada data.</td>
</tr>
@endforelse
</tbody>
</table>
<div class="col-sm-12">
<div class="input-group mb-3 mx-auto">
<button class="btn btn-primary btn-lg btn-block" type="submit">Hitung Nilai Utility</button>
</thead>
<tbody>
@forelse ($extracuricullars as $extracuricullar)
<tr>
<td>{{ $loop->iteration }}</td>
<td>{{ $extracuricullar->nama }}</td>
@foreach ($criterias as $criteria)
<td>
@php
$bobot = $transformedValues[$extracuricullar->id][$criteria->id] ?? null;
@endphp
{{ $bobot }}
</td>
@endforeach
@empty
<tr>
<td colspan="5" class="text-center">Tidak ada data.</td>
</tr>
@endforelse
</tbody>
</table>
<div class="col-sm-12">
<div class="input-group mb-3 mx-auto">
<button type="submit" class="btn btn-primary btn-lg btn-block">Hitung Nilai Utility</button>
</div>
</div>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="footer-wrap pd-20 mb-20 card-box">

View File

@ -103,11 +103,11 @@
Route::post('/kriteria/calculate', [PerhitunganController::class, 'calculateBobotKriteria'])->name('kriteria.calculate');
Route::post('/subkriteria/calculate', [PerhitunganController::class, 'calculateBobotSubKriteria'])->name('subkriteria.calculate');
Route::get('input-nilai', [PerhitunganController::class, 'penilaian'])->name(('penilaian.input-nilai'));
Route::post('perhitungan/transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('perhitungan.transformasiNilai');
Route::post('transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('transformasiNilai');
// Route::resource('input-nilai', PenilaianController::class);
Route::resource('transformasi-nilai', TransformasiNilaiController::class);
// Route::resource('transformasi-nilai', TransformasiNilaiController::class);
Route::get('/logout', [AuthController::class, 'logout'])->name('logout');
Route::post('/logout', [AuthController::class, 'logout'])->name('logout');