Pertemuan 15 QUIZ 2 PWEB - Lembaga Bimbingan Belajar
Nama : Nadya Zuhria Amana
NRP : 5025211058
Kelas : PWEB A
1. Tuliskan spesfikasi kebutuhan perangkat lunak dan struktur menu yang cocok untuk aplikasi yang dibuat
2. Buatlah desain database dan struktur tabel yang akan menampung data yang di kelola
3. Desain front end dan page yang akan dibuat untuk aplikasi
4. Sebutkan daftar action untuk backend yang akan dibutuhkan, jelaskan di gunakan apa saja
5. Implementasikan dan baut dokumentasinya Presentasikan jawabanmu ke dalam bentuk video dan embed ke blog jawaban ( kelompok 12 des 2023 jam 08.00)
JAWABAN
1. Spesifikasi Kebutuhan Perangkat Lunak dan Struktur Menu
Berikut adalah spesifikasi kebutuhan perangkat lunak dan struktur menu yang cocok untuk aplikasi yang dibuat:
Spesifikasi Kebutuhan
- Manajemen Siswa
- Basis data yang dapat menyimpan informasi siswa, termasuk nama, usia, alamat, data kontak, dan riwayat belajar.
- Kemampuan untuk mendaftarkan siswa baru dan memperbarui informasi yang ada.
- Kemampuan untuk mencari dan memfilter data siswa berdasarkan berbagai kriteria.
- Manajemen Jadwal Bimbingan
- Kalender yang dapat menampilkan jadwal bimbingan berdasarkan cabang, guru, atau mata pelajaran.
- Kemampuan untuk menambah, mengubah, atau membatalkan jadwal bimbingan.
- Kemampuan untuk mencari dan memfilter data jadwal bimbingan berdasarkan berbagai kriteria.
- Pengelolaan Materi Pelajaran
- Penyimpanan materi pelajaran berdasarkan mata pelajaran dan tingkat kelas.
- Integrasi dengan sumber belajar seperti modul, video, atau latihan soal.
- Kemampuan untuk mencari dan memfilter data materi pelajaran berdasarkan berbagai kriteria.
- Komunikasi
- Sistem pesan internal untuk komunikasi antara guru, siswa, dan orang tua.
- Pemberitahuan otomatis tentang jadwal bimbingan, hasil tes, atau pengumuman penting.
- Dashboard dan Laporan
- Dashboard untuk pengelola dengan ringkasan statistik tentang jumlah siswa, jadwal bimbingan, dan kinerja guru.
- Laporan yang dapat dihasilkan, seperti perkembangan siswa, absensi, atau keberhasilan dalam materi tertentu.
- Keamanan dan Akses
- Sistem keamanan yang kuat untuk melindungi data siswa, guru, dan orang tua.
- Manajemen akses berbasis peran, memungkinkan admin, guru, dan orang tua hanya mengakses informasi yang sesuai dengan peran mereka.
- Responsif dan Mudah Digunakan
- Antarmuka pengguna yang responsif dan ramah pengguna, dapat diakses dari perangkat apa pun (desktop, tablet, dan ponsel).
- Navigasi yang mudah untuk memudahkan pengguna dalam menjelajahi fitur-fitur perangkat lunak.
Struktur Menu
Berikut adalah struktur menu yang cocok untuk aplikasi yang dibuat:
- Dashboard
- Grafik dan Ringkasan Statistik
- Laporan
- Manajemen Siswa
- Data Siswa
- Daftar Siswa
- Pendaftaran Siswa
- Manajemen Jadwal Bimbingan
- Kalender Bimbingan
- Daftar Jadwal Bimbingan
- Tambah Jadwal Bimbingan
- Pengelolaan Materi Pelajaran
- Materi Pelajaran
- Daftar Materi Pelajaran
- Tambah Materi Pelajaran
- Komunikasi
- Pesan Internal
- Pemberitahuan
- Pengaturan
- Akun
- Keamanan
2. Desain Database dan Struktur Tabel
Berikut adalah relasi tabel guru, siswa, orang tua, laporan, akses peran, pesan, materi pelajaran, dan jadwal bimbingan:
Tabel Guru
Kolom Tipe Data Keterangan id integer Primary key nama varchar(255) Nama guru alamat varchar(255) Alamat guru nomor_telepon varchar(255) Nomor telepon guru email varchar(255) Email guru jenis_kelamin varchar(255) Jenis kelamin guru tanggal_lahir date Tanggal lahir guru id_akun integer Foreign key ke tabel akses_peran
Tabel Siswa
Kolom Tipe Data Keterangan id integer Primary key nama varchar(255) Nama siswa alamat varchar(255) Alamat siswa nomor_telepon varchar(255) Nomor telepon siswa email varchar(255) Email siswa tgl_lahir date Tanggal lahir siswa kelas varchar(255) Kelas siswa id_orang_tua integer Foreign key ke tabel orang_tua
Tabel Orang Tua
Kolom Tipe Data Keterangan id integer Primary key nama varchar(255) Nama orang tua alamat varchar(255) Alamat orang tua nomor_telepon varchar(255) Nomor telepon orang tua email varchar(255) Email orang tua pekerjaan varchar(255) Pekerjaan orang tua
Tabel Laporan
Kolom Tipe Data Keterangan id integer Primary key judul varchar(255) Judul laporan jenis varchar(255) Jenis laporan data text Data laporan tanggal_pembuatan datetime Tanggal pembuatan laporan id_guru integer Foreign key ke tabel guru id_siswa integer Foreign key ke tabel siswa
Tabel Akses Peran
Kolom Tipe Data Keterangan id integer Primary key peran varchar(255) Peran (Admin, Guru, Orang Tua) hak_akses enum Hak akses
Tabel Pesan
Kolom Tipe Data Keterangan id integer Primary key tanggal_pengiriman datetime Tanggal pengiriman dari varchar(255) Pengirim kepada varchar(255) Penerima subjek varchar(255) Subjek pesan isi text Isi pesan
Tabel Materi Pelajaran
Kolom Tipe Data Keterangan id integer Primary key judul varchar(255) Judul materi pelajaran deskripsi text Deskripsi materi pelajaran file varchar(255) File materi pelajaran
Tabel Jadwal Bimbingan
Kolom Tipe Data Keterangan id integer Primary key tanggal date Tanggal bimbingan jam time Jam bimbingan kelas varchar(255) Kelas bimbingan id_guru integer Foreign key ke tabel guru
Berikut adalah relasi tabel guru, siswa, orang tua, laporan, akses peran, pesan, materi pelajaran, dan jadwal bimbingan:
Tabel Guru
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
nama | varchar(255) | Nama guru |
alamat | varchar(255) | Alamat guru |
nomor_telepon | varchar(255) | Nomor telepon guru |
varchar(255) | Email guru | |
jenis_kelamin | varchar(255) | Jenis kelamin guru |
tanggal_lahir | date | Tanggal lahir guru |
id_akun | integer | Foreign key ke tabel akses_peran |
Tabel Siswa
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
nama | varchar(255) | Nama siswa |
alamat | varchar(255) | Alamat siswa |
nomor_telepon | varchar(255) | Nomor telepon siswa |
varchar(255) | Email siswa | |
tgl_lahir | date | Tanggal lahir siswa |
kelas | varchar(255) | Kelas siswa |
id_orang_tua | integer | Foreign key ke tabel orang_tua |
Tabel Orang Tua
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
nama | varchar(255) | Nama orang tua |
alamat | varchar(255) | Alamat orang tua |
nomor_telepon | varchar(255) | Nomor telepon orang tua |
varchar(255) | Email orang tua | |
pekerjaan | varchar(255) | Pekerjaan orang tua |
Tabel Laporan
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
judul | varchar(255) | Judul laporan |
jenis | varchar(255) | Jenis laporan |
data | text | Data laporan |
tanggal_pembuatan | datetime | Tanggal pembuatan laporan |
id_guru | integer | Foreign key ke tabel guru |
id_siswa | integer | Foreign key ke tabel siswa |
Tabel Akses Peran
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
peran | varchar(255) | Peran (Admin, Guru, Orang Tua) |
hak_akses | enum | Hak akses |
Tabel Pesan
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
tanggal_pengiriman | datetime | Tanggal pengiriman |
dari | varchar(255) | Pengirim |
kepada | varchar(255) | Penerima |
subjek | varchar(255) | Subjek pesan |
isi | text | Isi pesan |
Tabel Materi Pelajaran
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
judul | varchar(255) | Judul materi pelajaran |
deskripsi | text | Deskripsi materi pelajaran |
file | varchar(255) | File materi pelajaran |
Tabel Jadwal Bimbingan
Kolom | Tipe Data | Keterangan |
---|---|---|
id | integer | Primary key |
tanggal | date | Tanggal bimbingan |
jam | time | Jam bimbingan |
kelas | varchar(255) | Kelas bimbingan |
id_guru | integer | Foreign key ke tabel guru |
Relasi Antar Tabel
Relasi Antar Tabel
Tabel Guru
- Relasi one-to-one dengan tabel akses_peran
Relasi ini menunjukkan bahwa satu guru hanya memiliki satu peran. Kolom id_akun
pada tabel guru merupakan foreign key yang mengacu ke kolom id
pada tabel akses_peran.
Tabel Siswa
- Relasi one-to-one dengan tabel orang_tua
Relasi ini menunjukkan bahwa satu siswa hanya memiliki satu orang tua. Kolom id_orang_tua
pada tabel siswa merupakan foreign key yang mengacu ke kolom id
pada tabel orang_tua.
Tabel Laporan
- Relasi many-to-one dengan tabel guru
Relasi ini menunjukkan bahwa satu laporan dapat dibuat oleh satu atau lebih guru, tetapi satu guru dapat membuat satu atau lebih laporan. Kolom id_guru
pada tabel laporan merupakan foreign key yang mengacu ke kolom id
pada tabel guru.
- Relasi many-to-one dengan tabel siswa
Relasi ini menunjukkan bahwa satu laporan dapat dibuat untuk satu atau lebih siswa, tetapi satu siswa dapat menerima satu atau lebih laporan. Kolom id_siswa
pada tabel laporan merupakan foreign key yang mengacu ke kolom id
pada tabel siswa.
Tabel Pesan
- Relasi many-to-many dengan tabel guru dan tabel siswa
Relasi ini menunjukkan bahwa satu guru dapat mengirim pesan ke satu atau lebih siswa, dan satu siswa dapat menerima pesan dari satu atau lebih guru. Kolom dari
pada tabel pesan merupakan foreign key yang mengacu ke kolom id
pada tabel guru, sedangkan kolom kepada
merupakan foreign key yang mengacu ke kolom id
pada tabel siswa.
Tabel Materi Pelajaran
- Relasi many-to-one dengan tabel guru
Relasi ini menunjukkan bahwa satu guru dapat membuat satu atau lebih materi pelajaran. Kolom id_guru
pada tabel materi pelajaran merupakan foreign key yang mengacu ke kolom id
pada tabel guru.
Tabel Jadwal Bimbingan
- Relasi many-to-one dengan tabel guru
Relasi ini menunjukkan bahwa satu guru dapat mengatur jadwal bimbingan untuk satu atau lebih kelas. Kolom id_guru
pada tabel jadwal bimbingan merupakan foreign key yang mengacu ke kolom id
pada tabel guru.
Tabel Guru
- Relasi one-to-one dengan tabel akses_peran
Relasi ini menunjukkan bahwa satu guru hanya memiliki satu peran. Kolom id_akun
pada tabel guru merupakan foreign key yang mengacu ke kolom id
pada tabel akses_peran.
Tabel Siswa
- Relasi one-to-one dengan tabel orang_tua
Relasi ini menunjukkan bahwa satu siswa hanya memiliki satu orang tua. Kolom id_orang_tua
pada tabel siswa merupakan foreign key yang mengacu ke kolom id
pada tabel orang_tua.
Tabel Laporan
- Relasi many-to-one dengan tabel guru
Relasi ini menunjukkan bahwa satu laporan dapat dibuat oleh satu atau lebih guru, tetapi satu guru dapat membuat satu atau lebih laporan. Kolom id_guru
pada tabel laporan merupakan foreign key yang mengacu ke kolom id
pada tabel guru.
- Relasi many-to-one dengan tabel siswa
Relasi ini menunjukkan bahwa satu laporan dapat dibuat untuk satu atau lebih siswa, tetapi satu siswa dapat menerima satu atau lebih laporan. Kolom id_siswa
pada tabel laporan merupakan foreign key yang mengacu ke kolom id
pada tabel siswa.
Tabel Pesan
- Relasi many-to-many dengan tabel guru dan tabel siswa
Relasi ini menunjukkan bahwa satu guru dapat mengirim pesan ke satu atau lebih siswa, dan satu siswa dapat menerima pesan dari satu atau lebih guru. Kolom dari
pada tabel pesan merupakan foreign key yang mengacu ke kolom id
pada tabel guru, sedangkan kolom kepada
merupakan foreign key yang mengacu ke kolom id
pada tabel siswa.
Tabel Materi Pelajaran
- Relasi many-to-one dengan tabel guru
Relasi ini menunjukkan bahwa satu guru dapat membuat satu atau lebih materi pelajaran. Kolom id_guru
pada tabel materi pelajaran merupakan foreign key yang mengacu ke kolom id
pada tabel guru.
Tabel Jadwal Bimbingan
- Relasi many-to-one dengan tabel guru
Relasi ini menunjukkan bahwa satu guru dapat mengatur jadwal bimbingan untuk satu atau lebih kelas. Kolom id_guru
pada tabel jadwal bimbingan merupakan foreign key yang mengacu ke kolom id
pada tabel guru.
CDM :
PDM :
3. Desain front end dan page yang akan dibuat untuk aplikasi
4. Daftar Action untuk Backend
Berikut adalah daftar action untuk backend yang akan dibutuhkan, dengan penjelasan di mana digunakan:
-
Action untuk Manajemen Siswa
get_siswa()
- Mengambil data siswa berdasarkan id, nama, atau kriteria lainnya. Digunakan untuk menampilkan daftar siswa, data siswa, atau pencarian data siswa.create_siswa()
- Menambah data siswa baru. Digunakan untuk proses pendaftaran siswa baru.update_siswa()
- Mengubah data siswa yang sudah ada. Digunakan untuk proses perubahan data siswa.delete_siswa()
- Menghapus data siswa. Digunakan untuk proses penghapusan siswa.
-
Action untuk Manajemen Jadwal Bimbingan
get_jadwal_bimbingan()
- Mengambil data jadwal bimbingan berdasarkan id, tanggal, atau kriteria lainnya. Digunakan untuk menampilkan daftar jadwal bimbingan, data jadwal bimbingan, atau pencarian data jadwal bimbingan.create_jadwal_bimbingan()
- Menambah data jadwal bimbingan baru. Digunakan untuk proses penambahan jadwal bimbingan.update_jadwal_bimbingan()
- Mengubah data jadwal bimbingan yang sudah ada. Digunakan untuk proses perubahan data jadwal bimbingan.delete_jadwal_bimbingan()
- Menghapus data jadwal bimbingan. Digunakan untuk proses penghapusan jadwal bimbingan.
-
Action untuk Pengelolaan Materi Pelajaran
get_materi_pelajaran()
- Mengambil data materi pelajaran berdasarkan id, mata pelajaran, atau kriteria lainnya. Digunakan untuk menampilkan daftar materi pelajaran, data materi pelajaran, atau pencarian data materi pelajaran.create_materi_pelajaran()
- Menambah data materi pelajaran baru. Digunakan untuk proses penambahan materi pelajaran.update_materi_pelajaran()
- Mengubah data materi pelajaran yang sudah ada. Digunakan untuk proses perubahan data materi pelajaran.delete_materi_pelajaran()
- Menghapus data materi pelajaran. Digunakan untuk proses penghapusan materi pelajaran.
-
Action untuk Komunikasi
send_message()
- Mengirim pesan internal dari satu pengguna ke pengguna lain. Digunakan untuk proses pengiriman pesan internal.get_messages()
- Mengambil daftar pesan internal yang diterima oleh pengguna. Digunakan untuk menampilkan daftar pesan internal yang diterima oleh pengguna.read_message()
- Menandai pesan internal sebagai sudah dibaca. Digunakan untuk proses membaca pesan internal.
-
Action untuk Dashboard dan Laporan
get_statistik()
- Mengambil data statistik tentang jumlah siswa, jadwal bimbingan, dan kinerja guru. Digunakan untuk menampilkan data statistik di dashboard.- generate_report()` - Menghasilkan laporan berdasarkan kriteria tertentu. Digunakan untuk proses pembuatan laporan.
-
Action untuk Keamanan dan Akses
- login()` - Melakukan login pengguna. Digunakan untuk proses login pengguna.
- logout()` - Melakukan logout pengguna. Digunakan untuk proses logout pengguna.
- check_permission()` - Memeriksa apakah pengguna memiliki izin untuk mengakses suatu fitur. Digunakan untuk proses kontrol akses.