@extends('layouts.app', ['title' => 'Infografis Angket']) @section('content')
Questionnaire Data Story

Infografis Hasil Pengisian Angket

{{ $questionnaire->title }}

{{ $questionnaire->description ?: 'Visualisasi grafik, diagram, dan kesimpulan hasil pengisian instrumen angket.' }}
Lihat Tabel Hasil Export PDF Infografis
@csrf @method('DELETE')
Jumlah Responden {{ $responseCount }} Responden unik: {{ $respondentCount }}
Jumlah Butir {{ $questions->count() }} Total instrumen yang dianalisis.
Jawaban Terekam {{ $answerCount }} Total jawaban seluruh responden.
Rata-rata Skor {{ $overallAverage !== null ? number_format($overallAverage, 2, ',', '.') : '-' }} {{ $scoreLevel }}

Diagram Komposisi Jenis Pertanyaan

Menunjukkan proporsi tipe butir yang digunakan dalam instrumen.

@if ($typeDiagram->isNotEmpty())
@php $dashParts = []; $offset = 0; @endphp @foreach ($typeDiagram as $index => $row) @php($offset += $row['percent']) @endforeach {{ $questions->count() }} Butir
@foreach ($typeDiagram as $index => $row)
{{ $row['label'] }} {{ $row['count'] }} ({{ number_format($row['percent'], 1, ',', '.') }}%)
@endforeach
@else

Belum ada pertanyaan yang dapat divisualisasikan.

@endif

Grafik Tren Respons

Perkembangan jumlah respons berdasarkan tanggal pengisian.

@if ($responseTrend->isNotEmpty()) @php $width = 620; $height = 230; $left = 46; $right = 24; $top = 28; $bottom = 38; $plotWidth = $width - $left - $right; $plotHeight = $height - $top - $bottom; $maxY = max(1, (int) $responseTrend->max('count')); $countTrend = max(1, $responseTrend->count() - 1); $points = $responseTrend->values()->map(function ($row, $i) use ($left, $top, $plotWidth, $plotHeight, $maxY, $countTrend) { $x = $left + (($plotWidth / $countTrend) * $i); $y = $top + ($plotHeight - (($row['count'] / $maxY) * $plotHeight)); return ['x' => round($x, 2), 'y' => round($y, 2), 'label' => $row['date'], 'count' => $row['count']]; }); $polyline = $points->map(fn ($p) => $p['x'].','.$p['y'])->implode(' '); $area = $left.','.($top+$plotHeight).' '.$polyline.' '.($left+$plotWidth).','.($top+$plotHeight); @endphp
@for ($i = 0; $i <= 4; $i++) @php($gridY = $top + (($plotHeight / 4) * $i)) @endfor @foreach ($points as $p) {{ $p['count'] }} @endforeach @foreach ($points->take(6) as $p) {{ $p['label'] }} @endforeach
@else

Belum ada respons untuk ditampilkan sebagai grafik tren.

@endif

Diagram Skor per Bagian

Rata-rata skor dikelompokkan berdasarkan bagian/section instrumen.

@forelse ($sectionSummaries as $row)
{{ $row['section'] }} {{ number_format($row['average'], 2, ',', '.') }}
{{ $row['count'] }} jawaban berskor
@empty

Belum ada data skor per bagian.

@endforelse

Analisis Kesimpulan Otomatis

Ringkasan interpretasi awal berdasarkan data kuantitatif dan kualitatif.

{{ $scoreLevel }}

{{ $scoreInterpretation }}

    @foreach ($conclusionPoints as $point)
  1. {{ $point }}
  2. @endforeach

Grafik Batang Rekap Skor Butir

Semakin panjang batang, semakin tinggi rata-rata skor pada butir tersebut.

@forelse ($rankedScoreSummaries as $row)
{{ $row['label'] }}. {{ $row['question']->question_text }}
{{ $row['count'] }} jawaban berskor · minimum {{ $row['min'] }} · maksimum {{ $row['max'] }}
Rata-rata {{ number_format($row['average'], 2, ',', '.') }}
@empty

Belum ada jawaban berskor. Gunakan tipe Likert/pilihan dengan skor untuk menampilkan grafik skor.

@endforelse
@if ($choiceSummaries->isNotEmpty())

Diagram Distribusi Jawaban Pilihan dan Likert

Setiap butir ditampilkan sebagai diagram distribusi agar pola pilihan responden mudah dibaca.

@foreach ($choiceSummaries as $summary)
{{ $summary['question']->order_no }}. {{ $summary['question']->question_text }} {{ $summary['total'] }} responden menjawab
@foreach ($summary['options'] as $option)
{{ $option['label'] }} {{ $option['count'] }} ({{ number_format($option['percent'], 1, ',', '.') }}%)
@endforeach @if (! empty($summary['dominant']) && ($summary['dominant']['count'] ?? 0) > 0)
Dominan: {{ $summary['dominant']['label'] }} ({{ number_format($summary['dominant']['percent'], 1, ',', '.') }}%)
@endif
@endforeach
@endif @if ($textSummaries->isNotEmpty())

Analisis Kualitatif Jawaban Teks

Cuplikan masukan responden untuk memperkuat interpretasi grafik.

@foreach ($textSummaries as $summary)
{{ $summary['question']->order_no }}. {{ $summary['question']->question_text }} {{ $summary['total'] }} jawaban teks
    @foreach ($summary['answers'] as $answer)
  • {{ $answer }}
  • @endforeach
@endforeach
@endif @endsection