159 lines
9.7 KiB
PHP
159 lines
9.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers;
|
|
|
|
use App\Models\User;
|
|
use App\Models\KuesionerLearningStyle;
|
|
use App\Models\KuesionerMetakognitif;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\DB;
|
|
use Symfony\Component\Process\Process;
|
|
use Symfony\Component\Process\Exception\ProcessFailedException;
|
|
use Illuminate\Support\Facades\Log;
|
|
|
|
class KuesionerMetaController extends Controller
|
|
{
|
|
public function showquestion()
|
|
{
|
|
$questions = [
|
|
"Saya bertanya kepada diri sendiri, ”Apakah saya sudah mencapai tujuan saya?”, ketika sedang berupaya mencapai tujuan secara intensif.",
|
|
"Saya mempertimbangkan berbagai pilihan sebelum saya menyelesaikan sebuah permasalahan.",
|
|
"Saya coba menggunakan cara-cara yang pernah saya pakai sebelumnya.",
|
|
"Saya terus menerus mengatur diri selama belajar agar memiliki waktu yang cukup.",
|
|
"Saya memahami kekuatan dan kelemahan kecerdasan saya.",
|
|
"Saya berpikir tentang apa yang sebenarnya perlu saya pelajari sebelum mengerjakan tugas.",
|
|
"Saya menyadari bagaimana baiknya saya menyelesaikan suatu tes.",
|
|
"Saya menyusun tujuan-tujuan khusus sebelum saya mengerjakan tugas.",
|
|
"Saya bertindak perlahan-lahan dan hati-hati bila mana menjumpai informasi penting.",
|
|
"Saya mengetahui macam informasi apa yang paling penting untuk dipelajari.",
|
|
"Saya bertanya kepada diri sendiri ketika mempertimbangkan seluruh pilihan untuk memecahkan suatu masalah.",
|
|
"Saya terampil/mahir menyusun dan merangkai suatu informasi.",
|
|
"Saya secara sadar memusatkan perhatian kepada informasi yang penting.",
|
|
"Untuk tiap cara yang saya gunakan, saya mempunyai maksud tertentu.",
|
|
"Saya belajar paling baik ketika saya mengetahui topik pembelajaran itu.",
|
|
"Saya mengetahui apa yang diharapkan guru untuk saya pelajari.",
|
|
"Saya mudah mengingat informasi.",
|
|
"Saya menggunakan cara belajar yang berbeda-beda tergantung pada situasi dan kondisi.",
|
|
"Setelah saya menyelesaikan suatu tugas, saya bertanya kepada diri sendiri apakah ada cara yang lebih mudah.",
|
|
"Saya mengendalikan sendiri kualitas belajar saya.",
|
|
"Secara teratur saya melakukan peninjauan kemampuan untuk menolong saya memahami hubungan-hubungan penting.",
|
|
"Sebelum memulai sesuatu, saya bertanya kepada diri sendiri tentang hal-hal terkait.",
|
|
"Saya mempertimbangkan berbagai cara untuk memecahkan sesuatu masalah sebelum akhirnya memutuskan salah satu diantaranya.",
|
|
"Setiap kali selesai belajar, saya membuat rangkuman.",
|
|
"Saya menanyakan orang lain bilamana saya tidak memahami sesuatu.",
|
|
"Saya dapat memotivasi diri untuk belajar bilamana diperlukan.",
|
|
"Saya menyadari cara apa yang digunakan ketika saya belajar.",
|
|
"Saya biasa memikirkan manfaat cara - cara belajar yang saya pakai.",
|
|
"Saya memanfaatkan kekuatan kecerdasan saya untuk menutupi kekurangan saya.",
|
|
"Saya memusatkan perhatian terhadap arti dan manfaat dari informasi yang baru.",
|
|
"Saya menemukan contoh-contoh sendiri sehingga informasi menjadi lebih bermakna atau jelas.",
|
|
"Saya tergolong adil menilai diri sendiri tentang seberapa baiknya saya memahami sesuatu.",
|
|
"Secara otomatis saya sadar menggunakan cara belajar yang berguna.",
|
|
"Secara teratur saya istirahat sebentar untuk mengatur pemahaman saya.",
|
|
"Saya menyadari/mengetahui bahwa setiap cara yang saya gunakan adalah yang paling efektif atau tepat.",
|
|
"Saya bertanya kepada diri sendiri tentang seberapa baik saya mencapai tujuan setelah menyelesaikan tugas.",
|
|
"Saya membuat gambar atau bagan untuk menolong saya selama belajar.",
|
|
"Saya bertanya kepada diri sendiri apakah saya telah mempertimbangkan semua pilihan, setiap kali saya memecahkan suatu masalah.",
|
|
"Saya berupaya memahami informasi baru dengan kata-kata saya sendiri.",
|
|
"Saya mengubah cara jika saya gagal memahami.",
|
|
"Saya menggunakan urutan topik/materi dari buku/teks untuk membantu saya belajar.",
|
|
"Saya membaca petunjuk secara teliti sebelum memulai melakukan suatu tugas.",
|
|
"Saya bertanya kepada diri sendiri apakah hal yang sedang dibaca berhubungan dengan apa yang telah saya ketahui.",
|
|
"Saya memikirkan kembali anggapan saya ketika saya bingung.",
|
|
"Saya mengatur waktu saya untuk mencapai tujuan sebaik-baiknya.",
|
|
"Saya lebih banyak belajar jika saya tertarik/senang dengan topik.",
|
|
"Saya berupaya membagi kegiatan belajar saya menjadi langkah-langkah yang lebih kecil.",
|
|
"Saya lebih memperhatikan makna umum dari pada makna khusus.",
|
|
"Saya bertanya kepada diri sendiri tentang seberapa baik saya bekerja, pada waktu mempelajari sesuatu yang baru.",
|
|
"Saya bertanya kepada diri sendiri apakah saya belajar sebanyak yang saya mampu, setiap kali saya menyelesaikan tugas.",
|
|
"Saya melupakan informasi baru yang tidak jelas.",
|
|
"Saya berhenti dan selanjutnya membaca kembali jika saya bingung."
|
|
];
|
|
|
|
return view('main.page.kuesioner.kuesioner_metacognitive', compact('questions'));
|
|
}
|
|
|
|
public function store(Request $request)
|
|
{
|
|
if (!Auth::check()) {
|
|
return redirect()->route('login')->with('error', 'Silakan login terlebih dahulu.');
|
|
}
|
|
|
|
$user = User::where('email', Auth::user()->email)->first();
|
|
Log::info('Input dari Form', $request->all());
|
|
$answers = [];
|
|
for ($i = 1; $i <= 52; $i++) {
|
|
$answers["soal{$i}"] = $request->input("soal{$i}", 0);
|
|
}
|
|
|
|
Log::info('Answers Array', $answers);
|
|
$indicator_scores = [
|
|
// Pengetahuan Kognitif (Knowledge of Cognition)
|
|
'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']))),
|
|
// Pengendalian Kognitif (Regulation of Cognition)
|
|
'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']))),
|
|
];
|
|
|
|
Log::info('Indicator Scores', $indicator_scores);
|
|
|
|
$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;
|
|
|
|
$category = 4; // Default
|
|
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 == 'mid' && $rm_class == 'low'):
|
|
$category = 4;
|
|
break;
|
|
case ($lv_meta == 2 && $km_class == 'mid' && $rm_class == 'mid'):
|
|
$category = 5;
|
|
break;
|
|
case ($lv_meta == 2 && $km_class == 'mid' && $rm_class == 'high'):
|
|
$category = 6;
|
|
break;
|
|
case ($lv_meta == 2 && $km_class == 'high' && $rm_class == 'mid'):
|
|
$category = 7;
|
|
break;
|
|
case ($lv_meta == 2 && $km_class == 'high' && $rm_class == 'high'):
|
|
$category = 8;
|
|
break;
|
|
}
|
|
|
|
if ($user) {
|
|
$user->update(['category_meta' => $category]);
|
|
}
|
|
|
|
$kuesionerls = KuesionerLearningStyle::where('email', Auth::user()->email)->first();
|
|
$kuesionermeta = KuesionerMetakognitif::where('category', $user->category_meta)->first();
|
|
|
|
Log::info('Hasil Kuesioner MAI', [
|
|
'km_total' => $km_total,
|
|
'rm_total' => $rm_total,
|
|
'km_class' => $km_class,
|
|
'rm_class' => $rm_class,
|
|
'lv_meta' => $lv_meta,
|
|
'category' => $category,
|
|
]);
|
|
|
|
return view('main.page.kuesioner.kuesioner_hasil', compact('kuesionerls', 'kuesionermeta'));
|
|
}
|
|
} |