- Deskripsi Proyek
- Anggota Kelompok
- Struktur Data yang Digunakan
- Fitur dan Struktur Data yang Digunakan
- Pengguna Sistem
- Requirements
- Cara Build dan Menjalankan Program
- Catatan
Program Pengolahan Data e-Learning bertujuan untuk mempermudah pengelolaan materi, penugasan, dan pengumpulan tugas mahasiswa. Sistem ini dibangun sebagai aplikasi Command Line Interface (CLI), menggunakan berbagai struktur data untuk meningkatkan efisiensi dalam pengelolaan dan pemrosesan data.
Proyek ini merupakan Tugas Akhir dari mata kuliah KOM120H - Struktur Data, yang dikembangkan oleh Kelompok 8 Paralel 1.
Kelompok 8 Paralel 1:
- Fauzan Arif Tricahya – G6401231040
- Husni Abdillah – G6401231097
- Muhammad Abdullah – G6401231104
-
HashTable
- Implementasi tabel hash dengan chaining untuk menangani collision
- Digunakan dalam: Sistem kehadiran, autentikasi user
- Kompleksitas pencarian: O(1) average case
-
LinkedList
- Implementasi linked list untuk penyimpanan sekuensial
- Digunakan dalam: Pengelolaan materi perkuliahan
- Kompleksitas pencarian: O(n)
-
Queue
- Implementasi antrian dengan prinsip FIFO
- Digunakan dalam: Antrian penilaian tugas
- Kompleksitas: O(1) untuk enqueue dan dequeue
-
Stack
- Implementasi tumpukan dengan prinsip LIFO
- Digunakan dalam: Fitur undo pada penilaian tugas
- Kompleksitas: O(1) untuk push dan pop
-
PriorityQueue
- Implementasi antrian prioritas
- Digunakan dalam: Pengurutan tugas berdasarkan deadline
- Kompleksitas: O(log n) untuk insert dan delete
-
MergeSort
- Implementasi algoritma pengurutan merge sort
- Digunakan dalam: Pengurutan tugas berdasarkan nilai
- Kompleksitas: O(n log n)
-
std::vector
- Digunakan dalam: Penyimpanan daftar tugas, data kehadiran, tampilan tabel
- Fitur: Tampilan rekap kehadiran, daftar tugas, statistik nilai
-
std::map
- Digunakan dalam: Manajemen mata kuliah, mapping jawaban tugas
- Fitur: Pengelolaan jawaban tugas mahasiswa
-
std::list
- Digunakan dalam: Implementasi internal HashTable untuk collision handling
- Fitur: Penyimpanan data dengan key yang sama dalam tabel hash
-
std::pair
- Digunakan dalam: Penyimpanan pasangan key-value di HashTable
- Fitur: Manajemen data kehadiran dan autentikasi
-
std::string
- Digunakan sebagai tipe data utama untuk text storage
- Fitur: Semua fitur yang memerlukan manipulasi teks
-
Sistem Autentikasi (Login)
- HashTable<string, User> - Pencarian user dengan kompleksitas O(1)
-
Pengelolaan Materi
- LinkedList - Penyimpanan dan traversal materi perkuliahan
- std::vector - Tampilan tabel materi
-
Sistem Kehadiran
- HashTable<string, KehadiranInfo> - Penyimpanan data kehadiran per pertemuan
- HashTable<string, bool> - Verifikasi kehadiran mahasiswa dengan O(1)
- std::vector - Rekap dan laporan kehadiran
-
Pengelolaan Tugas
- std::vector - Penyimpanan data tugas
- PriorityQueue - Pengurutan berdasarkan deadline
- MergeSort - Pengurutan berdasarkan nilai
-
Sistem Penilaian
- Queue - Antrian tugas yang perlu dinilai
- Stack - Riwayat perubahan untuk fitur undo
- std::map - Penyimpanan jawaban tugas per mahasiswa
- Dosen
- Mahasiswa
Untuk membangun dan menjalankan aplikasi ini, Anda memerlukan:
- MinGW-w64 (versi 8.0.0 atau lebih tinggi)
- CMake (versi 3.10 atau lebih tinggi) - opsional
- Dukungan compiler C++14 atau lebih baru
Cara ini lebih sederhana dan cepat untuk compile program:
git clone https://github.com/HusniAbdillah/e-learning.git
cd e-learningg++ -std=c++17 -O2 -Iinclude -o e-learning src\*.cppWindows (Command Prompt/PowerShell):
.\e-learning.exeUnix-based terminals (Git Bash, WSL, Linux, Mac):
./e-learning.exeCara ini menggunakan CMake untuk build sistem yang lebih kompleks:
git clone https://github.com/HusniAbdillah/e-learning.git
cd e-learningmkdir build_mingw
cd build_mingwcmake -G "MinGW Makefiles" ..mingw32-makeWindows (Command Prompt/PowerShell):
.\e-learning.exeUnix-based terminals (Git Bash, WSL, Linux, Mac):
./e-learning.exe- Metode 1 disarankan karena lebih cepat dan langsung.
- Metode 2 berguna jika Anda ingin menggunakan CMake untuk manajemen build yang lebih advanced.
- Pastikan MinGW-w64 sudah terinstall dan ter-configure dengan benar di PATH sistem.
- File data akan otomatis di-copy ke direktori yang sama dengan executable.
