again n again

This commit is contained in:
Randa Firman Putra
2025-11-23 20:32:04 +07:00
parent c77321bc8a
commit 82bec8eecc
12 changed files with 2427 additions and 0 deletions

View File

@@ -0,0 +1,68 @@
'use client';
import { useState } from "react";
import DistribusiIPKChart from "@/components/chartsDashboard/DistribusiIPKChart";
import DistribusiIPKChartPerangkatan from "@/components/chartsDashboard/DistribusiIPKChartPerangkatan";
import FilterTahunAngkatan from "@/components/FilterTahunAngkatan";
import TabelKategoriIPKMahasiswa from "@/components/chartstable/tabelkategoriipkmahasiswa";
export default function KategoriIPKDetailPage() {
const [selectedYear, setSelectedYear] = useState<string>("all");
return (
<div className="min-h-screen bg-gray-50 dark:bg-[var(--background)] p-4">
<div className="container mx-auto max-w-7xl space-y-2">
{/* Filter Section */}
<FilterTahunAngkatan
selectedYear={selectedYear}
onYearChange={setSelectedYear}
/>
{/* Chart Section */}
<div className="grid grid-cols-1 lg:grid-cols-1 gap-6">
{/* Chart untuk semua data atau chart per angkatan ketika tahun tertentu dipilih */}
{selectedYear === "all" ? (
<DistribusiIPKChart
selectedYear={selectedYear}
height="h-[400px] sm:h-[400px] lg:h-[400px]"
showDetailButton={false}
/>
) : (
<DistribusiIPKChartPerangkatan
selectedYear={selectedYear}
/>
)}
</div>
{/* Tabel Section */}
<TabelKategoriIPKMahasiswa selectedYear={selectedYear} />
{/* Information Section */}
<div className="bg-white dark:bg-slate-900 rounded-lg shadow-sm p-6">
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4">
Informasi Visualisasi
</h2>
<div className="grid md:grid-cols-1 gap-6">
<div>
<h3 className="font-medium text-gray-900 dark:text-white mb-2">
Grafik Distribusi IPK Mahasiswa
</h3>
<ul className="text-sm text-gray-600 dark:text-gray-300 space-y-1">
<li> Menampilkan distribusi mahasiswa berdasarkan kategori IPK per tahun angkatan</li>
<li> IPK dikategorikan menjadi empat kelompok berdasarkan skala penilaian:</li>
<li className="ml-4">- <strong>4.00 - 3.00 Sangat Baik</strong>: Mahasiswa dengan IPK sangat baik</li>
<li className="ml-4">- <strong>2.99 - 2.50 Baik</strong>: Mahasiswa dengan IPK baik</li>
<li className="ml-4">- <strong>2.49 - 2.00 Cukup</strong>: Mahasiswa dengan IPK cukup</li>
<li className="ml-4">- <strong>&lt; 2.00 Kurang</strong>: Mahasiswa dengan IPK kurang</li>
<li> Grafik stacked bar chart horizontal yang menunjukkan persentase setiap kategori IPK per tahun angkatan</li>
<li> Data dapat di-download dan dianalisis untuk monitoring kualitas akademik mahasiswa</li>
<li> Filter berdasarkan tahun angkatan tersedia untuk analisis per angkatan</li>
</ul>
</div>
</div>
</div>
</div>
</div>
);
}

View File

@@ -0,0 +1,58 @@
'use client';
import { useState } from "react";
import TerancamDOChart from "@/components/chartsDashboard/TerancamDOChart";
import FilterTahunAngkatan from "@/components/FilterTahunAngkatan";
import TabelNamaTerancamDO from "@/components/chartstable/tabelnamaterancamdo";
export default function TerancamDODetailPage() {
const [selectedYear, setSelectedYear] = useState<string>("all");
return (
<div className="min-h-screen bg-gray-50 dark:bg-[var(--background)] p-4">
<div className="container mx-auto max-w-7xl space-y-2">
{/* Filter Section */}
<FilterTahunAngkatan
selectedYear={selectedYear}
onYearChange={setSelectedYear}
/>
{/* Chart Section */}
<div className="grid grid-cols-1 lg:grid-cols-1 gap-6">
<TerancamDOChart
selectedYear={selectedYear}
height="h-[400px] sm:h-[400px] lg:h-[400px]"
showDetailButton={false}
/>
</div>
{/* Tabel Section */}
<TabelNamaTerancamDO selectedYear={selectedYear} />
{/* Information Section */}
<div className="bg-white dark:bg-slate-900 rounded-lg shadow-sm p-6">
<h2 className="text-xl font-semibold text-gray-900 dark:text-white mb-4">
Informasi Visualisasi
</h2>
<div className="grid md:grid-cols-1 gap-6">
<div>
<h3 className="font-medium text-gray-900 dark:text-white mb-2">
Grafik Mahasiswa Terancam Drop Out
</h3>
<ul className="text-sm text-gray-600 dark:text-gray-300 space-y-1">
<li> Menampilkan jumlah mahasiswa yang terancam drop out (DO) per tahun angkatan</li>
<li> Evaluasi dilakukan berdasarkan pedoman akademik UNTAN tahun 2023/2024</li>
<li> Kriteria evaluasi terdiri dari tiga tahap:</li>
<li className="ml-4">- Evaluasi 4 semester: SKS minimal 40 dan IPK &gt; 2.50</li>
<li className="ml-4">- Evaluasi 8 semester: SKS minimal 80 dan IPK &gt; 2.50</li>
<li className="ml-4">- Evaluasi akhir masa studi: SKS minimal 144, IPK &gt; 2.00, tidak ada nilai E, nilai D maksimal 10%, nilai mata kuliah wajib minimal C, dan lulus tugas akhir</li>
<li> Grafik batang vertikal yang menunjukkan jumlah mahasiswa terancam DO per tahun angkatan</li>
<li> Data dapat di-download dan dianalisis untuk monitoring akademik</li>
</ul>
</div>
</div>
</div>
</div>
</div>
);
}