Universitas Muhammadiyah Makassar
Sistem terintegrasi untuk mengukur, memantau, dan mengelola Capaian Pembelajaran Lulusan (CPL) di 5 Program Studi Fakultas Teknik.
- Tentang Sistem
- Fitur Utama
- Screenshot
- Tech Stack
- Quick Start
- Struktur Project
- Dokumentasi
- Akun Demo
- Deployment
- Kontribusi
- Lisensi
Sistem CPL adalah aplikasi web modern untuk mengelola dan memantau Capaian Pembelajaran Lulusan (CPL) sesuai dengan standar SNPT (Standar Nasional Pendidikan Tinggi). Sistem ini dirancang untuk membantu:
- Kaprodi: Monitoring pencapaian CPL mahasiswa di program studi
- Dosen: Input dan evaluasi nilai mata kuliah
- Admin: Manajemen data dan konfigurasi sistem
- Mahasiswa: Melihat progress pencapaian pembelajaran
- S1 Teknik Informatika (INF) - 69 Mata Kuliah, 144 SKS
- S1 Arsitektur (ARS) - 50+ Mata Kuliah, 145 SKS
- S1 Perencanaan Wilayah Kota (PWK) - 50+ Mata Kuliah
- S1 Teknik Sipil (SIP) - 50+ Mata Kuliah
- S1 Teknik Elektro (ELK) - 50+ Mata Kuliah
Setiap program studi memiliki 8 CPL yang terstruktur sesuai kurikulum masing-masing.
- Visualisasi hierarki CPL → Mata Kuliah → CPMK
- Expandable tree untuk eksplorasi detail
- Statistik cepat: Total mahasiswa, MK, CPL tercapai
- Grafik Radar Chart untuk overview 8 CPL
- Form input nilai per CPMK dengan bobot otomatis
- Kalkulasi real-time nilai MK
- Auto-distribusi ke CPL terkait
- Validasi nilai 0-100
- Generate laporan per mahasiswa & semester
- Tabel CPL expandable: Klik untuk melihat detail
- Breakdown lengkap: CPL → MK → CPMK dengan bobot
- Menampilkan:
- Bobot setiap CPMK dalam MK
- Nilai tertimbang (Nilai × Bobot)
- Kontribusi ke CPL (persentase)
- Export PDF/Excel (mockup)
4 Tab Terintegrasi:
- Upload file Excel (.xlsx) atau CSV
- Preview data sebelum import
- Validasi otomatis NIM dan nilai
- Auto-kalkulasi CPL dari nilai MK
- Statistik hasil import (Total, Sukses, Gagal)
- Monitoring mahasiswa dengan nilai
- Filter per prodi
- Status: 🟢 Terimport / 🔵 Mock Data / ⚪ Manual
- Statistik: Total nilai, dari import, kelengkapan
- Grid cards dengan statistik per MK
- Rata-rata nilai dengan color coding:
- 🟢 Hijau (≥75): Baik
- 🟡 Kuning (60-74): Cukup
- 🔴 Merah (<60): Kurang
- Min-Max nilai, jumlah mahasiswa
- Progress bar visual
- Summary cards: Tercapai, Cukup, Belum Tercapai
- Tabel CPL dengan distribusi
- Info kalkulasi otomatis
- Filter prodi & semester
Integrasi Real-time:
- Import → Auto refresh semua tab
- localStorage → Persist data
- Tombol refresh manual di setiap tab
- Matrix mapping CPL ↔ MK ↔ CPMK
- Visualisasi bobot kontribusi
- 8 CPL per prodi dengan deskripsi lengkap
- Responsive Design: Desktop, tablet, mobile
- Dark Mode Compatible: Siap untuk dark theme
- Interactive Charts: Recharts untuk visualisasi
- Smooth Animations: Tailwind CSS transitions
- Accessible: ARIA labels, keyboard navigation
┌─────────────────────────────────────────────────────────┐
│ Dashboard CPL - Teknik Informatika │
├─────────────────────────────────────────────────────────┤
│ 📘 CPL1: Mampu menerapkan pemikiran logis │
│ └─ 📗 Pemrograman Web (INF101) - 3 SKS │
│ ├─ 🟣 CPMK1-1: Konsep dasar (20%) │
│ ├─ 🟣 CPMK1-2: HTML/CSS (30%) │
│ ├─ 🟣 CPMK1-3: JavaScript (25%) │
│ └─ 🟣 CPMK1-4: Framework (25%) │
│ └─ 📗 Struktur Data (INF102) - 3 SKS │
│ ├─ 🟣 CPMK2-1: Array & Linked List (25%) │
│ └─ 🟣 CPMK2-2: Tree & Graph (25%) │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Laporan CPL - Andi Miftah (105841109601) │
│ Semester 1 | 2023/2024 Ganjil │
├─────────────────────────────────────────────────────────┤
│ CPL3: Mampu menerapkan pemikiran logis [▼ Expand] │
│ Nilai: 82.5 | Status: 🟢 Tercapai │
│ │
│ 📗 Pemrograman Web (INF101) - 3 SKS │
│ ┌────────────┬───────┬──────────────┬─────────────┐ │
│ │ CPMK │ Bobot │ Nilai │ Kontribusi │ │
│ ├────────────┼───────┼──────────────┼─────────────┤ │
│ │ CPMK1-1 │ 20% │ 85 → 17.0 │ 2.5% → CPL │ │
│ │ CPMK1-2 │ 30% │ 90 → 27.0 │ 3.75% → CPL │ │
│ │ CPMK1-3 │ 25% │ 78 → 19.5 │ 3.13% → CPL │ │
│ │ CPMK1-4 │ 25% │ 82 → 20.5 │ 3.13% → CPL │ │
│ └────────────┴───────┴──────────────┴─────────────┘ │
│ Nilai MK: 84.0 | Kontribusi ke CPL3: 12.5% │
└─────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────┐
│ Manajemen Data - Import Nilai │
├─────────────────────────────────────────────────────────┤
│ Prodi: [Informatika ▼] Semester: [1 ▼] │
│ │
│ pload File Excel/CSV │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Drag & drop file atau klik untuk pilih │ │
│ │ Format: .xlsx, .csv | Max: 5MB │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ Preview Data (10 rows) │
│ ┌────────┬─────────────┬───────┬───────┬───────┐ │
│ │ NIM │ Nama │ INF101│ INF102│ ... │ │
│ ├────────┼─────────────┼───────┼───────┼───────┤ │
│ │ 105... │ Andi Miftah │ 85 │ 90 │ ... │ │
│ │ 105... │ Annisya │ 90 │ 85 │ ... │ │
│ └────────┴─────────────┴───────┴───────┴───────┘ │
│ │
│ [Import Data] [📥 Download Template] │
│ │
│ ✓ Import berhasil: 10 data | 0 gagal │
└─────────────────────────────────────────────────────────┘
- Framework: Next.js 14.2.33 (App Router)
- UI Library: React 19.0.0
- Language: TypeScript 5.x + JavaScript
- Styling: Tailwind CSS 3.3
- Charts: Recharts 2.10.x
- Excel Parsing: xlsx 0.18.5
- State Management: React Hooks (useState, useEffect, useCallback)
- Data Storage: localStorage (development) → PostgreSQL (production)
- Data Integration: Custom integration layer (
dataIntegration.ts)
- Linter: ESLint 9.x
- Formatter: Prettier (recommended)
- Package Manager: npm (recommended) / yarn / pnpm
Node.js: 18+ or 20+
npm: 9+ (comes with Node.js)# 1. Clone repository
git clone https://github.com/Nur-Hidayat-FTI22E/CPL_Sign.git
cd CPL_Sign
# 2. Install dependencies
npm install
# 3. Run development server
npm run dev
# 4. Open browser
# Navigate to http://localhost:3000# Build
npm run build
# Start production server
npm start
# Server runs on http://localhost:3000kkp-plus-new/
├── src/
│ ├── app/ # Next.js App Router
│ │ ├── page.jsx # Landing page
│ │ ├── (auth)/login/ # Login page
│ │ ├── dashboard/ # Dashboard + Tree diagram
│ │ ├── input-nilai/ # Manual input form
│ │ ├── laporan/ # Laporan dengan breakdown
│ │ ├── manajemen/ # 4 tabs: Import, Mahasiswa, MK, CPL
│ │ ├── cpl-mapping/ # CPL mapping matrix
│ │ ├── penilaian/ # Penilaian module
│ │ └── pengumuman/ # Announcement
│ │
│ ├── components/ # Reusable components
│ │ ├── Navbar.jsx
│ │ ├── Sidebar.jsx
│ │ ├── RadarCPL.jsx
│ │ ├── CpmkBreakdownDisplay.jsx
│ │ └── ...
│ │
│ ├── data/ # Data layer
│ │ ├── mock.js # Informatika data
│ │ ├── mock-arsitektur.js # Arsitektur data
│ │ └── kurikulumArsitektur.js
│ │
│ └── utils/ # Utilities
│ ├── dataIntegration.ts # Core integration
│ └── gradeCalculator.js
│
├── public/ # Static assets
├── contoh-import-*.xlsx # Example files
├── QUICK_START.md # Quick guide
├── TECHNICAL_DOC.md # Technical docs
├── PANDUAN-IMPORT-NILAI.md # Import guide
├── package.json
└── README.md # This file
Key Files:
src/utils/dataIntegration.ts: Core logic untuk merge data & kalkulasi CPLsrc/app/dashboard/manajemen/page.tsx: 4-tab management systemsrc/app/dashboard/laporan/page.tsx: Laporan dengan CPMK breakdownsrc/data/mock.js: Static data Informatika (69 MK, 8 CPL)
| Dokumen | Deskripsi | Link |
|---|---|---|
| QUICK_START.md | Panduan cepat untuk pengguna | Buka |
| TECHNICAL_DOC.md | Dokumentasi teknis untuk developer | Buka |
| PANDUAN-IMPORT-NILAI.md | Cara import nilai dari Excel/CSV | Buka |
| MK_CODES.md | Daftar kode mata kuliah semua prodi | [Akan dibuat] |
- Login: Gunakan akun kaprodi sesuai prodi
- Dashboard: Lihat overview CPL dengan tree diagram
- Input Nilai: Input manual atau import batch dari Excel
- Laporan: Generate laporan dengan breakdown detail CPMK
- Manajemen: Monitor data mahasiswa, MK, dan CPL
Alur Kalkulasi CPL:
Input Nilai MK (per CPMK)
↓
Nilai MK = Σ (Nilai CPMK × Bobot CPMK)
↓
Nilai CPL = Σ (Nilai CPMK × Bobot MK × Bobot CPMK) / Σ (Bobot MK × Bobot CPMK)
↓
Status: Tercapai (≥75) | Cukup (60-74) | Belum (<60)
Contoh Perhitungan:
CPL3: Mampu menerapkan pemikiran logis
├── MK: Pemrograman Web (Bobot: 12.5% dari 8 MK)
│ ├── CPMK1-1 (20%): Nilai 85 → Kontribusi: 85 × 0.125 × 0.20 = 2.125
│ ├── CPMK1-2 (30%): Nilai 90 → Kontribusi: 90 × 0.125 × 0.30 = 3.375
│ └── ...
└── Nilai CPL3 = Σ Kontribusi / Σ Bobot
Sistem menyediakan 5 akun demo untuk testing:
| Program Studi | Password | Kode | |
|---|---|---|---|
| Teknik Informatika | kaprodi.informatika@unismuh.ac.id | kaprodi123 | INF |
| Arsitektur | kaprodi.arsitektur@unismuh.ac.id | kaprodi123 | ARS |
| Perencanaan Wilayah Kota | kaprodi.pwk@unismuh.ac.id | kaprodi123 | PWK |
| Teknik Sipil | kaprodi.sipil@unismuh.ac.id | kaprodi123 | SIP |
| Teknik Elektro | kaprodi.elektro@unismuh.ac.id | kaprodi123 | ELK |
Cara Login:
- Buka http://localhost:3000/login
- Pilih role dari dropdown
- Klik "Quick Login" atau input manual
- Redirect ke dashboard prodi
{
"next": "14.2.33",
"react": "19.0.0",
"react-dom": "19.0.0",
"recharts": "^2.10.0",
"xlsx": "^0.18.5"
}{
"@eslint/eslintrc": "^3.2.0",
"eslint": "^9.17.0",
"postcss": "^8.4.49",
"tailwindcss": "^3.3.0"
}# Install Vercel CLI
npm i -g vercel
# Deploy
vercel --prod# Build image
docker build -t cpl-system .
# Run container
docker run -p 3000:3000 cpl-system# .env.local (development)
NEXT_PUBLIC_APP_URL=http://localhost:3000
# .env.production
NEXT_PUBLIC_APP_URL=https://cpl.unismuh.ac.id
DATABASE_URL=postgresql://user:pass@host:5432/cpl
JWT_SECRET=your-secret-key# Run unit tests
npm run test
# Run tests with coverage
npm run test:coverage
# Run E2E tests
npm run test:e2eKami menyambut kontribusi dari komunitas! Berikut cara berkontribusi:
# 1. Fork repository
# 2. Clone fork Anda
git clone https://github.com/YOUR_USERNAME/CPL_Sign.git
# 3. Buat branch baru
git checkout -b feature/nama-fitur
# 4. Commit changes
git commit -m "feat: tambah fitur X"
# 5. Push ke fork
git push origin feature/nama-fitur
# 6. Buat Pull Request ke branch FR_branchGunakan Conventional Commits:
feat: menambah fitur baru
fix: memperbaiki bug
docs: update dokumentasi
style: formatting, missing semicolons, etc
refactor: refactoring code
test: menambah test
chore: update build tasks, package manager configs, etc
- TypeScript: Gunakan type-safe code
- ESLint: Follow linting rules
- Prettier: Format code sebelum commit
- Comments: Tulis komentar untuk logic kompleks
- Tests: Tambahkan tests untuk fitur baru
Sistem ini dikembangkan untuk Universitas Muhammadiyah Makassar dan dilisensikan di bawah MIT License.
MIT License
Copyright (c) 2025 Universitas Muhammadiyah Makassar
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction...
Developer: hacklab Organization: COCONUT Computer Club
Terima kasih kepada:
- Universitas Muhammadiyah Makassar - Dukungan dan fasilitas
- Fakultas Teknik - Guidance dan requirements
- Next.js Team - Amazing framework
- Recharts - Beautiful charts library
- SheetJS - Excel parsing made easy
- Open Source Community - Inspirasi dan tools
- Email: [contact@unismuh.ac.id]
- Website: https://unismuh.ac.id
- GitHub Issues: Report Bug
- GitHub Discussions: Ask Question
Jika sistem ini bermanfaat, berikan ⭐ di GitHub!
Sistem CPL adalah bagian dari transformasi digital pendidikan tinggi di Indonesia.
Crafted with ❤️ by hacklab
© 2025 Universitas Muhammadiyah Makassar