diff --git a/app/Http/Controllers/CalculationController.php b/app/Http/Controllers/CalculationController.php deleted file mode 100644 index fc34b4b..0000000 --- a/app/Http/Controllers/CalculationController.php +++ /dev/null @@ -1,64 +0,0 @@ -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 index() { $subcriterias = Subcriteria::all(); @@ -32,10 +67,12 @@ public function create() */ public function store(Request $request) { - $validator = Validator::make($request->only('criteria_id','nama', 'prioritas'), [ + $validator = Validator::make($request->only('criteria_id','nama', 'deskripsi', 'prioritas','bobot'), [ 'criteria_id' => 'required', 'nama' => 'required', + 'deskripsi' => 'required', 'prioritas' => 'required', + 'bobot' => 'nullable|numeric', ]); if ($validator->fails()) { @@ -45,7 +82,9 @@ public function store(Request $request) SubCriteria::create([ 'criteria_id' =>$request->criteria_id, 'nama' => $request->nama, + 'deskripsi' => $request->deskripsi, 'prioritas' => $request->prioritas, + 'bobot' => $request->bobot, ]); return redirect()->route('subkriteria.index')->with('success', 'Data Sub Kriteria Berhasil Ditambah!'); @@ -76,7 +115,9 @@ public function update(Request $request, string $id) $validatedData = $request->validate([ 'criteria_id' => 'required', 'nama' => 'required', + 'deskripsi' => 'required', 'prioritas' => 'required', + 'bobot' => 'nullable|numeric', ]); $subkriteria = SubCriteria::findOrFail($id); diff --git a/app/Models/SubCriteria.php b/app/Models/SubCriteria.php index 8d1fcc3..fbb97fb 100644 --- a/app/Models/SubCriteria.php +++ b/app/Models/SubCriteria.php @@ -7,7 +7,7 @@ class SubCriteria extends Model { - protected $fillable = ['criteria_id', 'nama', 'prioritas', 'bobot']; + protected $fillable = ['criteria_id', 'nama', 'deskripsi', 'prioritas', 'bobot']; public function Criteria() { diff --git a/database/migrations/2023_12_26_053648_create_sub_criterias_table.php b/database/migrations/2023_12_26_053648_create_sub_criterias_table.php index 0cacbb9..f497441 100644 --- a/database/migrations/2023_12_26_053648_create_sub_criterias_table.php +++ b/database/migrations/2023_12_26_053648_create_sub_criterias_table.php @@ -15,8 +15,9 @@ public function up(): void $table->id(); $table->unsignedBigInteger('criteria_id'); $table->string('nama'); - $table->string('prioritas'); - $table->string('bobot')->nullable(); + $table->text('deskripsi'); + $table->unsignedInteger('prioritas'); + $table->float('bobot')->nullable(); $table->timestamps(); $table->foreign('criteria_id')->references('id')->on('criterias'); diff --git a/resources/views/ekstrakurikuler/ekstrakurikuler.blade.php b/resources/views/ekstrakurikuler/ekstrakurikuler.blade.php index 9350043..e2e3464 100644 --- a/resources/views/ekstrakurikuler/ekstrakurikuler.blade.php +++ b/resources/views/ekstrakurikuler/ekstrakurikuler.blade.php @@ -147,7 +147,7 @@ class="badge btn-danger" data-toggle="modal"
{{ $errors->first('kategori') }}
@endif
- +
diff --git a/resources/views/kriteria/kriteria.blade.php b/resources/views/kriteria/kriteria.blade.php index e4858bd..4376149 100644 --- a/resources/views/kriteria/kriteria.blade.php +++ b/resources/views/kriteria/kriteria.blade.php @@ -39,9 +39,6 @@ - {{-- --}} diff --git a/resources/views/penilaian/input-nilai.blade.php b/resources/views/penilaian/input-nilai.blade.php index 99f4a9a..c8e1880 100644 --- a/resources/views/penilaian/input-nilai.blade.php +++ b/resources/views/penilaian/input-nilai.blade.php @@ -55,7 +55,7 @@ @foreach ($criterias as $criteria) @@ -60,6 +61,7 @@ No Kriteria Sub Kriteria + Deskripsi Prioritas Bobot Aksi @@ -71,8 +73,15 @@ {{ $loop->iteration }} {{ $subcriteria->criteria->nama }} {{ $subcriteria->nama }} + {{ $subcriteria->deskripsi }} {{ $subcriteria->prioritas }} - {{ $subcriteria->bobot }} + + @if ($subcriteria->bobot) + {{ $subcriteria->bobot }} + @else + Belum dihitung + @endif +
- @if ($errors->has('prioritas')) -
{{ $errors->first('prioritas') }}
+ @if ($errors->has('nama')) +
{{ $errors->first('nama') }}
+ @endif +
+ +
+ +
+ Lengkap! +
+
+
+ @if ($errors->has('deskripsi')) +
{{ $errors->first('deskripsi') }}
@endif
@@ -236,6 +258,19 @@ class="badge btn-danger" data-toggle="modal" @if ($errors->has('nama'))
{{ $errors->first('nama') }}
@endif +
+ +
+ +
+ Lengkap! +
+
+
+ @if ($errors->has('deskripsi')) +
{{ $errors->first('deskripsi') }}
+ @endif
@@ -286,4 +321,26 @@ class="badge btn-danger" data-toggle="modal"
@endforeach + @endsection diff --git a/routes/web.php b/routes/web.php index 9d415ec..7efcfe0 100644 --- a/routes/web.php +++ b/routes/web.php @@ -109,6 +109,7 @@ 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::resource('user', DataUserController::class);