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"