Update Perhitungan Controller and Dashboard
This commit is contained in:
parent
26eabd15c0
commit
d23fc9e634
|
@ -12,32 +12,32 @@ class CriteriaController extends Controller
|
|||
* Display a listing of the resource.
|
||||
*/
|
||||
|
||||
public function calculateBobotKriteria()
|
||||
{
|
||||
$criterias = Criteria::all();
|
||||
// public function calculateBobotKriteria()
|
||||
// {
|
||||
// $criterias = Criteria::all();
|
||||
|
||||
$totalKriteria = count($criterias);
|
||||
// $totalKriteria = count($criterias);
|
||||
|
||||
$bobotKriteria = [];
|
||||
// $bobotKriteria = [];
|
||||
|
||||
foreach ($criterias as $key => $criteria) {
|
||||
$sum = 0;
|
||||
// Iterasi untuk setiap nilai prioritas pada kriteria
|
||||
for ($i = $key; $i < $totalKriteria; $i++) {
|
||||
// Hitung nilai SMARTER
|
||||
$sum += 1 / ($i + 1);
|
||||
}
|
||||
// Hitung bobot kriteria menggunakan rumus SMARTER ROC
|
||||
$bobot = $sum / $totalKriteria;
|
||||
// foreach ($criterias as $key => $criteria) {
|
||||
// $sum = 0;
|
||||
// // Iterasi untuk setiap nilai prioritas pada kriteria
|
||||
// for ($i = $key; $i < $totalKriteria; $i++) {
|
||||
// // Hitung nilai SMARTER
|
||||
// $sum += 1 / ($i + 1);
|
||||
// }
|
||||
// // Hitung bobot kriteria menggunakan rumus SMARTER ROC
|
||||
// $bobot = $sum / $totalKriteria;
|
||||
|
||||
$bobotKriteria[$criteria->nama] = $bobot;
|
||||
// $bobotKriteria[$criteria->nama] = $bobot;
|
||||
|
||||
$criteria->update(['bobot' => $bobot]);
|
||||
$criteria->save();
|
||||
}
|
||||
// $criteria->update(['bobot' => $bobot]);
|
||||
// $criteria->save();
|
||||
// }
|
||||
|
||||
return redirect()->route('kriteria.index')->with('success', 'Bobot kriteria berhasil dihitung dan disimpan.');
|
||||
}
|
||||
// return redirect()->route('kriteria.index')->with('success', 'Bobot kriteria berhasil dihitung dan disimpan.');
|
||||
// }
|
||||
|
||||
public function index()
|
||||
{
|
||||
|
|
|
@ -17,7 +17,11 @@ public function index()
|
|||
$jumlahEkstra = Extracuricullar::count();
|
||||
$jumlahKriteria = Criteria::count();
|
||||
$jumlahSubKriteria = SubCriteria::count();
|
||||
return view('dashboard.index', compact('jumlahEkstra','jumlahKriteria','jumlahSubKriteria'));
|
||||
$criterias = Criteria::all();
|
||||
$extracuricullars = Extracuricullar ::all();
|
||||
$subcriterias = Subcriteria::all();
|
||||
|
||||
return view('dashboard.index', compact('jumlahEkstra','jumlahKriteria','jumlahSubKriteria', 'criterias', 'subcriterias', 'extracuricullars'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -15,11 +15,11 @@ class PenilaianController extends Controller
|
|||
*/
|
||||
public function index()
|
||||
{
|
||||
$criterias = Criteria::all();
|
||||
$extracuricullars = Extracuricullar ::all();
|
||||
$subcriterias = Subcriteria::all();
|
||||
// $criterias = Criteria::all();
|
||||
// $extracuricullars = Extracuricullar ::all();
|
||||
// $subcriterias = Subcriteria::all();
|
||||
|
||||
return view('penilaian.input-nilai', compact('criterias','extracuricullars','subcriterias'));
|
||||
// return view('penilaian.input-nilai', compact('criterias','extracuricullars','subcriterias'));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
@ -0,0 +1,148 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Models\Criteria;
|
||||
use App\Models\SubCriteria;
|
||||
use App\Models\Extracuricullar;
|
||||
use App\Models\ExtracuricullarSubKriteria;
|
||||
use RealRashid\SweetAlert\Facades\Alert;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
|
||||
class PerhitunganController extends Controller
|
||||
{
|
||||
/**
|
||||
* Display a listing of the resource.
|
||||
*/
|
||||
public function calculateBobotKriteria()
|
||||
{
|
||||
$criterias = Criteria::all();
|
||||
|
||||
$totalKriteria = count($criterias);
|
||||
|
||||
$bobotKriteria = [];
|
||||
|
||||
foreach ($criterias as $key => $criteria) {
|
||||
$sum = 0;
|
||||
// Iterasi untuk setiap nilai prioritas pada kriteria
|
||||
for ($i = $key; $i < $totalKriteria; $i++) {
|
||||
// Hitung nilai SMARTER
|
||||
$sum += 1 / ($i + 1);
|
||||
}
|
||||
// Hitung bobot kriteria menggunakan rumus SMARTER ROC
|
||||
$bobot = $sum / $totalKriteria;
|
||||
|
||||
$bobotKriteria[$criteria->nama] = $bobot;
|
||||
|
||||
$criteria->update(['bobot' => $bobot]);
|
||||
$criteria->save();
|
||||
}
|
||||
|
||||
return redirect()->route('kriteria.index')->with('success', 'Bobot kriteria berhasil dihitung dan disimpan.');
|
||||
}
|
||||
|
||||
public function calculateBobotSubKriteria()
|
||||
{
|
||||
$criterias = Criteria::all();
|
||||
|
||||
foreach ($criterias as $criteria) {
|
||||
// Ambil semua sub-kriteria untuk kriteria ini
|
||||
$subcriterias = SubCriteria::where('criteria_id', $criteria->id)->get();
|
||||
|
||||
$totalSubKriteria = $subcriterias->count();
|
||||
|
||||
$bobotSubKriteria = [];
|
||||
|
||||
// Hitung bobot untuk setiap sub-kriteria
|
||||
foreach ($subcriterias as $key => $subcriteria) {
|
||||
$sum = 0;
|
||||
// Iterasi untuk setiap nilai prioritas pada kriteria
|
||||
for ($i = $key; $i < $totalSubKriteria; $i++) {
|
||||
// Hitung nilai SMARTER
|
||||
$sum += 1 / ($i + 1);
|
||||
}
|
||||
// Hitung bobot kriteria menggunakan rumus SMARTER ROC
|
||||
$bobot = $sum / $totalSubKriteria;
|
||||
|
||||
$bobotSubKriteria[$subcriteria->nama] = $bobot;
|
||||
|
||||
$subcriteria->update(['bobot' => $bobot]);
|
||||
$subcriteria->save();
|
||||
}
|
||||
}
|
||||
|
||||
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)
|
||||
{
|
||||
$criterias = Criteria::all();
|
||||
$subcriterias = SubCriteria::all();
|
||||
$extracuricullars = Extracuricullar::all();
|
||||
|
||||
return view('perhitungan.transformasi-nilai');
|
||||
}
|
||||
|
||||
public function index()
|
||||
{
|
||||
//
|
||||
}
|
||||
|
||||
/**
|
||||
* 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)
|
||||
{
|
||||
//
|
||||
}
|
||||
}
|
|
@ -1,13 +0,0 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
|
||||
class SiswaController extends Controller
|
||||
{
|
||||
public function dashboard()
|
||||
{
|
||||
return view('siswa.dashboard');
|
||||
}
|
||||
}
|
|
@ -13,38 +13,38 @@ class SubCriteriaController extends Controller
|
|||
* Display a listing of the resource.
|
||||
*/
|
||||
|
||||
public function calculateBobotSubKriteria()
|
||||
{
|
||||
$criterias = Criteria::all();
|
||||
// public function calculateBobotSubKriteria()
|
||||
// {
|
||||
// $criterias = Criteria::all();
|
||||
|
||||
foreach ($criterias as $criteria) {
|
||||
// Ambil semua sub-kriteria untuk kriteria ini
|
||||
$subcriterias = SubCriteria::where('criteria_id', $criteria->id)->get();
|
||||
// foreach ($criterias as $criteria) {
|
||||
// // Ambil semua sub-kriteria untuk kriteria ini
|
||||
// $subcriterias = SubCriteria::where('criteria_id', $criteria->id)->get();
|
||||
|
||||
$totalSubKriteria = $subcriterias->count();
|
||||
// $totalSubKriteria = $subcriterias->count();
|
||||
|
||||
$bobotSubKriteria = [];
|
||||
// $bobotSubKriteria = [];
|
||||
|
||||
// Hitung bobot untuk setiap sub-kriteria
|
||||
foreach ($subcriterias as $key => $subcriteria) {
|
||||
$sum = 0;
|
||||
// Iterasi untuk setiap nilai prioritas pada kriteria
|
||||
for ($i = $key; $i < $totalSubKriteria; $i++) {
|
||||
// Hitung nilai SMARTER
|
||||
$sum += 1 / ($i + 1);
|
||||
}
|
||||
// Hitung bobot kriteria menggunakan rumus SMARTER ROC
|
||||
$bobot = $sum / $totalSubKriteria;
|
||||
// // Hitung bobot untuk setiap sub-kriteria
|
||||
// foreach ($subcriterias as $key => $subcriteria) {
|
||||
// $sum = 0;
|
||||
// // Iterasi untuk setiap nilai prioritas pada kriteria
|
||||
// for ($i = $key; $i < $totalSubKriteria; $i++) {
|
||||
// // Hitung nilai SMARTER
|
||||
// $sum += 1 / ($i + 1);
|
||||
// }
|
||||
// // Hitung bobot kriteria menggunakan rumus SMARTER ROC
|
||||
// $bobot = $sum / $totalSubKriteria;
|
||||
|
||||
$bobotSubKriteria[$subcriteria->nama] = $bobot;
|
||||
// $bobotSubKriteria[$subcriteria->nama] = $bobot;
|
||||
|
||||
$subcriteria->update(['bobot' => $bobot]);
|
||||
$subcriteria->save();
|
||||
}
|
||||
}
|
||||
// $subcriteria->update(['bobot' => $bobot]);
|
||||
// $subcriteria->save();
|
||||
// }
|
||||
// }
|
||||
|
||||
return redirect()->route('subkriteria.index')->with('success', 'Bobot sub kriteria berhasil dihitung dan disimpan.');
|
||||
}
|
||||
// return redirect()->route('subkriteria.index')->with('success', 'Bobot sub kriteria berhasil dihitung dan disimpan.');
|
||||
// }
|
||||
|
||||
|
||||
public function index()
|
||||
|
|
|
@ -74,6 +74,89 @@
|
|||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="pb-10">
|
||||
<div class="card-box height-100-p overflow-hidden">
|
||||
<div class="profile-tab height-100-p">
|
||||
<div class="tab height-100-p">
|
||||
<ul class="nav nav-tabs customtab" role="tablist">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link active" data-toggle="tab" href="#ekstrakurikuler"
|
||||
role="tab">Data Ekstrakurikuler</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" data-toggle="tab" href="#subkriteria"
|
||||
role="tab">Data Sub Kriteria</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="tab-content">
|
||||
<!-- Data Ekstrakurikuler -->
|
||||
<div class="tab-pane fade show active" id="ekstrakurikuler" role="tabpanel">
|
||||
<div class="profile-setting">
|
||||
<div class="table-responsive">
|
||||
<table class="data-table table stripe hover nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Nama Ekstrakurikuler</th>
|
||||
<th>Kategori</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($extracuricullars as $extracuricullar)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>{{ $extracuricullar->nama }}</td>
|
||||
<td>{{ $extracuricullar->kategori }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">Tidak ada data.</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- Data Sub Kriteria -->
|
||||
<div class="tab-pane fade" id="subkriteria" role="tabpanel">
|
||||
<div class="profile-setting">
|
||||
<div class="table-responsive">
|
||||
<table class="data-table table stripe hover nowrap">
|
||||
<thead>
|
||||
<tr>
|
||||
<th>No</th>
|
||||
<th>Kriteria</th>
|
||||
<th>Sub Kriteria</th>
|
||||
<th>Deskripsi</th>
|
||||
<th>Prioritas</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
@forelse ($subcriterias as $subcriteria)
|
||||
<tr>
|
||||
<td>{{ $loop->iteration }}</td>
|
||||
<td>{{ $subcriteria->criteria->nama }}</td>
|
||||
<td>{{ $subcriteria->nama }}</td>
|
||||
<td>{{ $subcriteria->deskripsi }}</td>
|
||||
<td>{{ $subcriteria->prioritas }}</td>
|
||||
</tr>
|
||||
@empty
|
||||
<tr>
|
||||
<td colspan="5" class="text-center">Tidak ada data.</td>
|
||||
</tr>
|
||||
@endforelse
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
{{-- <div class="row">
|
||||
<div class="col-xl-8 mb-30">
|
||||
<div class="card-box height-100-p pd-20">
|
||||
|
|
|
@ -37,7 +37,7 @@
|
|||
<span class="micon bi bi-table"></span><span class="mtext">Penilaian</span>
|
||||
</a>
|
||||
<ul class="submenu">
|
||||
<li><a href="{{ route('input-nilai.index') }}">Input Penilaian</a></li>
|
||||
<li><a href="{{ route('penilaian.input-nilai') }}">Input Penilaian</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li class="dropdown">
|
||||
|
|
|
@ -57,7 +57,7 @@
|
|||
<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>
|
||||
<option value="{{ $subCriteria->id }}">{{ $subCriteria->prioritas }} ({{ $subCriteria->nama }})</option>
|
||||
@endforeach
|
||||
</select>
|
||||
</td>
|
||||
|
@ -71,7 +71,7 @@
|
|||
</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">Transformasi Nilai</button>
|
||||
<button id="transformButton" class="btn btn-primary btn-lg btn-block">Transformasi Nilai</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
@ -83,4 +83,43 @@
|
|||
</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> --}}
|
||||
@endsection
|
||||
|
|
|
@ -307,7 +307,7 @@ class="badge btn-danger" data-toggle="modal"
|
|||
<button type="button" class="close" data-dismiss="modal" aria-hidden="true"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<p>Apakah Anda yakin ingin menghapus data sub kriteria {{ $subcriteria->nama }} ini?</p>
|
||||
<p>Apakah Anda yakin ingin menghapus data sub kriteria {{ $subcriteria->nama }} dari kriteria {{ $criteria->nama }} ini?</p>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-dismiss="modal">Batal</button>
|
||||
|
|
|
@ -5,12 +5,11 @@
|
|||
use Illuminate\Support\Facades\Route;
|
||||
use App\Http\Controllers\AuthController;
|
||||
use App\Http\Controllers\UserController;
|
||||
use App\Http\Controllers\SiswaController;
|
||||
use App\Http\Controllers\PerhitunganController;
|
||||
use App\Http\Controllers\CriteriaController;
|
||||
use App\Http\Controllers\DataUserController;
|
||||
use App\Http\Controllers\DashboardController;
|
||||
use App\Http\Controllers\SubCriteriaController;
|
||||
use App\Http\Controllers\WakilKepalaController;
|
||||
use App\Http\Controllers\ExtracurricularController;
|
||||
use App\Http\Controllers\PenilaianController;
|
||||
use App\Http\Controllers\TransformasiNilaiController;
|
||||
|
@ -106,14 +105,19 @@
|
|||
Route::resource('ekstrakurikuler', ExtracurricularController::class);
|
||||
|
||||
Route::resource('kriteria', CriteriaController::class);
|
||||
Route::post('/kriteria/calculate', [CriteriaController::class, 'calculateBobotKriteria'])->name('kriteria.calculate');
|
||||
// Route::post('/kriteria/calculate', [CriteriaController::class, 'calculateBobotKriteria'])->name('kriteria.calculate');
|
||||
|
||||
Route::resource('subkriteria', SubCriteriaController::class);
|
||||
Route::post('/subkriteria/calculate', [SubCriteriaController::class, 'calculateBobotSubKriteria'])->name('subkriteria.calculate');
|
||||
// Route::post('/subkriteria/calculate', [SubCriteriaController::class, 'calculateBobotSubKriteria'])->name('subkriteria.calculate');
|
||||
|
||||
Route::resource('user', DataUserController::class);
|
||||
|
||||
Route::resource('input-nilai', PenilaianController::class);
|
||||
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/transformasiNilai', [PerhitunganController::class, 'transformasiNilai'])->name(('perhitungan.transformasiNilai'));
|
||||
|
||||
// Route::resource('input-nilai', PenilaianController::class);
|
||||
|
||||
Route::resource('transformasi-nilai', TransformasiNilaiController::class);
|
||||
|
||||
|
|
Loading…
Reference in New Issue