Nilai Utility
This commit is contained in:
parent
a88ab7847b
commit
417f376921
|
@ -87,17 +87,6 @@ public function penilaian()
|
||||||
|
|
||||||
public function transformasiNilai(Request $request)
|
public function transformasiNilai(Request $request)
|
||||||
{
|
{
|
||||||
$validator = Validator::make($request->all(), [
|
|
||||||
'subcriteria.*.*' => 'required',
|
|
||||||
], [
|
|
||||||
'subcriteria.*.*.required' => 'Semua dropdown pada kriteria harus diisi.',
|
|
||||||
'subcriteria.*.*.exists' => 'Pilihan dropdown tidak valid.',
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($validator->fails()) {
|
|
||||||
return redirect()->back()->withErrors($validator)->withInput();
|
|
||||||
}
|
|
||||||
|
|
||||||
// Ambil data nilai dari subkriteria yang dipilih dari form
|
// Ambil data nilai dari subkriteria yang dipilih dari form
|
||||||
$subcriteriaData = $request->input('subcriteria');
|
$subcriteriaData = $request->input('subcriteria');
|
||||||
|
|
||||||
|
@ -117,6 +106,10 @@ public function transformasiNilai(Request $request)
|
||||||
$transformedValues[$extracurricularId][$criteriaId] = $bobot;
|
$transformedValues[$extracurricularId][$criteriaId] = $bobot;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Simpan data transformasi nilai ke dalam session
|
||||||
|
session(['transformedValues' => $transformedValues]);
|
||||||
|
|
||||||
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
|
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
|
||||||
$criterias = Criteria::all();
|
$criterias = Criteria::all();
|
||||||
$extracuricullars = Extracuricullar::all();
|
$extracuricullars = Extracuricullar::all();
|
||||||
|
@ -124,34 +117,40 @@ public function transformasiNilai(Request $request)
|
||||||
return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues'));
|
return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues'));
|
||||||
}
|
}
|
||||||
|
|
||||||
// public function transformasiNilai(Request $request)
|
public function nilaiUtility(Request $request)
|
||||||
// {
|
{
|
||||||
// // Ambil data nilai dari subkriteria yang dipilih dari form
|
// Ambil data transformasi nilai dari session
|
||||||
// $subcriteriaData = $request->input('subcriteria');
|
$transformedValues = session('transformedValues', []);
|
||||||
|
|
||||||
// // Inisialisasi variabel untuk menyimpan nilai hasil transformasi
|
// Inisialisasi variabel untuk menyimpan nilai utility
|
||||||
// $transformedValues = [];
|
$nilaiUtility = [];
|
||||||
|
|
||||||
// // Lakukan transformasi nilai berdasarkan bobot subkriteria
|
foreach ($transformedValues as $extracurricularId => $criteriaData) {
|
||||||
// foreach ($subcriteriaData as $extracurricularId => $criteriaData) {
|
foreach ($criteriaData as $criteriaId => $bobot) {
|
||||||
// foreach ($criteriaData as $criteriaId => $subcriteriaId) {
|
// Temukan bobot terbesar dan terkecil dari subkriteria
|
||||||
// // Ambil data sub-kriteria berdasarkan ID yang dipilih dari form
|
$maxBobot = SubCriteria::where('criteria_id', $criteriaId)->max('bobot');
|
||||||
// $subcriteria = SubCriteria::findOrFail($subcriteriaId);
|
$minBobot = SubCriteria::where('criteria_id', $criteriaId)->min('bobot');
|
||||||
|
|
||||||
// // Ambil bobot dari subkriteria yang dipilih
|
// Periksa apakah penyebut bernilai nol
|
||||||
// $bobot = $subcriteria->bobot;
|
$denominator = $maxBobot - $minBobot;
|
||||||
|
if ($denominator == 0) {
|
||||||
|
// Tangani jika penyebut bernilai nol
|
||||||
|
$nilaiUtility[$extracurricularId][$criteriaId] = 0; // Atau nilai lainnya sesuai kebutuhan
|
||||||
|
} else {
|
||||||
|
// Lakukan perhitungan nilai utility
|
||||||
|
$utility = (($bobot - $minBobot) / $denominator);
|
||||||
|
$nilaiUtility[$extracurricularId][$criteriaId] = $utility;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// // Simpan hasil transformasi nilai ke dalam array
|
// Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
|
||||||
// $transformedValues[$extracurricularId][$criteriaId] = $bobot;
|
$criterias = Criteria::all();
|
||||||
// }
|
$extracuricullars = Extracuricullar::all();
|
||||||
// }
|
|
||||||
|
|
||||||
// // Ambil semua kriteria dan ekstrakurikuler untuk ditampilkan di view
|
// Tampilkan hasil perhitungan nilai utility ke dalam view
|
||||||
// $criterias = Criteria::all();
|
return view('perhitungan.nilai-utility', compact('criterias', 'extracuricullars', 'nilaiUtility'));
|
||||||
// $extracuricullars = Extracuricullar::all();
|
}
|
||||||
|
|
||||||
// return view('perhitungan.transformasi-nilai', compact('criterias', 'extracuricullars', 'transformedValues'));
|
|
||||||
// }
|
|
||||||
|
|
||||||
public function index()
|
public function index()
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,72 +0,0 @@
|
||||||
<?php
|
|
||||||
|
|
||||||
namespace App\Http\Controllers;
|
|
||||||
|
|
||||||
use Illuminate\Http\Request;
|
|
||||||
use App\Models\Criteria;
|
|
||||||
use App\Models\Extracuricullar;
|
|
||||||
use App\Models\ExtracuricullarSubKriteria;
|
|
||||||
use App\Models\SubCriteria;
|
|
||||||
|
|
||||||
class TransformasiNilaiController extends Controller
|
|
||||||
{
|
|
||||||
/**
|
|
||||||
* Display a listing of the resource.
|
|
||||||
*/
|
|
||||||
public function index()
|
|
||||||
{
|
|
||||||
$criterias = Criteria::all();
|
|
||||||
$extracuricullars = Extracuricullar ::all();
|
|
||||||
$subcriterias = Subcriteria::all();
|
|
||||||
|
|
||||||
return view('perhitungan.transformasi-nilai', compact('criterias','extracuricullars','subcriterias'));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for creating a new resource.
|
|
||||||
*/
|
|
||||||
public function create()
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Store a newly created resource in storage.
|
|
||||||
*/
|
|
||||||
public function store(Request $request)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Display the specified resource.
|
|
||||||
*/
|
|
||||||
public function show(string $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Show the form for editing the specified resource.
|
|
||||||
*/
|
|
||||||
public function edit(string $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Update the specified resource in storage.
|
|
||||||
*/
|
|
||||||
public function update(Request $request, string $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove the specified resource from storage.
|
|
||||||
*/
|
|
||||||
public function destroy(string $id)
|
|
||||||
{
|
|
||||||
//
|
|
||||||
}
|
|
||||||
}
|
|
|
@ -36,13 +36,13 @@
|
||||||
@endif
|
@endif
|
||||||
<li class="dropdown">
|
<li class="dropdown">
|
||||||
<a href="javascript:;" class="dropdown-toggle">
|
<a href="javascript:;" class="dropdown-toggle">
|
||||||
<span class="micon bi bi-table"></span><span class="mtext">Penilaian</span>
|
<span class="micon bi bi-table"></span><span class="mtext">Perhitungan</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="submenu">
|
<ul class="submenu">
|
||||||
<li><a href="{{ route('penilaian.input-nilai') }}">Input Penilaian</a></li>
|
<li><a href="{{ route('penilaian.input-nilai') }}">Input Penilaian</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
<li class="dropdown">
|
{{-- <li class="dropdown">
|
||||||
<a class="dropdown-toggle">
|
<a class="dropdown-toggle">
|
||||||
<span class="micon bi bi-table"></span><span class="mtext">Perhitungan</span>
|
<span class="micon bi bi-table"></span><span class="mtext">Perhitungan</span>
|
||||||
</a>
|
</a>
|
||||||
|
@ -52,7 +52,7 @@
|
||||||
<li><a href="">Nilai Akhir</a></li>
|
<li><a href="">Nilai Akhir</a></li>
|
||||||
<li><a href="">Hasil Perangkingan</a></li>
|
<li><a href="">Hasil Perangkingan</a></li>
|
||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li> --}}
|
||||||
</ul>
|
</ul>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
@extends('layout.main')
|
@extends('layout.main')
|
||||||
@section('body')
|
@section('body')
|
||||||
@php
|
@php
|
||||||
$menu = 'Data Penilaian';
|
$menu = 'Data Perhitungan';
|
||||||
$pageTitle = 'Data Input Penilaian';
|
$pageTitle = 'Data Input Penilaian';
|
||||||
@endphp
|
@endphp
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,87 @@
|
||||||
|
@extends('layout.main')
|
||||||
|
@section('body')
|
||||||
|
@php
|
||||||
|
$menu = 'Data Perhitungan';
|
||||||
|
$pageTitle = 'Perhitungan Nilai Utility';
|
||||||
|
@endphp
|
||||||
|
|
||||||
|
@include('layout.navbar')
|
||||||
|
@include('layout.sidebar')
|
||||||
|
|
||||||
|
{{-- Main Content --}}
|
||||||
|
<div class="main-container">
|
||||||
|
<div class="pd-ltr-20 xs-pd-20-10">
|
||||||
|
<div class="min-height-200px">
|
||||||
|
<div class="page-header">
|
||||||
|
<div class="row">
|
||||||
|
<div class="col-md-6 col-sm-12">
|
||||||
|
<div class="title">
|
||||||
|
<h4>{{ $menu }}</h4>
|
||||||
|
</div>
|
||||||
|
<nav aria-label="breadcrumb" role="navigation">
|
||||||
|
<ol class="breadcrumb">
|
||||||
|
<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
|
||||||
|
<li class="breadcrumb-item active" aria-current="page"></li>
|
||||||
|
@endif
|
||||||
|
</ol>
|
||||||
|
</nav>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="card-box mb-30">
|
||||||
|
<div class="pd-20">
|
||||||
|
<h4 class="text-blue h4 mb-0">Perhitungan Nilai Utility</h4>
|
||||||
|
</div>
|
||||||
|
<form method="POST" action="">
|
||||||
|
@csrf
|
||||||
|
<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)
|
||||||
|
<tr>
|
||||||
|
<td>{{ $loop->iteration }}</td>
|
||||||
|
<td>{{ $extracuricullar->nama }}</td>
|
||||||
|
@foreach ($criterias as $criteria)
|
||||||
|
<td>
|
||||||
|
@php
|
||||||
|
$utility = $nilaiUtility[$extracuricullar->id][$criteria->id] ?? null;
|
||||||
|
@endphp
|
||||||
|
{{ $utility }}
|
||||||
|
</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 Akhir</button>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="footer-wrap pd-20 mb-20 card-box">
|
||||||
|
<strong>Sistem Pendukung Keputusan Pemilihan Ekstrakurikuler Metode SMARTER</strong>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
@endsection
|
|
@ -35,7 +35,7 @@
|
||||||
<div class="pd-20">
|
<div class="pd-20">
|
||||||
<h4 class="text-blue h4 mb-0">Hasil Transformasi Nilai</h4>
|
<h4 class="text-blue h4 mb-0">Hasil Transformasi Nilai</h4>
|
||||||
</div>
|
</div>
|
||||||
<form method="POST" action="">
|
<form method="POST" action="{{ route('nilaiUtility') }}">
|
||||||
@csrf
|
@csrf
|
||||||
<div class="pb-10">
|
<div class="pb-10">
|
||||||
<div class="table-responsive">
|
<div class="table-responsive">
|
||||||
|
|
|
@ -104,6 +104,7 @@
|
||||||
Route::post('/subkriteria/calculate', [PerhitunganController::class, 'calculateBobotSubKriteria'])->name('subkriteria.calculate');
|
Route::post('/subkriteria/calculate', [PerhitunganController::class, 'calculateBobotSubKriteria'])->name('subkriteria.calculate');
|
||||||
Route::get('input-nilai', [PerhitunganController::class, 'penilaian'])->name(('penilaian.input-nilai'));
|
Route::get('input-nilai', [PerhitunganController::class, 'penilaian'])->name(('penilaian.input-nilai'));
|
||||||
Route::post('transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('transformasiNilai');
|
Route::post('transformasi-nilai', [PerhitunganController::class, 'transformasiNilai'])->name('transformasiNilai');
|
||||||
|
Route::post('nilai-utility', [PerhitunganController::class, 'nilaiUtility'])->name('nilaiUtility');
|
||||||
|
|
||||||
// Route::resource('input-nilai', PenilaianController::class);
|
// Route::resource('input-nilai', PenilaianController::class);
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue