Aplikasi web interaktif untuk menganalisis dan mengelola nilai mahasiswa Teknik Elektro dengan fitur ranking, konversi nilai huruf, dan sistem pembimbing akademik.
- β Manajemen Data Mahasiswa - Pengelolaan data mahasiswa dengan skor dan pembimbing
- π Ranking Otomatis - Peringkat mahasiswa berdasarkan skor tertinggi
- π Konversi Nilai - Konversi skor numerik ke nilai huruf (A-E)
- π§ Sistem Pembimbing - Informasi dosen pembimbing dengan email
- π Statistik Real-time - Rata-rata nilai, jumlah lulus, dan mahasiswa terbaik
- π₯οΈ Console Output - Tampilan hasil analisis di browser console
- β‘ ES6+ Features - Menggunakan destructuring, arrow functions, spread operator, optional chaining
- Browser modern (Chrome, Firefox, Edge, Safari)
- Node.js (opsional, untuk testing via terminal)
git clone https://github.com/bnrpmbd/tugas-es6.git
cd tugas-es6Buka file index.html di browser, lalu buka Console (tekan F12 atau Ctrl + Shift + J):
# Windows
start index.html
# macOS
open index.html
# Linux
xdg-open index.htmlAtau melalui Live Server di VSCode. Lihat output di Console Browser, bukan di halaman web.
node main.jsTugas 1/
βββ index.html # Halaman utama aplikasi
βββ main.js # Logic JavaScript & data processing
βββ README.md # Dokumentasi project
βββ screenshots/ # Folder untuk screenshot output
βββ console_1.png # Screenshot console browser (part 1)
βββ console_2.png # Screenshot console browser (part 2)
βββ terminal.png # Screenshot terminal output
-
JavaScript ES6+
- Arrow Functions
- Destructuring
- Spread Operator
- Optional Chaining (
?.) - Nullish Coalescing (
??) - Template Literals
- Array Methods (map, filter, reduce)
-
HTML5 - Minimal markup untuk load JavaScript
-
Console API - Menampilkan output menggunakan
console.log()
const appName = "Electrical Engineering Score Analyzer";
let version = 1.0;
const author = "Banar";const getAverage = arr => arr.reduce((sum, s) => sum + s.score, 0) / arr.length;
const getPassed = arr => arr.filter(s => s.score >= 80);const getTopStudent = ([first, ...rest]) => {
return rest.reduce((best, s) => s.score > best.score ? s : best, first);
};const email = student.advisor?.email ?? "Belum ada pembimbing";const rankStudents = (arr) => {
return [...arr].sort((a, b) => b.score - a.score);
};const students = [
{
name: "Rina",
score: 88,
advisor: {
name: "Dr. Ahmad",
email: "ahmad@univ.ac.id"
}
},
// ...
];| Skor | Nilai Huruf |
|---|---|
| β₯ 85 | A |
| β₯ 70 | B |
| β₯ 60 | C |
| β₯ 50 | D |
| < 50 | E |
Edit array students di main.js:
const students = [
{ name: "Nama Baru", score: 90, advisor: { name: "Dr. X", email: "x@univ.ac.id" } },
// tambahkan mahasiswa lainnya...
];Ubah kondisi di fungsi getPassed:
const getPassed = arr => arr.filter(s => s.score >= 75); // ubah dari 80 ke 75- Pastikan file
main.jsdanindex.htmldi folder yang sama - Buka Console browser dengan menekan F12 atau Ctrl + Shift + J
- Hard refresh browser:
Ctrl + Shift + RatauCtrl + F5 - Cek apakah ada error di Console
- Pastikan tidak ada variabel dengan nama yang sama
- Cek duplikasi
constataulet
- Cek path di
<script src="main.js"></script>sudah benar - Pastikan nama file
main.js(huruf kecil semua)
- Tambahkan UI visual di halaman HTML (tidak hanya console)
- Export data ke PDF
- Import data dari CSV/Excel
- Database integration
- Authentication system
- Multi-semester support
- Grafik visualisasi nilai
Kontribusi sangat diterima! Silakan:
- Fork repository ini
- Buat branch baru (
git checkout -b feature/AmazingFeature) - Commit perubahan (
git commit -m 'Add some AmazingFeature') - Push ke branch (
git push origin feature/AmazingFeature) - Buat Pull Request
Distributed under the MIT License. See LICENSE for more information.
Banar Pambudi
- GitHub: @bnrpmbd
- Email: banarpambudi.ti@gmail.com
- LinkedIn: @banarpambudi
- Terima kasih kepada dosen pengampu mata kuliah Pemrograman Web
- Inspirasi dari berbagai tutorial JavaScript ES6+
- Community support dari Stack Overflow
β Star repository ini jika membantu!
π« Punya pertanyaan? Buat issue baru.
Made with β€οΈ for Electrical Engineering Students


