From 4b2eeb4f8ee8477487761d436fdc80261e9a3396 Mon Sep 17 00:00:00 2001 From: MufridaFaraDiani27 Date: Sat, 30 May 2026 00:43:26 +0700 Subject: [PATCH] ganti --- app/Http/Controllers/AnalisisController.php | 2 +- app/Http/Controllers/DashboardController.php | 9 +- resources/views/rekomendasi/index.blade.php | 2 +- .../83200b6ca19a8da36ba75ad680d43e19.php | 222 +++++++++++ .../da4c8b215347ddbbfe979485d71927be.php | 354 +++++++++++++++++ .../f06c714e529d7b336cf1277434e6c2dc.php | 366 ++++++++++++++++++ .../f808e5b45ff9a0735aa2c22ec906831d.php | 204 ++++++++++ .../fb843eb1366f55ecbc0d64d0bcaf77ad.php | 229 +++++++++++ 8 files changed, 1382 insertions(+), 6 deletions(-) create mode 100644 storage/framework/views/83200b6ca19a8da36ba75ad680d43e19.php create mode 100644 storage/framework/views/da4c8b215347ddbbfe979485d71927be.php create mode 100644 storage/framework/views/f06c714e529d7b336cf1277434e6c2dc.php create mode 100644 storage/framework/views/f808e5b45ff9a0735aa2c22ec906831d.php create mode 100644 storage/framework/views/fb843eb1366f55ecbc0d64d0bcaf77ad.php diff --git a/app/Http/Controllers/AnalisisController.php b/app/Http/Controllers/AnalisisController.php index 9d75534..5b47081 100644 --- a/app/Http/Controllers/AnalisisController.php +++ b/app/Http/Controllers/AnalisisController.php @@ -55,7 +55,7 @@ public function index(Request $request) $query->where('wisata', $request->wisata); } - $hasil = $query->latest()->paginate(10); + $hasil = $query->orderBy('id', 'desc')->paginate(10); $standalone = true; return view('analisis.index', compact( diff --git a/app/Http/Controllers/DashboardController.php b/app/Http/Controllers/DashboardController.php index e70dcbd..75939a4 100644 --- a/app/Http/Controllers/DashboardController.php +++ b/app/Http/Controllers/DashboardController.php @@ -230,10 +230,11 @@ public function index(Request $request) ->distinct('wisata') ->count('wisata'); - $hasil = DB::table('hasil_analisis') - ->when($periodeId, fn($q) => $q->where('periode_id', $periodeId)) - ->when($wisata && $wisata != 'Semua Destinasi', fn($q) => $q->where('wisata', $wisata)) - ->paginate(10); + $hasil = DB::table('hasil_analisis') + ->when($periodeId, fn($q) => $q->where('periode_id', $periodeId)) + ->when($wisata && $wisata != 'Semua Destinasi', fn($q) => $q->where('wisata', $wisata)) + ->orderByDesc('ulasan_id') + ->paginate(10); $jumlahKelasAnalisis = DB::table('hasil_analisis') ->when($periodeId, fn($q) => $q->where('periode_id', $periodeId)) diff --git a/resources/views/rekomendasi/index.blade.php b/resources/views/rekomendasi/index.blade.php index 624c95c..f432352 100644 --- a/resources/views/rekomendasi/index.blade.php +++ b/resources/views/rekomendasi/index.blade.php @@ -46,7 +46,7 @@ class="border rounded-lg pl-3 pr-9 py-2 text-sm min-w-[220px] focus:outline-none {{-- SUMMARY CARDS --}} -
+
๐Ÿ“
diff --git a/storage/framework/views/83200b6ca19a8da36ba75ad680d43e19.php b/storage/framework/views/83200b6ca19a8da36ba75ad680d43e19.php new file mode 100644 index 0000000..af3d3b1 --- /dev/null +++ b/storage/framework/views/83200b6ca19a8da36ba75ad680d43e19.php @@ -0,0 +1,222 @@ + + +
+ + +
+
+

Rekomendasi Layanan

+

+ Rekomendasi dibuat dari ulasan negatif agar saran perbaikan fokus pada keluhan pengunjung. +

+

+ destinasi dianalisis, destinasi memiliki ulasan negatif. +

+
+ + +
+ + + +
+
+ + +
+ +
+
๐Ÿ“
+
+

Destinasi Dianalisis

+

+

punya keluhan

+
+
+ +
+
๐Ÿ˜Ÿ
+
+

Total Ulasan Negatif

+

+

% dari total

+
+
+ +
+
๐Ÿ˜Š
+
+

Tingkat Kepuasan

+

%

+ + + + +
+
+ +
+
โ—
+
+

Isu Dominan

+

+

% dari total isu

+
+
+ +
+ + +
+ + +
+

Isu Utama (Top 5)

+ + addLoop($__currentLoopData); foreach($__currentLoopData as $i => $isu): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> + 'bg-red-500', + 'orange' => 'bg-orange-500', + 'yellow' => 'bg-yellow-400', + 'green' => 'bg-green-500', + default => 'bg-blue-500', + }; + ?> +
+
+ . + % +
+
+
+
+
+ popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> +

Belum ada data isu.

+ +
+ + +
+

Kata Kunci Dominan

+ + + + addLoop($__currentLoopData); foreach($__currentLoopData as $kata => $jumlah): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> +
+
+ + x +
+
+
+
+
+ popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> +

Belum ada kata kunci.

+ +
+ + +
+

Saran Perbaikan

+ +
+ addLoop($__currentLoopData); foreach($__currentLoopData as $saran): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> +
+
+
+

+

+
+
+ popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> +

Belum ada saran.

+ +
+
+ +
+ + +
+ + addLoop($__currentLoopData); foreach($__currentLoopData as $p): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> + 'border-red-300', + 'orange' => 'border-orange-300', + 'yellow' => 'border-yellow-300', + 'green' => 'border-green-300', + default => 'border-blue-300', + }; + $title = match($p['color']) { + 'red' => 'text-red-600', + 'orange' => 'text-orange-500', + 'yellow' => 'text-yellow-600', + 'green' => 'text-green-600', + default => 'text-blue-600', + }; + $dampak = match($p['color']) { + 'red' => 'bg-red-100 text-red-600', + 'orange' => 'bg-orange-100 text-orange-600', + 'yellow' => 'bg-yellow-100 text-yellow-600', + 'green' => 'bg-green-100 text-green-700', + default => 'bg-blue-100 text-blue-600', + }; + ?> +
+

Prioritas

+

+ +
    + addLoop($__currentLoopData); foreach($__currentLoopData as $action): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> +
  • + โœ” + +
  • + popLoop(); $loop = $__env->getLastLoop(); ?> +
+ +
+ Dampak: + +
+
+ popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> +
+ Belum ada data rekomendasi. Pastikan analisis sentimen sudah dijalankan. +
+ + +
+ +
\ No newline at end of file diff --git a/storage/framework/views/da4c8b215347ddbbfe979485d71927be.php b/storage/framework/views/da4c8b215347ddbbfe979485d71927be.php new file mode 100644 index 0000000..1889e17 --- /dev/null +++ b/storage/framework/views/da4c8b215347ddbbfe979485d71927be.php @@ -0,0 +1,354 @@ +startSection('content'); ?> + +
+ + + +
+ + +
+ + +
+ + +
+ + + + +
+ ๐Ÿ“… +
+ + + +
+ Data ulasan sudah tersedia, tetapi belum dilakukan analisis sentimen. +
+ + +
+
+ + Periode aktif: nama ?? 'Belum ada data'); ?> + + + + Lihat riwayat + +
+
+ + + Terakhir update: format('d M Y H:i') : '-'); ?> + + + +
+ + + + + + + +
+
+
+ + +
+ + +
+ + + +
+ + +
+ + +
+
+

Total Ulasan

+

+
+
+

Sentimen Positif

+

%

+
+
+

Sentimen Negatif

+

%

+
+
+

Sentimen Netral

+

%

+
+
+ + +
+ + +
+

Distribusi Sentimen

+
+ +
+
+ + +
+

Sentimen per Destinasi

+
+ +
+
+ +
+ + +
+
+

Total Data per Destinasi

+
+ addLoop($__currentLoopData); foreach($__currentLoopData as $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> +
+ wisata); ?> + total); ?> ulasan +
+ popLoop(); $loop = $__env->getLastLoop(); ?> +
+
+
+

Word Cloud

+
+

Belum ada kata dominan.

+
+
+
+ +
+ + +
+ make('analisis.index', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> +
+ + +
+ make('rekomendasi.index', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> +
+ +
+
+ + + + + + + + + + +stopSection(); ?> +make('layouts.sentara', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/f06c714e529d7b336cf1277434e6c2dc.php b/storage/framework/views/f06c714e529d7b336cf1277434e6c2dc.php new file mode 100644 index 0000000..073e6d2 --- /dev/null +++ b/storage/framework/views/f06c714e529d7b336cf1277434e6c2dc.php @@ -0,0 +1,366 @@ + + + + + +Login - SENTARA + + + + + + + + + + +
+ + +
+ + + + any()): ?> + + + + + +
+ Selamat Datang Kembali! +
+ +
+ Login untuk mengakses Dashboard Analisis Sentimen Wisata Jember +
+ +
+ + +
+ + +
+ +
+ +
+ + ๐Ÿ‘ +
+ + +
+ + + +
+ +
+ + +
+ + bg + +
+ +

+ Memahami opini,
+ meningkatkan pariwisata
+ Jember. +

+ + +
+ +
+ +
+ + + + + \ No newline at end of file diff --git a/storage/framework/views/f808e5b45ff9a0735aa2c22ec906831d.php b/storage/framework/views/f808e5b45ff9a0735aa2c22ec906831d.php new file mode 100644 index 0000000..b628896 --- /dev/null +++ b/storage/framework/views/f808e5b45ff9a0735aa2c22ec906831d.php @@ -0,0 +1,204 @@ +startSection('content'); ?> + +
+ + +
+
+

Data Ulasan

+

+ Periode aktif: nama ?? 'Belum ada data'); ?> + + Lihat riwayat +

+
+
+
+ + + + + +
+
+ + + +
+
+
+ +
+ + +
+
+
+
๐Ÿ“„
+
+

Total Ulasan

+

+
+
+
+
๐Ÿ“
+
+

Total Wisata

+

+
+
+
+
๐Ÿ“…
+
+

Terakhir Update

+

+ format('d M Y H:i') : '-'); ?> + +

+
+
+
+
+ + + +
+ + +
+ + +
+ + +
+ + + +
+ + + + + + + + + + + +
+ + + + + + +
+
+ + + + + + + + + + + + addLoop($__currentLoopData); foreach($__currentLoopData as $i => $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> + + + + + + + + popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> + + + + + +
NoNama WisataRatingUlasanTanggal
firstItem() + $i); ?>wisata); ?> + rating))); ?> + + rating); ?> + +
ulasan); ?>
+
+ tanggal + ? \Carbon\Carbon::parse($item->tanggal)->format('d M Y') + : '-'; + } catch (\Throwable $e) { + $tanggalUlasan = $item->tanggal ?: '-'; + } + ?> + + +
Belum ada data
+
+ +
+
+ Menampilkan firstItem() ?? 0); ?> - lastItem() ?? 0); ?> + + dari total()); ?> data +
+
+ onFirstPage()): ?> + ยซ + + ยซ + + + lastPage(); $i++): ?> + currentPage()): ?> + + $mentah->lastPage() - 2 || abs($i - $mentah->currentPage()) <= 1): ?> + + lastPage() - 3): ?> + ... + + + + hasMorePages()): ?> + ยป + + ยป + +
+
+
+ +stopSection(); ?> + +make('layouts.sentara', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file diff --git a/storage/framework/views/fb843eb1366f55ecbc0d64d0bcaf77ad.php b/storage/framework/views/fb843eb1366f55ecbc0d64d0bcaf77ad.php new file mode 100644 index 0000000..8bf74ac --- /dev/null +++ b/storage/framework/views/fb843eb1366f55ecbc0d64d0bcaf77ad.php @@ -0,0 +1,229 @@ + + + startSection('content'); ?> + + +total() ?? 0; + $jumlahKelasAnalisis ??= 0; + $evaluasiTersedia = $evaluasi && $jumlahKelasAnalisis >= 2; +?> + +
+ + +
+
+

Hasil Analisis Sentimen

+

+ Evaluasi memakai pseudo-label dari rating/rule otomatis, bukan anotasi manual. +

+ 0 && !$evaluasiTersedia): ?> +

+ Semua hasil hanya memiliki kelas sentimen. Precision, recall, F1, dan akurasi tidak dihitung karena evaluasi klasifikasi membutuhkan minimal 2 kelas. Detail hasil analisis tetap ditampilkan di bawah. +

+ +
+
+ + +
+ +
+

Precision

+

+ precision ?? 0, 2) : '-'); ?> + +

+
+ +
+

Recall

+

+ recall ?? 0, 2) : '-'); ?> + +

+
+ +
+

F1 Score

+

+ f1_score ?? 0, 2) : '-'); ?> + +

+
+ +
+

Akurasi

+

+ accuracy ?? 0, 2) : '-'); ?> + +

+
+ +
+ + + + +
+ +
+ + + + + + + + +
+ + + + + Lihat Riwayat + + +
+ + +
+ +

Detail Hasil Analisis Sentimen

+ + + + + + + + + + + + + + + addLoop($__currentLoopData); foreach($__currentLoopData as $item): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); $__empty_1 = false; ?> + + + + + + + + + popLoop(); $loop = $__env->getLastLoop(); if ($__empty_1): ?> + + + + + +
NoWisataUlasan AsliUlasan BersihSentimenProbabilitas
currentPage() - 1) * $hasil->perPage() + $loop->iteration); ?>wisata); ?>ulasan_asli ?? '-', 80)); ?>hasil_preprocessing ?? '-', 80)); ?> + + sentimen)); ?> + + + probabilitas ?? 0, 2)); ?>
Tidak ada data
+ + + hasPages()): ?> + currentPage(); + $last = $hasil->lastPage(); + $query = http_build_query(request()->except('page')); + // Window 2 halaman kiri & kanan dari current + $window = collect(range(max(1, $current - 2), min($last, $current + 2))); + ?> + +
+ + +

Menampilkan firstItem()); ?> - lastItem()); ?> dari total()); ?> data

+ + +
+ + + onFirstPage()): ?> + « + + « + + + + contains(1)): ?> + 1 + min() > 2): ?> + ... + + + + + addLoop($__currentLoopData); foreach($__currentLoopData as $page): $__env->incrementLoopIndices(); $loop = $__env->getLastLoop(); ?> + + + + + + popLoop(); $loop = $__env->getLastLoop(); ?> + + + contains($last)): ?> + max() < $last - 1): ?> + ... + + + + + + hasMorePages()): ?> + » + + » + + +
+
+ + +
+ +
+ + + stopSection(); ?> + + +make('layouts.sentara', array_diff_key(get_defined_vars(), ['__data' => 1, '__path' => 1]))->render(); ?> \ No newline at end of file