@extends('layouts.app') @section('title', 'Hasil Ujian') @php $bySoal = $answers->keyBy('id_soal'); $format = function (object $question, ?object $answer): string { if (! $answer) { return '-'; } $text = trim((string) ($answer->jawaban_text ?? '')); if ($text === '') { return $question->tipe === 'upload' ? 'Tidak ada jawaban teks.' : '-'; } if (in_array($question->tipe, ['menjodohkan', 'tabel'], true)) { $parts = []; foreach (explode('|||', $text) as $pair) { [$left, $right] = array_pad(explode('=', $pair, 2), 2, ''); $parts[] = trim($left).' → '.trim($right); } return implode("\n", $parts); } return $text; }; @endphp @section('content')

Ujian {{ $target->jenis }}Hasil

Hasil Ujian {{ $target->examName }}

{{ $target->subjectName }} · {{ $student->className }} · Percobaan ke-{{ $attemptNumber ?? 0 }} dari {{ $target->maxAttempts }}

@if ($target->open)Kerjakan ulang@endif Daftar ujian
@if (session('status'))
{{ session('status') }}
@endif @if ($errors->any())@endif

Status

{{ $answers->isEmpty() ? 'Belum dikerjakan' : 'Terkirim' }}

Jawaban tersimpan

{{ $answers->count() }} / {{ count($questions) }} soal

Rata-rata nilai

{{ $target->avgScore === null ? 'Menunggu penilaian' : number_format($target->avgScore, 2, ',', '.') }}

@if ($answers->isNotEmpty())

Nilai akhir ujian ditentukan dan diinput oleh guru pengampu melalui menu penilaian. Nilai yang sudah ada akan ditampilkan pada setiap soal di bawah.

@endif @if (empty($questions))

Butir soal ujian tidak ditemukan.

@else
@foreach ($questions as $index => $question) @php $answer = $bySoal->get($question->id); @endphp
{{ $index + 1 }} {{ str_replace('_', ' ', $question->tipe) }} @if ($answer && $answer->nilai !== null && $answer->nilai !== '') Nilai {{ number_format((float) $answer->nilai, 2, ',', '.') }} @elseif ($answer) Belum dinilai @endif

{{ $question->pertanyaan ?: 'Lampiran soal' }}

Jawaban Anda

{{ $format($question, $answer) }}

@if ($answer?->file_jawaban) Unduh file jawaban @endif
@if ($answer?->tanggal)

Dikirim {{ \Illuminate\Support\Carbon::parse($answer->tanggal)->format('d/m/Y H:i') }}

@endif
@endforeach
@endif
@endsection