Tentang Aplikasi | Use Case Diagram | Activity Diagram | Class Diagram | Sequence Diagram | Design Pattern | Anti Pattern |
---|
SBM-Buddy adalah aplikasi pembelajaran berbasis web untuk membantu siswa-siswi kelas 3 SMA dalam menghadapi ujian SBMPTN. SBM-Buddy menyediakan soal-soal SBMPTN serta memprediksi nilai Passing Grade, dan perkembangan Passing Grade siswa tiap waktu. SBM-Buddy juga menyediakan list Passing Grade beberapa program studi di universitas-universitas yang ada di Indonesia.
- Importance Level : High
- Use Case Type : Essential
- Primary Actor : Siswa
- Stakeholder and Interest :
- Siswa : Mengerjakan soalnya
- Admin : Membuat soal, menentukan penilaian
- Brief Description : Di dalam use case ini dijelaskan bagaimana siswa mengerjakan soal
- Pre-Condition : Siswa harus register/login
- Trigger : Siswa memilih soal yang ingin dikerjakan
- Type : External
- Relationship :
- Association : Admin
- Normal Flow of Events :
- Siswa Login
- Siswa memilih jenis soal yang ingin dikerjakan (Latihan/Try Out)
- Siswa mengerjakan soal
- Siswa Submit Soal
- Alternate/Exceptional Flows : 1E. Siswa gagal login
- Post-Condition : Siswa dapat mengakses pembahasan soal dan grafik perkembangan
- Importance Level : High
- Use Case Type : Essential
- Primary Actor : Siswa
- Stakeholder and Interest :
- Siswa : Melihat Pembahasan Soal
- Admin : Menambahkan Pembahasan Soal
- Brief Description : Di dalam use case ini dijelaskan bagaimana siswa dapat mengakses pembahasan soal
- Pre-Condition : Siswa mengerjakan soal tersebut
- Trigger : Siswa selesai mengerjakan soal
- Type : External
- Relationship :
- Association : Admin
- Include : Mengerjakan Soal
- Normal Flow of Events :
- Siswa selesai mengerjakan soal
- Pembahasan soal ditampilkan
- Alternate/Exceptional Flows : 2E . Pembahasan belum tersedia
- Importance Level : Medium
- Use Case Type : Essential, System
- Primary Actor : Siswa
- Stakeholder and Interest :
- Siswa : Melihat grafik
- Brief Description : Di dalam use case ini dijelaskan bagaimana siswa dapat melihat grafik perkembangan nilai
- Pre-Condition : Siswa harus menyelesaikan minimal 1 set soal
- Trigger : Siswa mengakses laman perkembangan
- Type : External
- Normal Flow of Events :
- Siswa membuka profil
- Siswa melihat grafik perkembangan nilai Try Out
- Importance Level : Medium
- Use Case Type : Essential, System
- Primary Actor : Siswa
- Stakeholder and Interest :
- Siswa : Melihat grafik
- Brief Description : Di dalam use case ini dijelaskan bagaimana siswa dapat melihat grafik intensitas pengerjaan soal dalam satuan waktu.
- Pre-Condition : Siswa harus menyelesaikan minimal 1 set soal
- Trigger : Siswa ingin melihat sebanyak apa soal yang telah dikerjakan
- Type : External
- Normal Flow of Events :
- Siswa membuka profil
- Siswa melihat grafik grafik intensitas pengerjaan soal dalam satuan waktu
- Importance Level : Medium
- Use Case Type : System, Essential
- Primary Actor : Siswa
- Stakeholder and Interest :
- Siswa : Melihat passing grade
- Admin : Menambah/mengubah passsing grade
- Brief Description : Di dalam use case ini dijelaskan bagaimana siswa melihat passing grade program studi
- Trigger : Siswa ingin melihat universitas / prodi yang direkomendasikan
- Type : External
- Relationship :
- Association : Admin
- Normal Flow of Events :
- Siswa membuka profil
- Siswa melihat bagian passing grade
- Importance Level : High
- Use Case Type : Essential
- Primary Actor : Admin
- Stakeholder and Interest :
- Admin : Membuat paket soal baru
- Brief Description : Di dalam use case ini dijelaskan bagaimana admin soal dapat membuat soal dan pembahasannya
- Pre-Condition : User harus merupakan seorang admin
- Trigger : Admin membuka laman penambahan soal
- Type : External
- Normal Flow of Events :
- Admin login
- Admin menambah paket soal baru
- Admin memasukkan setiap butir soal
- Admin memasukkan jawaban soal tersebut
- Admin memasukkan pembahasan tiap soal
- Admin menyimpan soal tersebut
- Importance Level : Low
- Use Case Type : Essential
- Primary Actor : Admin
- Stakeholder and Interest :
- Admin : Ingin merubah soal dan pembahasan dari mata pelajaran yang diujikan.
- Brief Description : Di dalam use case ini dijelaskan bagaimana Admin merubah soal dan pembahasan dari mata pelajaran yang diujikan.
- Pre-Condition : User harus merupakan seorang admin
- Trigger : Terdapat kesalahan saat menginput soal
- Type : External
- Normal Flow of Events :
- Admin membuka list soal ujian.
- Admin merubah soal dan pembahasan dari ujian yang dipilih.
- Importance Level : Low
- Use Case Type : Essential
- Primary Actor : Admin
- Stakeholder and Interest :
- Admin : Menghapus paket soal
- Brief Description : Di dalam use case ini dijelaskan bagaimana Admin dapat menghapus paket soal atau pembahasan
- Pre-Condition : -
- Trigger : Soal sudah tidak relevan lagi
- Type : External
- Normal Flow of Events :
- Admin membuka paket-paket soal
- Admin memilih paket soal yang akan dihapus
- Admin menghapus soal tersebut
- Admin melakukan konfirmasi penghapusan
- Importance Level : Medium
- Use Case Type : Essential
- Primary Actor : Admin
- Stakeholder and Interest :
- Admin : Ingin memperbarui passing grade program studi di sebuah universitas.
- Brief Description : Di dalam use case ini dijelaskan bagaimana Admin merubah passing grade program studi di sebuah universitas.
- Pre-Condition : User harus merupakan seorang admin
- Trigger : Perubahan nilai passing grade dari program studi per tahun.
- Type : Temporal
- Normal Flow of Events :
- Admin membuka list universitas.
- Admin memilih program studi.
- Admin merubah passing grade program studi.
- Importance Level : Medium
- Use Case Type : Essential, System
- Primary Actor : Admin
- Stakeholder and Interest :
- Admin : Ingin menambah program studi di sebuah universitas.
- Brief Description : Di dalam use case ini dijelaskan bagaimana Admin menambah program studi di sebuah universitas.
- Pre-Condition : User harus merupakan seorang admin
- Trigger : Universitas membuka program studi baru.
- Type : External
- Normal Flow of Events :
- Admin membuka list universitas.
- Admin menambah program studi.
- Importance Level : Low
- Use Case Type : Essential, System
- Primary Actor : Admin
- Stakeholder and Interest :
- Admin : Ingin menghapus program studi di sebuah universitas.
- Brief Description : Di dalam use case ini dijelaskan bagaimana Admin menghapus program studi di sebuah universitas.
- Pre-Condition : User harus merupakan seorang admin
- Trigger : Universitas menutup program studi yang ada karena alasan tertentu.
- Type : External
- Normal Flow of Events :
- Admin membuka list universitas.
- Admin menghapus program studi
- Private Class Data
Design pattern ini digunakan mengurangi keterbukaan atribut dengan membatasi visibilitasnya. Private Class Data mengatasi masalah di atas dengan mengekstraksi kelas data untuk kelas target dan memberikan instance kelas target instance kelas data yang di ekstraksi. Terdapat fungsi guard() untuk memeriksa apakah akun tersebut terverifikasi sebagai user atau admin. Guard() bersifat rahasia, sehingga hanya bisa diakses dengan AuthController saja.
- Singleton
Singleton adalah kelas yang anggota instancenya hanya satu. Terdapat kelas admin pada sistem SBM Buddy. Admin yang dibutuhkan untuk mengatur keseluruhan sistem hanya satu, sehingga kelas admin hanya terdiri dari satu user, yaitu admin itu sendiri.
- Functional Decomposition
AntiPattern ini merupakan hasil dari developer nonobject-oriented yang mengimplementasikan aplikasi di bahasa pemrograman yang object oriented. AntiPattern berakibat pada developer yang mengabaikan hirarki kelas atau bahkan konsep object-oriented pada produk. Antipattern ini terjadi pada saat membuat kelas User. User terbagi menjadi dua subclass, admin dan siswa. Namun, pada tahap implementasinya, tidak ada perbedaan yang signifikan terhadap admin dan siswa.
- Smoke and Mirrors
Smoke and Mirrors adalah salah satu antipattern dimana developer mempromosikan dan menjanjikan fitur-fitur di luar kemampuan developer tersebut. Smoke and Mirror terjadi karena demonstrasi sistem adalah strategi pemasaran yang penting. Demonstrasi sering diinterpretasikan oleh end user sebagai representasi kualitas produksinya, sehingga developer berani menjanjikan sesuatu agar dapat meyakinkan end user untuk memakai atau membeli produknya. Antipattern yang terjadi pada projek SBM Buddy adalah ketika developer menjanjikan fitur rekomendasi program studi berdasarkan nilai per mata kuliah dan passing grade. Awalnya, developer mencoba untuk mengembangkan fitur ini, namun terdapat banyak bug pada fitur dan seiring berjalannya waktu, bug tidak kunjung dapat diatasi, sehingga fitur dihilangkan.