Tugas Pertemuan 15 - Quiz 2 & Final Project

Nama : Ken Anargya Alkausar

NRP   : 5025211168

Kelas  : Pemrograman Web A

Tahun : 2023

Link Repo : fihrizilhamr/Pemrograman-Web-A-FP-2023 (github.com)

Soal:

1. Tuliskan spesifikasi kebutuhan perangkat lunak dan struktur menu yang cocok untuk aplikasi yang akan dibuat

2. Buatlah desain database dan struktur tabel yang akan menampung data yang dikelola 

3. Desain Front End dan page yang akan dibuat untuk aplikasi 

4. Sebutkan daftar action untuk backend yang akan dibutuhkan. Jelaskan digunakan apa saja 

5. Implementasikan dan buat dokumentasinya. Presentasikan jawabanmu ke dalam bentuk video dan embenddad ke blog jawaban. 


Jawab


1. 

Spesifikasi Kebutuhan Perangkat Lunak (Software Requirements Specification - SRS)

1. Fungsionalitas

  • Manajemen Siswa:

-        Penyimpanan dan pengelolaan data siswa (nama, usia, alamat, kontak, riwayat belajar).

-        Fasilitas untuk mendaftar siswa baru dan memperbarui data siswa yang ada.

  • Manajemen Jadwal Bimbingan:

-        Kalender interaktif untuk menampilkan jadwal bimbingan.

-        Fungsi untuk menambah, mengubah, dan membatalkan jadwal.

  • Pengelolaan Materi Pelajaran:

-        Penyimpanan dan pengaturan materi pelajaran.

-        Integrasi dengan sumber belajar eksternal.

  • Komunikasi:

-        Sistem pesan internal untuk komunikasi antara guru, siswa, dan orang tua.

-        Fitur notifikasi untuk jadwal, hasil tes, dan pengumuman.

  • Dashboard dan Laporan:

-        Dashboard dengan ringkasan statistik (jumlah siswa, jadwal, kinerja guru).

-        Laporan tentang perkembangan siswa, kehadiran, dan prestasi akademik.

  • Keamanan dan Akses:

-        Keamanan data yang kuat.

-        Pengelolaan akses berbasis peran (admin, guru, orang tua).

2. Kinerja

-        Responsif pada berbagai perangkat (desktop, tablet, ponsel).

-        Waktu muat halaman yang cepat.

-        Kapasitas penggunaan simultan yang tinggi tanpa penurunan performa.

3. Keamanan

-        Otentikasi pengguna yang aman.

-        Enkripsi data pribadi dan komunikasi.

-        Backup data reguler dan recovery plan.

4. Antar Muka Pengguna (UI)

-        Antarmuka yang intuitif dan mudah digunakan.

-        Navigasi yang jelas dan logis.

-        Desain yang sesuai dengan prinsip aksesibilitas.

5. Integrasi

-        Integrasi dengan sistem pembayaran (jika perlu).

-        Integrasi dengan platform email untuk notifikasi.

Struktur Menu

  1. Beranda

-        Ringkasan cepat (jadwal mendatang, pengumuman terbaru).

  1. Manajemen Siswa

-        Daftar Siswa

-        Tambah/Mutakhirkan Siswa

-        Riwayat Belajar Siswa

  1. Jadwal Bimbingan

-        Kalender Jadwal

-        Tambah/Ubah Jadwal

-        Histori Bimbingan

  1. Materi Pelajaran

-        Daftar Materi

-        Tambah/Mutakhirkan Materi

-        Sumber Belajar Eksternal

  1. Komunikasi

-        Pesan

-        Notifikasi

  1. Dashboard & Laporan

-        Dashboard Pengelola

-        Laporan Prestasi Siswa

-        Laporan Kehadiran

  1. Pengaturan

-        Pengaturan Akun

-        Keamanan

-        Pengaturan Sistem

  1. Bantuan & Dukungan

-        FAQ

-        Kontak Dukungan

2. 

Struktur Tabel

a. Tabel students (Siswa)

  • student_id (PK): ID unik siswa.
  • name: Nama siswa.
  • age: Usia siswa.
  • address: Alamat siswa.
  • contact_info: Informasi kontak siswa.
  • enrollment_date: Tanggal pendaftaran siswa.

b. Tabel teachers (Guru)

  • teacher_id (PK): ID unik guru.
  • name: Nama guru.
  • specialization: Spesialisasi/subjek guru.
  • contact_info: Informasi kontak guru.

c. Tabel classes (Kelas)

  • class_id (PK): ID unik kelas.
  • subject: Subjek yang diajarkan.
  • level: Tingkat kelas (misal: SD, SMP, SMA).

d. Tabel schedules (Jadwal)

  • schedule_id (PK): ID unik jadwal.
  • class_id (FK): ID kelas.
  • teacher_id (FK): ID guru.
  • date_time: Waktu jadwal bimbingan.
  • duration: Durasi bimbingan.
  • branch: Cabang ACC tempat bimbingan.

e. Tabel enrollments (Pendaftaran)

  • enrollment_id (PK): ID unik pendaftaran.
  • student_id (FK): ID siswa.
  • class_id (FK): ID kelas.
  • enrollment_date: Tanggal pendaftaran.

f. Tabel materials (Materi)

  • material_id (PK): ID unik materi.
  • class_id (FK): ID kelas.
  • title: Judul materi.
  • content: Isi/deskripsi materi.
  • resource_link: Tautan sumber tambahan.

g. Tabel communications (Komunikasi)

  • message_id (PK): ID unik pesan.
  • sender_id: ID pengirim (bisa siswa, guru, atau orang tua).
  • receiver_id: ID penerima (bisa siswa, guru, atau orang tua).
  • message_content: Isi pesan.
  • date_time: Waktu pengiriman pesan.

h. Tabel users (Pengguna)

  • user_id (PK): ID unik pengguna.
  • username: Nama pengguna.
  • password: Kata sandi pengguna.
  • role: Peran pengguna (admin, guru, siswa, orang tua).
  • associated_id: ID terkait (ID siswa/guru).

i. Tabel attendance (Kehadiran)

  • attendance_id (PK): ID unik kehadiran.
  • student_id (FK): ID siswa.
  • class_id (FK): ID kelas.
  • date_time: Waktu kelas.
  • status: Status kehadiran (hadir, izin, tidak hadir).

3. 


4. 

Daftar action untuk backend yang akan dibutuhkan dalam aplikasi web ACC:

  1. Manajemen Siswa:

-        Tambah Siswa: Menyimpan data siswa baru.

-        Dapatkan Detail Siswa: Mengambil informasi siswa.

-        Perbarui Siswa: Memperbarui data siswa.

-        Hapus Siswa: Menghapus data siswa.

-        Daftar Siswa: Menampilkan daftar semua siswa.

  1. Manajemen Jadwal Bimbingan:

-        Tambah Jadwal: Menyimpan jadwal bimbingan baru.

-        Dapatkan Jadwal: Mengambil detail jadwal bimbingan.

-        Perbarui Jadwal: Memperbarui jadwal bimbingan.

-        Hapus Jadwal: Menghapus jadwal bimbingan.

-        Daftar Jadwal: Menampilkan daftar semua jadwal.

  1. Pengelolaan Materi Pelajaran:

-        Unggah Materi: Menyimpan materi pelajaran baru.

-        Dapatkan Materi: Mengambil materi pelajaran.

-        Perbarui Materi: Memperbarui materi pelajaran.

-        Hapus Materi: Menghapus materi pelajaran.

-        Daftar Materi: Menampilkan daftar semua materi.

  1. Komunikasi:

-        Kirim Pesan: Mengirim pesan antara pengguna.

-        Dapatkan Pesan: Mengambil pesan dari pengguna.

-        Daftar Pesan: Menampilkan semua pesan dalam thread.

  1. Dashboard dan Laporan:

-        Statistik Siswa: Mengambil data statistik siswa.

-        Statistik Jadwal: Mengambil data statistik jadwal bimbingan.

-        Generate Laporan: Membuat laporan berdasarkan data yang dipilih.

  1. Keamanan dan Akses:

-        Login: Mengotentikasi pengguna.

-        Registrasi: Mendaftarkan pengguna baru.

-        Reset Password: Mengatur ulang kata sandi pengguna.

-        Verifikasi Pengguna: Memverifikasi identitas pengguna.

-        Manajemen Peran: Mengatur akses berdasarkan peran pengguna.

  1. Pengaturan Umum:

-        Pengaturan Profil: Memperbarui informasi profil pengguna.

-        Pengaturan Aplikasi: Mengatur konfigurasi umum aplikasi.

 5. 


Comments