Assessment Result
+Hasil Asesmen Siswa
Detail Jawaban
-Ringkasan Jawaban
@@ -381,7 +396,6 @@ Benar: {{ $totalBenar }} | Salah: {{ $totalSalah }} -Informasi Pengguna
@@ -408,13 +422,26 @@ @php $answer = $question->answers->first(); $isCorrect = false; + $similarityScore = null; if ($question->type === 'multiple_choice' && $answer) { - $isCorrect = $answer->option->is_correct; - } elseif ($question->type === 'essay') { - $isCorrect = strtolower(trim($answer->answer_text)) === strtolower(trim($question->essay_answer)); + $isCorrect = optional($answer->option)->is_correct; + } elseif ($question->type === 'essay' && $answer) { + $userAnswer = $normalize($answer->answer_text ?? ''); + $correctAnswers = explode("\n", $question->essay_answer ?? ''); + $maxMatch = 0; + + foreach ($correctAnswers as $correct) { + $correctNormalized = $normalize($correct); + similar_text($userAnswer, $correctNormalized, $percent); + $maxMatch = max($maxMatch, $percent); + } + + $similarityScore = $maxMatch; + $isCorrect = $maxMatch >= $essayThreshold; } @endphp +- Jawaban Anda: + Jawaban Siswa: @if ($question->type === 'multiple_choice') {{ optional($answer)->option->option_text ?? 'Tidak Dijawab' }} @else @@ -434,11 +461,9 @@ @endif
- @if ($question->type === 'essay') -- Feedback: - {{ optional($answer)->feedback ?? 'Tidak ada feedback' }} -
+ @if ($question->type === 'essay' && $similarityScore !== null) +Skor Kemiripan: {{ number_format($similarityScore, 2) }}%
+Feedback: {{ $answer->feedback ?? 'Tidak ada feedback' }}
@endif