Final Project PBKK kelas A - Senin
SOAL
Cari paper yang berhubungan dengan aktivitas pembuatan perangkat lunak/ aplikasi menggunakan framework.
- Buatlah deskribsi studi kasus aplikasi ditinjau dari MVC nya(individu)
- Buatlah rancangan umum arsitektur atau fitur yang ada dalam aplikasi (individu)
- Rancang desain databasenya (individu)
- Buat desain front end (individu)
- Tentukan Control yang akan mengandle logika back end. (individu)
- Implementasikan rancangan yang sudah dibuat menggunakan Framework NET, CI ataupun Framework Google (pilih salah satu - bisa kelompok maks 3)
- Buat video presentasinya, upload di youtube, dan didokumentasikan di blog.
- Pengumpulan terakhir 16 Des 2023 pukul 08.00 , di dokumentasi di blog masing-masing, dan mengisi lembar monitoring dengan judul "Final Project Pemrograman Berbasis Kerangka Kerja". Tidak lupa membuat koment link pekerjaan di halaman post ini.
MVC adalah pola desain yang memisahkan aplikasi menjadi tiga komponen utama: Model, View, dan Controller, masing-masing dengan tanggung jawab khusus. Dalam konteks aplikasi ujian online, peranannya adalah sebagai berikut:
a. Model: Komponen ini bertanggung jawab atas data, logika, dan aturan bisnis aplikasi. Dalam aplikasi ujian online, Model mengelola data yang berkaitan dengan pertanyaan ujian, jawaban siswa, skor, dan informasi pengguna seperti data siswa dan guru. Model juga menangani logika penilaian, seperti menghitung skor, dan memastikan integritas data seperti validasi jawaban dan pengelolaan waktu ujian.
b. View: View mengatur bagaimana data ditampilkan kepada pengguna. Dalam kasus sistem ujian online, ini mencakup antarmuka pengguna di mana siswa mengakses dan menjawab pertanyaan ujian, serta tampilan yang memungkinkan guru membuat dan mengelola pertanyaan ujian. View juga bertanggung jawab untuk presentasi hasil ujian, seperti menampilkan skor dan umpan balik kepada siswa.
c. Controller: Controller bertindak sebagai penghubung antara Model dan View. Ia memproses input dari pengguna (baik siswa maupun guru), mengirimkan data tersebut ke Model untuk pemrosesan atau pengambilan data yang relevan, dan kemudian mengirimkan data tersebut kembali ke View untuk ditampilkan. Dalam konteks ujian online, Controller mengelola interaksi seperti penerimaan jawaban siswa, permintaan data ujian oleh guru, dan pengaturan parameter ujian.
Dalam pengembangan sistem ujian online, penggunaan MVC tidak hanya meningkatkan efisiensi dalam pengembangan tetapi juga memastikan bahwa sistem mudah diadaptasi dan diperbarui sesuai dengan kebutuhan pendidikan yang berubah-ubah. Ini menjadikan MVC pilihan yang tepat untuk sistem yang memerlukan fleksibilitas tinggi dan kemudahan dalam pengelolaan.
2. Arsitektur dan Fitur
a. Arsitektur Berbasis Web Database Server
Web Server: Bertanggung jawab untuk menangani permintaan (request) dari pengguna. Ini adalah titik pertama di mana permintaan pengguna diterima dan diproses.
Database Server: Menyimpan semua data terkait aplikasi, seperti data soal ujian, data siswa, data administrasi, dan hasil ujian. Semua interaksi dengan data disimpan dan dikelola di sini.
b. Teknologi dan Bahasa Pemrograman
CodeIgniter Framework: Digunakan untuk mengimplementasikan pola MVC, memudahkan pembangunan dan pemeliharaan aplikasi.
PHP (Hypertext Preprocessor): Bahasa pemrograman utama yang digunakan untuk mengembangkan logika pada sisi server.
MySQL: Sebagai Database Management System (DBMS) untuk penyimpanan dan pengelolaan data.
c. Akses Pengguna
Pengguna (Siswa dan Administrator): Dapat mengakses sistem ujian online melalui browser di PC atau notebook yang terhubung ke internet melalui modem atau Wi-Fi. Siswa menggunakan sistem untuk melaksanakan ujian, sementara administrator menggunakannya untuk mengelola soal ujian dan mengakses data hasil ujian.
d. Proses Operasional
Saat pengguna membuat permintaan (misalnya memulai ujian atau melihat hasil), permintaan tersebut dikirim ke web server.
Web server memproses permintaan tersebut dengan mengakses database melalui Model, mengambil atau memperbarui data yang diperlukan.
Setelah diproses, hasil dikirim kembali ke pengguna melalui View, yang menampilkan informasi atau feedback yang relevan di browser pengguna.
3. Rancangan Database
1.) Tabel Pengguna (`pengguna
`):
Tabel ini dirancang untuk menyimpan informasi akun pengguna yang mengakses sistem, termasuk siswa, guru, dan administrator.
• `username
`: Pengenal unik untuk pengguna, digunakan untuk tujuan login.
• `password
`: Kata sandi terenkripsi untuk akun pengguna.
• `nama_pengguna
`: Nama lengkap pengguna.
• `telp_pengguna
`: Nomor telepon kontak pengguna.
• `email_pengguna
`: Alamat email pengguna.
• `level_pengguna
`: Peran atau level pengguna dalam sistem (misalnya admin, siswa, guru), yang menentukan izin dan akses dalam aplikasi.
2.) Tabel Kelas (`kelas
`):
Tabel ini berisi informasi tentang kelas tempat para siswa dibagi.
• `id_kelas
`: Primary key untuk tabel kelas, pengenal unik untuk setiap kelas.
• `nama_kelas
`: Nama atau judul kelas.
• `kelas
`: Tahun kelas.
• `p_keahlian
`: Bidang yang terkait keahlian khusus pada SMK
• `keterangan
`: Bidang teks untuk detail atau deskripsi tambahan tentang kelas.
3.) Tabel Mata Pelajaran (`mata_pelajaran
`):
Tabel ini untuk mata pelajaran atau kursus yang ditawarkan.
• `id_mapel
`: Primary key untuk tabel mata pelajaran, pengenal unik untuk setiap mata pelajaran.
• `nama_mapel
`: Nama mata pelajaran.
• `kelas
`: Level kelas
• `p_keahlian
`: Keahlian program
4.) Tabel Siswa (`siswa
`):
Tabel ini berisi detail dari siswa.
• `nis
`: Nomor identifikasi siswa, berfungsi sebagai primary key.
• `id_kelas
`: Foreign key yang menghubungkan siswa dengan kelas mereka.
• `nama_siswa
`: Nama lengkap siswa.
• `pwd_siswa
`: Kata sandi siswa untuk akses sistem.
• `email_siswa
`: Alamat email siswa.
• `telp_siswa
`: Nomor telepon siswa.
5.) Tabel Kategori Soal (`kategori_soal
`):
Tabel ini mengategorikan pertanyaan ke dalam berbagai topik atau kategori.
• `id_kategori
`: Primary key untuk tabel kategori soal, pengenal unik untuk setiap kategori.
• `id_mapel
`: Foreign key yang menghubungkan kategori dengan mata pelajaran tertentu.
• `nama_kategori
`: Nama kategori atau topik.
6.) Tabel Soal (`soal
`):
Tabel ini menyimpan pertanyaan-pertanyaan yang digunakan dalam ujian
• `id_soal
`: Primary key untuk tabel pertanyaan, pengenal unik untuk setiap pertanyaan.
• `id_kategori
`: Foreign key yang mengasosiasikan pertanyaan dengan kategorinya.
• `soal
`: Teks dari pertanyaan itu sendiri.
• `gambar_soal
`: autan ke file gambar jika pertanyaan mencakup elemen visual.
• `pilihan_a
` hingga `pilihan_e
`: Teks untuk opsi pilihan ganda pertanyaan.
• `kunci
`: Kunci atau jawaban untuk pertanyaan.
• `aktif
`: Penanda untuk menunjukkan apakah pertanyaan aktif atau harus digunakan dalam ujian.
7. ) Tabel Ujian (`ujian
`):
Tabel ini berisi informasi tentang ujian atau tes individu.
• `id_ujian
`: Primary key untuk tabel ujian, pengenal unik untuk setiap ujian.
• `id_kelas
`: Foreign key yang menghubungkan ujian dengan kelas tertentu.
• `sumber_soal
`: sumber pertanyaan
• `deskripsi
`: Deskripsi dari ujian.
• `tgl_mulai_ujian
`: Tanggal ketika ujian dijadwalkan untuk dimulai.
• `waktu
`: Waktu atau durasi ujian.
• `jum_soal
`: Jumlah pertanyaan dalam ujian.
• `jangka_waktu_ujian
`: Lama ujian
• `status_ujian
`: Status terkini dari ujian (misalnya aktif, selesai, terjadwal).
• `tipe_ujian
`: Tipe atau kategori dari ujian.
• `dibuat_oleh
`: Pembuat ujian, username guru.
8.) Tabel Ujian Siswa (`ujian_siswa
`):
Tabel ini mencatat partisipasi siswa dalam ujian.
• `id_ujiansiswa
`: Primary key untuk tabel ujian siswa
• `id_ujian
`: Foreign key yang menghubungkan ke ujian spesifik yang telah diambil siswa.
• `nis
`: Foreign key yang menghubungkan ke siswa yang mengambil ujian.
• `skor
`: Skor yang diperoleh siswa dalam ujian.
• `status
`: Status dari percobaan ujian siswa (misalnya lulus, gagal, tertunda).
• `tgl_ujian
`: Tanggal ketika siswa mengambil ujian.
• `wkt_ujian
`: waktu ketika siswa mulai atau menyelesaikan ujian.
• `keterangan
`: Catatan atau komentar tambahan tentang percobaan ujian siswa.
Kode database :
4. Desain Front-End dan Fitur
Halaman soal ujian adalah halaman yang menampilkan soal-soal
ujian. Halaman ini diciptakan otomatis sesuai jenis ujian (exam/quiz) dan soal-soal yang disajikan kepada siswa ditampilkan
secara acak (random).
Dalam konteks arsitektur MVC (Model-View-Controller) yang digunakan oleh framework CodeIgniter, Controller bertanggung jawab untuk mengatur logika backend aplikasi
1.) AuthController
Mengelola proses autentikasi pengguna, termasuk login, logout, dan registrasi.
- Metode:
- login(): Mengautentikasi pengguna.
- logout(): Melogout pengguna dari sistem.
- register(): Mendaftarkan pengguna baru.
- resetPassword(): Menangani permintaan reset password.
2.) KelasController
Mengelola data terkait kelas, termasuk pembuatan, pembaruan, dan penghapusan kelas.
- Metode:
- index(): Menampilkan daftar kelas.
- create(): Membuat kelas baru.
- edit(): Mengedit kelas yang ada.
- delete(): Menghapus kelas.
3.) MataPelajaranController
Mengelola informasi tentang mata pelajaran yang ditawarkan.
- Metode:
- index(): Menampilkan daftar mata pelajaran.
- create(): Menambah mata pelajaran baru.
- edit(): Mengedit mata pelajaran yang ada.
- delete(): Menghapus mata pelajaran.
4.) SiswaController
Mengelola informasi siswa, termasuk profil dan data akademis.
- Metode:
- index(): Menampilkan daftar siswa.
- profile(): Menampilkan dan mengedit profil siswa.
- performance(): Menampilkan kinerja akademis siswa.
5.) SoalController
Mengelola bank soal, termasuk pembuatan, pembaruan, dan penghapusan soal.
- Metode:
- index(): Menampilkan daftar soal.
- create(): Membuat soal baru.
- edit(): Mengedit soal yang ada.
- delete(): Menghapus soal.
6.) UjianController
Mengelola penyelenggaraan ujian, termasuk pengaturan dan pelaksanaan ujian.
- Metode:
- index(): Menampilkan daftar ujian yang tersedia atau yang akan datang.
- create(): Mengatur ujian baru.
- edit(): Mengedit ujian yang ada.
- start()`:Memulai ujian untuk siswa.
- grade(): Menilai jawaban ujian.
- results(): Menampilkan hasil ujian.
7.) UjianSiswaController
Mengelola interaksi siswa dengan ujian, termasuk pendaftaran dan review hasil.
- Metode:
- register(): Siswa mendaftar untuk ujian.
- takeExam(): Siswa mengambil ujian.
- submitExam(): Siswa mengirimkan jawaban ujian.
- review(): Meninjau jawaban dan hasil ujian.
6. Implementasi
Untuk implementasi pada Final Project kami membentuk kelompok yang beranggotakan
Kelompok 16 :
Tsabita Putri Ramadhany 5025211130
Rizky Alifiyah Rahma 5025211208
Widian Sasi Disertasiani 5025211024
Komentar
Posting Komentar