route('login')->with('error', 'Silakan login terlebih dahulu.'); } $user = Auth::user(); $answers = []; for ($i = 1; $i <= 52; $i++) { $answers["soal{$i}"] = $request->input("soal{$i}", 0); } // Hitung skor indikator $indicator_scores = [ 'declarative_knowledge' => array_sum(array_intersect_key($answers, array_flip(['soal5', 'soal10', 'soal12', 'soal16', 'soal17', 'soal20', 'soal32', 'soal46']))), 'procedural_knowledge' => array_sum(array_intersect_key($answers, array_flip(['soal3', 'soal14', 'soal27', 'soal33']))), 'conditional_knowledge' => array_sum(array_intersect_key($answers, array_flip(['soal15', 'soal18', 'soal26', 'soal29', 'soal35']))), 'planning' => array_sum(array_intersect_key($answers, array_flip(['soal4', 'soal6', 'soal8', 'soal22', 'soal23', 'soal42', 'soal45']))), 'information_management' => array_sum(array_intersect_key($answers, array_flip(['soal9', 'soal13', 'soal30', 'soal31', 'soal37', 'soal39', 'soal41', 'soal43', 'soal47', 'soal48']))), 'monitoring' => array_sum(array_intersect_key($answers, array_flip(['soal1', 'soal2', 'soal11', 'soal21', 'soal28', 'soal34', 'soal49']))), 'debugging' => array_sum(array_intersect_key($answers, array_flip(['soal25', 'soal40', 'soal44', 'soal51', 'soal52']))), 'evaluation' => array_sum(array_intersect_key($answers, array_flip(['soal7', 'soal19', 'soal24', 'soal36', 'soal38', 'soal50']))), ]; // Hitung total dan klasifikasi $km_total = $indicator_scores['declarative_knowledge'] + $indicator_scores['procedural_knowledge'] + $indicator_scores['conditional_knowledge']; $rm_total = $indicator_scores['planning'] + $indicator_scores['information_management'] + $indicator_scores['monitoring'] + $indicator_scores['debugging'] + $indicator_scores['evaluation']; $km_class = ($km_total >= 63) ? 'high' : (($km_total >= 42) ? 'med' : 'low'); $rm_class = ($rm_total >= 132) ? 'high' : (($rm_total >= 88) ? 'med' : 'low'); $lv_meta = (($rm_class == 'high' && ($km_class == 'high' || $km_class == 'med')) || ($rm_class == 'med' && ($km_class == 'high' || $km_class == 'med'))) ? 2 : 1; // Tentukan kategori $category = 4; switch (true) { case ($lv_meta == 1 && $km_class == 'low' && $rm_class == 'low'): $category = 1; break; case ($lv_meta == 1 && $km_class == 'low' && $rm_class == 'med'): $category = 2; break; case ($lv_meta == 1 && $km_class == 'low' && $rm_class == 'high'): $category = 3; break; case ($lv_meta == 1 && $km_class == 'med' && $rm_class == 'low'): $category = 4; break; case ($lv_meta == 2 && $km_class == 'med' && $rm_class == 'med'): $category = 5; break; case ($lv_meta == 2 && $km_class == 'med' && $rm_class == 'high'): $category = 6; break; case ($lv_meta == 2 && $km_class == 'high' && $rm_class == 'med'): $category = 7; break; case ($lv_meta == 2 && $km_class == 'high' && $rm_class == 'high'): $category = 8; break; } // Simpan ke tabel hasil (update sebagian kolom saja) Hasil::where('id_user', $user->id)->update([ 'declarative_knowledge' => $indicator_scores['declarative_knowledge'], 'procedural_knowledge' => $indicator_scores['procedural_knowledge'], 'conditional_knowledge' => $indicator_scores['conditional_knowledge'], 'planning' => $indicator_scores['planning'], 'information_management' => $indicator_scores['information_management'], 'monitoring' => $indicator_scores['monitoring'], 'debugging' => $indicator_scores['debugging'], 'evaluation' => $indicator_scores['evaluation'], 'km_total' => $km_total, 'rm_total' => $rm_total, 'km_class' => $km_class, 'rm_class' => $rm_class, 'category' => $category, ]); // Ambil hasil untuk ditampilkan $kuesionerls = Hasil::where('id_user', $user->id)->first(); $kuesionermeta = Hasil::where('id_user', $user->id)->where('category', $category)->first(); // return view('backend.main.kuesioner.kuesioner_hasil', compact('kuesionerls', 'kuesionermeta')); return redirect()->route('history_quis.index')->with('success', 'Kuesioner berhasil disimpan.'); } }