Page 1 of 21
System Requirements Document for administrasi-kelas
1. Introduction
APLIKASI ADMINISTRASI GURU SMP adalah aplikasi administrasi kelas yang ditujukan bagi guru SMP yang mengelola administrasi satu atau beberapa kelas dalam Tahun Pelajaran 2025/2026. Aplikasi ini menyatukan pekerjaan administrasi harian guru — pendataan siswa per kelas, pencatatan absen siswa, penginputan dan perekapan nilai siswa, pencatatan absen guru, penulisan jurnal kegiatan harian per kelas, serta pengelolaan biodata guru — ke dalam satu antarmuka yang elegan, responsif, dan konsisten di semua perangkat yang dipakai guru.
Produk ini lahir dari kebutuhan nyata seorang guru SMP: data administrasi kelas harus dapat diisi dengan cepat (bahkan hanya dengan nama dan jenis kelamin untuk menyimpan data murid), tersusun rapi (daftar murid otomatis berurutan A–Z), dapat direkap per bulan dan per mata pelajaran, serta tersinkron otomatis melalui sistem penyimpanan API sehingga guru dapat berpindah perangkat tanpa kehilangan data. Seluruh fitur isian harus berjalan lancar dan normal pada semua perangkat.
Aplikasi menggunakan warna dasar putih dengan aksen biru, kartu background warna-warni, teks kontras, dan gaya visual futuristik namun elegan, dilengkapi animasi transisi MORPH yang smooth di seluruh aplikasi.
Page 2 of 21
2. System Overview
Aplikasi ini adalah aplikasi web first-party dengan identitas milik aplikasi (application-owned identity). Guru masuk melalui halaman login berjudul APLIKASI ADMINISTRASI GURU SD AMYN dengan kolom nama lengkap guru dan kolom password 123456. Sebelum login, guru dapat melihat halaman Landing yang memperkenalkan aplikasi. Setelah login, guru bekerja di dalam kerangka navigasi utama berupa tab atas (menu utama) dan sidebar, dengan dashboard sebagai titik masuk.
Aktor manusia tunggal yang aktif adalah Guru SMP (pengguna utama). Tidak ada aktor manusia lain yang diakui pada rilis saat ini. Sistem backend API bertindak sebagai aktor non-persona yang menyimpan dan menyinkronkan data administrasi lintas perangkat.
Cakupan perilaku saat ini:
- Dashboard futuristik dan informatif: jumlah siswa yang sudah diinputkan, persentase kehadiran per hari, biodata singkat guru, dan akses cepat ke menu-menu aplikasi.
- Data siswa per kelas: nama murid, jenis kelamin, nama orangtua Ayah/Ibu, pekerjaan Ayah/Ibu; simpan dengan minimal nama dan jenis kelamin; edit dan hapus; daftar murid berurutan abjad A–Z.
- Absen siswa per kelas: nama murid bersumber dari data murid, kalender kecil tiap bulan Januari–Desember beserta harinya, rekap absen semua murid setiap bulan, keterangan S (sakit), I (izin), A (alpa), Hadir, serta fitur munculkan dan sembunyikan kalender.
- Nilai siswa: 3 kolom nilai harian, 1 kolom nilai MID, 1 kolom nilai PAS, dan kolom nilai raport hasil perhitungan dari nilai harian, MID, dan PAS; semua kolom ditampilkan agar mudah diinputkan; rekap nilai semua murid yang memuat semua nilai mata pelajaran; tombol kirim data ke canva sheet atau download data.
- Absen guru: kalender kecil tiap bulan Januari–Desember beserta harinya dengan tampilan informatif, pilihan kelas, dan rekap absen guru; keterangan S, I, A, Hadir; fitur munculkan dan sembunyikan kalender.
- Jurnal guru: kegiatan guru di tiap kelas, kalender kecil lengkap dengan hari dan tanggalnya, serta kolom kegiatan harian guru di tiap kelas; fitur munculkan dan sembunyikan kalender.
- Biodata guru: input Nama Guru, Tempat tanggal lahir, NIP, Guru, No Kontak, Alamat, email, dan motto, dengan fitur edit.
Mata pelajaran yang dikelola: Pendidikan Agama dan Budi Pekerti, Pendidikan Kewarganegaraan, Bahasa Indonesia, Matematika, Ilmu Pengetahuan Alam dan Sosial, Seni Budaya/Musik/Tari, Pendidikan Jasmani Olahraga dan Kesehatan, Pendidikan Bahasa Inggris, Koding dan Kecerdasan Artificial, Mulok.
Tahun Pelajaran 2025/2026: semester ganjil Juli–Desember, semester genap Januari–Juni.
Pengecualian sempit: tidak ada peran manusia lain (siswa, orang tua, kepala sekolah, administrator) yang diakui sebagai pengguna aplikasi; tidak ada kontrol izin/visibilitas berbeda antar pengguna; tidak ada modul di luar daftar menu di atas.
Page 3 of 21
2a. Product Interpretation and Delivery Boundary
Aplikasi ini dimiliki dan dioperasikan sebagai aplikasi web first-party. Guru adalah satu-satunya pengguna manusia. Identitas dikelola oleh aplikasi karena data administrasi bersifat durable, terikat pada guru yang benar, dan harus dapat dilanjutkan serta disinkronkan lintas perangkat. Karena itu, halaman Landing bersifat anonim (dapat dilihat tanpa login) dan halaman APLIKASI ADMINISTRASI GURU SD AMYN adalah permukaan masuk identitas: guru menetapkan kredensialnya saat pertama kali memakai aplikasi (nama lengkap guru + password 123456), dan pada kunjungan berikutnya memverifikasi kredensial yang sama untuk melanjutkan pekerjaan.
Seluruh halaman kerja — dashboard, data siswa, absen siswa, nilai siswa, absen guru, jurnal guru, biodata guru — hanya dapat diakses setelah login. Penyimpanan dan sinkronisasi ditangani oleh backend API milik aplikasi; guru tidak mengelola server, basis data, atau akun pihak ketiga.
Batas saat ini dan masa depan: seluruh perilaku yang dijelaskan pada dokumen ini adalah cakupan saat ini untuk Tahun Pelajaran 2025/2026. Tidak ada fitur yang ditunda ke horizon masa depan dalam sumber otoritatif; tidak ada modul, halaman, atau peran tambahan yang dijanjikan.
2b. Source Content Inventory
Tidak ada direktif referensi dengan content_source pada sumber, sehingga bagian ini tidak disertakan.
2c. Page Content and Component Coverage
Page 4 of 21
Landing
- Informasi/state: identitas aplikasi "APLIKASI ADMINISTRASI GURU SMP", ringkasan singkat tujuan aplikasi (administrasi kelas guru SMP), dan ajakan menuju halaman login. Tidak ada data administrasi yang ditampilkan.
- Aksi utama: tombol menuju halaman login APLIKASI ADMINISTRASI GURU SD AMYN.
- Aksi pendukung: tidak ada.
- Entitas domain: tidak ada entitas data; hanya identitas produk.
- Tanggung jawab komponen: hero pembuka dengan latar putih bersih beraksen biru, judul aplikasi, dan tombol masuk; tidak menampilkan data guru atau siswa.
- State: loading (kerangka hero), empty (tidak berlaku — konten statis), success (hero tampil), error (fallback teks judul dan tombol masuk tetap dapat diklik), recovery (memuat ulang halaman).
APLIKASI ADMINISTRASI GURU SD AMYN
- Informasi/state: judul halaman APLIKASI ADMINISTRASI GURU SD AMYN, kolom nama lengkap guru, kolom password, dan tulisan di bawah kolom login: "Aplikasi ini dikembangkan oleh: M.khoirun nizam (mahasiswa)pelajar". Background full putih clean beraksen biru.
- Aksi utama: mengisi nama lengkap guru dan password
123456, lalu masuk ke aplikasi.
- Aksi pendukung: penetapan kredensial saat pertama kali memakai aplikasi (nama lengkap guru + password
123456) pada permukaan login yang sama.
- Entitas domain: identitas guru (nama lengkap), kredensial login.
- Tanggung jawab komponen: formulir login dengan validasi kolom wajib; pesan galat bila nama lengkap atau password tidak sesuai; animasi dan efek transisi yang keren saat halaman tampil dan saat berpindah ke dashboard.
- State: loading (proses verifikasi kredensial), empty (kolom kosong dengan placeholder), success (masuk ke dashboard), error (pesan galat kredensial tidak cocok, kolom tetap terisi untuk diperbaiki), recovery (guru dapat mengulang pengisian tanpa kehilangan data yang sudah diketik).
dashboard
- Informasi/state: jumlah siswa yang sudah diinputkan; persentase kehadiran per hari; biodata singkat guru; akses cepat ke menu-menu aplikasi. Gaya futuristik dan informatif dengan warna colourful.
- Aksi utama: membuka menu aplikasi melalui akses cepat, tab atas (menu utama), atau sidebar.
- Aksi pendukung: berpindah antar menu tanpa kehilangan konteks.
- Entitas domain: data siswa (jumlah), catatan kehadiran siswa (persentase harian), biodata guru (ringkas).
- Tanggung jawab komponen: kartu ringkasan jumlah siswa; kartu persentase kehadiran per hari; kartu biodata singkat guru; panel akses cepat menu; kerangka navigasi tab atas dan sidebar.
- State: loading (kartu ringkasan memuat data), empty (belum ada siswa — kartu jumlah siswa menampilkan nol dengan ajakan mengisi data siswa; persentase kehadiran menampilkan keadaan belum ada catatan), success (kartu terisi), error (kartu gagal memuat menampilkan pesan dan tombol coba lagi), recovery (memuat ulang data ringkasan).
Page 5 of 21
data siswa
- Informasi/state: daftar murid per kelas yang sudah diinputkan, diurutkan berdasarkan abjad A–Z; setiap murid memuat nama murid, jenis kelamin, nama orangtua Ayah/Ibu, pekerjaan Ayah/Ibu.
- Aksi utama: menambah data murid; menyimpan data dengan minimal 2 data (nama dan jenis kelamin); mengedit data murid; menghapus data murid.
- Aksi pendukung: memilih kelas; melihat daftar murid yang sudah diinputkan.
- Entitas domain: murid (nama, jenis kelamin, nama Ayah, nama Ibu, pekerjaan Ayah, pekerjaan Ibu), kelas.
- Tanggung jawab komponen: formulir input murid dengan penanda kolom wajib (nama, jenis kelamin) dan kolom opsional (nama orangtua Ayah/Ibu, pekerjaan Ayah/Ibu); tombol simpan; daftar murid terurut A–Z; kontrol edit dan hapus per baris; pemilih kelas.
- State: loading (daftar murid memuat), empty (belum ada murid — tampilkan ajakan menambah murid pertama), success (murid tersimpan dan muncul pada daftar terurut), error (validasi nama/jenis kelamin kosong atau penyimpanan gagal — pesan jelas dan data isian dipertahankan), recovery (mengulang simpan atau membatalkan edit tanpa kehilangan data lain).
absen siswa
- Informasi/state: nama murid yang bersumber dari menu data murid; kalender kecil tiap bulan Januari–Desember beserta harinya; rekap absen semua murid setiap bulan; keterangan S (sakit), I (izin), A (alpa), Hadir.
- Aksi utama: mencatat keterangan absen per murid per tanggal; melihat rekap absen semua murid setiap bulan.
- Aksi pendukung: memilih kelas; memunculkan dan menyembunyikan kalender.
- Entitas domain: murid (nama), catatan absen (tanggal, keterangan S/I/A/Hadir), bulan, kelas.
- Tanggung jawab komponen: pemilih kelas; kalender kecil bulanan Januari–Desember dengan hari; kontrol munculkan/sembunyikan kalender; grid pencatatan absen per murid per tanggal; panel rekap absen bulanan semua murid.
- State: loading (kalender dan daftar murid memuat), empty (belum ada murid pada kelas terpilih — arahkan ke data siswa; belum ada catatan absen pada bulan terpilih), success (keterangan tersimpan dan rekap bulanan diperbarui), error (penyimpanan gagal atau data murid tidak tersedia — pesan jelas), recovery (mengulang pencatatan; kalender dapat disembunyikan lalu dimunculkan kembali).
nilai siswa
- Informasi/state: 3 kolom inputan nilai harian, 1 kolom nilai MID, 1 kolom nilai PAS, dan kolom nilai raport hasil perhitungan dari nilai harian, MID, dan PAS; semua kolom nilai ditampilkan agar mudah diinputkan; rekap nilai semua murid dengan tampilan yang memuat semua nilai mata pelajaran.
- Aksi utama: mengisi nilai harian, MID, dan PAS per murid per mata pelajaran; melihat nilai raport hasil perhitungan; mengirim data ke canva sheet atau mengunduh data.
- Aksi pendukung: memilih kelas; berpindah mata pelajaran; melihat rekap nilai semua murid.
- Entitas domain: murid (nama), mata pelajaran (10 mata pelajaran), nilai harian (3 kolom), nilai MID, nilai PAS, nilai raport (hasil perhitungan), rekap absen tiap siswa (S, I, A) untuk format ekspor.
- Tanggung jawab komponen: tabel input nilai dengan semua kolom terlihat; kolom nilai raport terhitung otomatis; panel rekap nilai semua murid yang memuat semua mata pelajaran; tombol kirim data ke canva sheet; tombol download data.
- State: loading (tabel nilai dan rekap memuat), empty (belum ada murid atau belum ada nilai — kolom input tetap tampil siap diisi), success (nilai tersimpan, nilai raport terhitung, rekap diperbarui), error (input tidak valid atau pengiriman/unduhan gagal — pesan jelas dan data isian dipertahankan), recovery (mengulang input atau mengulang kirim/unduh).
Page 6 of 21
absen guru
- Informasi/state: kalender kecil tiap bulan Januari–Desember beserta harinya dengan tampilan yang informatif; pilihan kelas; rekap absen guru; keterangan S (sakit), I (izin), A (alpa), Hadir.
- Aksi utama: mencatat keterangan absen guru per tanggal; memilih kelas; melihat rekap absen guru.
- Aksi pendukung: memunculkan dan menyembunyikan kalender.
- Entitas domain: catatan absen guru (tanggal, keterangan S/I/A/Hadir), kelas, bulan.
- Tanggung jawab komponen: pemilih kelas; kalender kecil bulanan Januari–Desember dengan hari; kontrol munculkan/sembunyikan kalender; kontrol pencatatan keterangan absen; panel rekap absen guru.
- State: loading (kalender dan rekap memuat), empty (belum ada catatan absen guru pada periode terpilih), success (keterangan tersimpan dan rekap diperbarui), error (penyimpanan gagal — pesan jelas), recovery (mengulang pencatatan; kalender dapat disembunyikan lalu dimunculkan kembali).
jurnal guru
- Informasi/state: kegiatan guru di tiap kelas; kalender kecil lengkap dengan hari dan tanggalnya; kolom kegiatan harian guru di tiap kelas.
- Aksi utama: menulis kegiatan harian guru pada kelas dan tanggal terpilih.
- Aksi pendukung: memilih kelas; memilih tanggal melalui kalender; memunculkan dan menyembunyikan kalender.
- Entitas domain: catatan jurnal (kelas, tanggal, kegiatan harian), kelas.
- Tanggung jawab komponen: pemilih kelas; kalender kecil bulanan lengkap dengan hari dan tanggal; kontrol munculkan/sembunyikan kalender; kolom kegiatan harian; daftar kegiatan tersimpan per tanggal.
- State: loading (kalender dan daftar kegiatan memuat), empty (belum ada kegiatan pada tanggal terpilih — kolom siap diisi), success (kegiatan tersimpan dan tampil pada tanggalnya), error (penyimpanan gagal — pesan jelas dan teks kegiatan dipertahankan), recovery (mengulang simpan; kalender dapat disembunyikan lalu dimunculkan kembali).
biodata guru
- Informasi/state: data biodata guru yang dapat diinput: Nama Guru, Tempat tanggal lahir, NIP, Guru, No Kontak, Alamat, email, dan motto.
- Aksi utama: menginput biodata guru; mengedit biodata guru.
- Aksi pendukung: melihat biodata tersimpan.
- Entitas domain: biodata guru (Nama Guru, Tempat tanggal lahir, NIP, Guru, No Kontak, Alamat, email, motto).
- Tanggung jawab komponen: formulir biodata dengan seluruh kolom; tombol simpan; mode edit dengan nilai yang sudah terisi; umpan balik keberhasilan penyimpanan.
- State: loading (biodata memuat), empty (belum ada biodata — formulir kosong siap diisi), success (biodata tersimpan dan tampil), error (penyimpanan gagal — pesan jelas dan isian dipertahankan), recovery (mengulang simpan atau membatalkan edit).
Page 7 of 21
3. Functional Requirements
FR-01 — Identitas aplikasi [explicit]
As a Guru SMP, I should melihat aplikasi dengan nama "APLIKASI ADMINISTRASI GURU SMP" agar saya mengenali produk administrasi kelas yang saya gunakan.
- Trigger/input: membuka aplikasi.
- Observable result: nama aplikasi "APLIKASI ADMINISTRASI GURU SMP" tampil pada aplikasi.
- Access state: anonim (Landing) dan setelah login.
- Failure/recovery: tidak berlaku (identitas statis).
- Continuation: guru melanjutkan ke halaman login atau ke dashboard.
FR-02 — UI elegan dan responsif dengan tab atas dan sidebar [explicit]
As a Guru SMP, I should menggunakan UI yang elegan dan responsif dengan dashboard menu, tab atas (menu utama), dan sidebar agar saya dapat berpindah menu dengan nyaman di perangkat apa pun.
- Trigger/input: membuka aplikasi setelah login.
- Observable result: kerangka navigasi menampilkan tab atas (menu utama) dan sidebar; tata letak menyesuaikan ukuran perangkat.
- Access state: login.
- Failure/recovery: bila tata letak gagal menyesuaikan, navigasi tetap dapat digunakan dan halaman dapat dimuat ulang.
- Continuation: guru memilih menu dari tab atas atau sidebar.
FR-03 — Warna dasar putih, aksen biru, kartu warna-warni, teks kontras [explicit]
As a Guru SMP, I should melihat aplikasi dengan warna dasar putih dan aksen biru, kartu background warna-warni, serta teks yang kontras yang futuristik namun elegan agar tampilan mudah dibaca dan menyenangkan.
- Trigger/input: membuka halaman aplikasi.
- Observable result: latar putih dengan aksen biru, kartu berwarna-warni, dan teks kontras diterapkan konsisten.
- Access state: anonim (Landing dan login) dan setelah login.
- Failure/recovery: tidak berlaku (presentasi).
- Continuation: guru melanjutkan pekerjaan pada halaman yang sama.
FR-04 — Animasi transisi MORPH yang smooth [explicit]
As a Guru SMP, I should mengalami animasi transisi MORPH yang smooth pada aplikasi agar perpindahan antar tampilan terasa halus dan modern.
- Trigger/input: berpindah halaman, membuka panel, atau mengubah state tampilan.
- Observable result: transisi MORPH yang smooth dijalankan pada perpindahan tersebut.
- Access state: anonim (Landing dan login) dan setelah login.
- Failure/recovery: bila animasi tidak dapat dijalankan, konten tetap tampil dan dapat digunakan.
- Continuation: guru melanjutkan pada tampilan tujuan.
FR-05 — Dashboard futuristik dan informatif [explicit]
As a Guru SMP, I should melihat dashboard bergaya futuristik dan informatif yang memuat jumlah siswa yang sudah diinputkan, persentase kehadiran per hari, biodata singkat guru, dan akses cepat ke menu-menu aplikasi, dengan warna colourful dan font yang mudah dibaca, agar saya mendapat gambaran cepat kondisi kelas.
- Trigger/input: membuka menu dashboard setelah login.
- Observable result: kartu jumlah siswa, kartu persentase kehadiran per hari, kartu biodata singkat guru, dan panel akses cepat menu tampil.
- Access state: login.
- Failure/recovery: bila data ringkasan gagal dimuat, kartu menampilkan pesan dan tombol coba lagi.
- Continuation: guru membuka menu melalui akses cepat, tab atas, atau sidebar.
FR-06 — Data siswa per kelas [explicit]
As a Guru SMP, I should mengelola data siswa per kelas yang berisi nama murid, jenis kelamin, nama orangtua Ayah/Ibu, dan pekerjaan Ayah/Ibu agar data murid tercatat lengkap.
- Trigger/input: membuka menu data siswa dan memilih kelas.
- Observable result: formulir dan daftar data siswa per kelas tampil dengan seluruh kolom tersebut.
- Access state: login.
- Failure/recovery: bila data gagal dimuat, tampilkan pesan dan opsi memuat ulang.
- Continuation: guru menambah, mengedit, atau menghapus data murid.
FR-07 — Simpan data murid dengan minimal nama dan jenis kelamin [explicit]
As a Guru SMP, I should menyimpan data murid cukup dengan 2 data saja (nama dan jenis kelamin) agar pencatatan cepat tanpa harus melengkapi seluruh kolom.
- Trigger/input: mengisi nama dan jenis kelamin, lalu menyimpan.
- Observable result: data murid tersimpan meskipun kolom nama orangtua Ayah/Ibu dan pekerjaan Ayah/Ibu belum diisi.
- Access state: login.
- Failure/recovery: bila nama atau jenis kelamin kosong, penyimpanan ditolak dengan pesan jelas dan isian lain dipertahankan.
- Continuation: murid muncul pada daftar murid.
FR-08 — Edit dan hapus data murid [explicit]
As a Guru SMP, I should mengedit dan menghapus data murid agar data tetap akurat.
- Trigger/input: memilih aksi edit atau hapus pada baris murid.
- Observable result: perubahan tersimpan dan tampil pada daftar; murid yang dihapus hilang dari daftar.
- Access state: login.
- Failure/recovery: bila penyimpanan atau penghapusan gagal, data lama tetap utuh dan pesan galat ditampilkan.
- Continuation: guru melanjutkan pengelolaan data murid.
FR-09 — Daftar nama murid berurutan abjad A–Z [explicit]
As a Guru SMP, I should melihat daftar nama murid setelah diinputkan dengan urutan berdasarkan abjad A–Z agar daftar mudah ditelusuri.
- Trigger/input: membuka daftar murid setelah data diinputkan.
- Observable result: daftar nama murid tersusun dari A ke Z.
- Access state: login.
- Failure/recovery: bila pengurutan gagal, daftar tetap tampil dan dapat dimuat ulang.
- Continuation: guru memilih murid untuk diedit atau dihapus.
FR-10 — Absen siswa per kelas dengan sumber nama dari data murid [explicit]
As a Guru SMP, I should mencatat absen siswa per kelas dengan nama murid yang bersumber dari menu data murid agar pencatatan absen selalu selaras dengan data murid.
- Trigger/input: membuka menu absen siswa dan memilih kelas.
- Observable result: daftar nama murid pada kelas tersebut tampil sebagai baris pencatatan absen.
- Access state: login.
- Failure/recovery: bila belum ada murid pada kelas terpilih, tampilkan arahan menuju data siswa.
- Continuation: guru mencatat keterangan absen per tanggal.
FR-11 — Kalender kecil Januari–Desember pada absen siswa [explicit]
As a Guru SMP, I should melihat kalender dalam ukuran kecil tiap bulan dari Januari–Desember beserta harinya pada absen siswa agar saya dapat memilih tanggal pencatatan.
- Trigger/input: membuka menu absen siswa.
- Observable result: kalender kecil bulanan Januari sampai Desember beserta harinya tersedia.
- Access state: login.
- Failure/recovery: bila kalender gagal dimuat, pencatatan dapat diulang setelah memuat ulang.
- Continuation: guru memilih tanggal dan mencatat absen.
FR-12 — Rekap absen semua murid setiap bulan [explicit]
As a Guru SMP, I should melihat rekap absen semua murid setiap bulannya agar kehadiran kelas dapat dievaluasi per bulan.
- Trigger/input: memilih bulan pada menu absen siswa.
- Observable result: rekap absen seluruh murid pada bulan tersebut tampil.
- Access state: login.
- Failure/recovery: bila rekap gagal dimuat, tampilkan pesan dan opsi memuat ulang.
- Continuation: guru melanjutkan pencatatan atau berpindah bulan.
FR-13 — Keterangan absen S, I, A, Hadir [explicit]
As a Guru SMP, I should mencatat keterangan absen dengan S (sakit), I (izin), A (alpa), dan Hadir agar status kehadiran tercatat dengan kode yang konsisten.
- Trigger/input: memilih keterangan pada tanggal tertentu untuk seorang murid.
- Observable result: keterangan S, I, A, atau Hadir tersimpan pada tanggal tersebut.
- Access state: login.
- Failure/recovery: bila penyimpanan gagal, keterangan sebelumnya tetap berlaku dan pesan galat ditampilkan.
- Continuation: guru melanjutkan ke murid atau tanggal berikutnya.
FR-14 — Munculkan dan sembunyikan kalender pada absen siswa [explicit]
As a Guru SMP, I should memunculkan dan menyembunyikan kalender pada absen siswa agar ruang kerja dapat disesuaikan.
- Trigger/input: menekan kontrol munculkan/sembunyikan kalender.
- Observable result: kalender tampil atau tersembunyi sesuai pilihan.
- Access state: login.
- Failure/recovery: bila kontrol gagal, kalender tetap dapat digunakan dan halaman dapat dimuat ulang.
- Continuation: guru melanjutkan pencatatan absen.
FR-15 — Kolom nilai harian, MID, PAS, dan nilai raport [explicit]
As a Guru SMP, I should mengisi 3 kolom nilai harian, 1 kolom nilai MID, dan 1 kolom nilai PAS, serta melihat kolom nilai raport hasil perhitungan dari nilai harian, MID, dan PAS, dengan semua kolom nilai ditampilkan agar mudah diinputkan.
- Trigger/input: membuka menu nilai siswa dan memilih kelas serta mata pelajaran.
- Observable result: 3 kolom nilai harian, 1 kolom MID, 1 kolom PAS, dan kolom nilai raport tampil bersamaan; nilai raport terhitung dari nilai harian, MID, dan PAS.
- Access state: login.
- Failure/recovery: bila nilai yang dimasukkan tidak valid, kolom ditandai dan nilai raport tidak dihitung sampai input benar.
- Continuation: guru melanjutkan ke murid atau mata pelajaran berikutnya.
FR-16 — Rekap nilai semua murid memuat semua mata pelajaran [explicit]
As a Guru SMP, I should melihat rekap nilai semua murid dengan tampilan yang memuat semua nilai mata pelajaran agar perbandingan nilai antar murid dan antar mata pelajaran mudah dibaca.
- Trigger/input: membuka rekap nilai pada menu nilai siswa.
- Observable result: rekap menampilkan nilai seluruh murid untuk semua mata pelajaran.
- Access state: login.
- Failure/recovery: bila rekap gagal dimuat, tampilkan pesan dan opsi memuat ulang.
- Continuation: guru kembali menginput nilai atau mengekspor data.
FR-17 — Kirim data ke canva sheet atau download data [explicit]
As a Guru SMP, I should mengirim data ke canva sheet atau mengunduh data agar rekap dapat dipakai di luar aplikasi.
- Trigger/input: menekan tombol kirim data ke canva sheet atau tombol download data.
- Observable result: data terkirim ke canva sheet atau berkas data terunduh.
- Access state: login.
- Failure/recovery: bila pengiriman atau unduhan gagal, pesan galat ditampilkan dan guru dapat mengulang tanpa kehilangan data nilai.
- Continuation: guru melanjutkan pekerjaan lain di aplikasi.
FR-18 — Format data canva sheet [explicit]
As a Guru SMP, I should mendapatkan data canva sheet dengan format yang memuat 1) Nama Siswa, 2) Jenis Kelamin, 3) Nilai Raport (PAL, PRBLMTK, IPAS, Seni, PJOK, INGGRIS, KKA, Mulok), dan 4) Rekap absen tiap siswa (S, I, A), agar data sesuai instruksi yang saya tetapkan.
- Trigger/input: menjalankan kirim data ke canva sheet atau download data.
- Observable result: data yang dihasilkan memuat keempat kelompok kolom tersebut dengan urutan dan penamaan sesuai instruksi.
- Access state: login.
- Failure/recovery: bila format tidak lengkap, proses ditandai gagal dan guru dapat mengulang.
- Continuation: guru memakai data hasil ekspor.
FR-19 — Absen guru dengan kalender, pilihan kelas, dan rekap [explicit]
As a Guru SMP, I should mencatat absen guru dengan kalender dalam ukuran kecil tiap bulan dari Januari–Desember beserta harinya (dibuat dengan tampilan yang informatif), pilihan kelas, dan rekap absen guru, agar kehadiran guru terdokumentasi per kelas dan per periode.
- Trigger/input: membuka menu absen guru, memilih kelas, dan memilih tanggal pada kalender.
- Observable result: keterangan absen guru tersimpan dan rekap absen guru tampil.
- Access state: login.
- Failure/recovery: bila penyimpanan gagal, keterangan sebelumnya tetap berlaku dan pesan galat ditampilkan.
- Continuation: guru melanjutkan ke tanggal atau kelas berikutnya.
FR-20 — Keterangan absen guru S, I, A, Hadir [explicit]
As a Guru SMP, I should mencatat keterangan absen guru dengan S (sakit), I (izin), A (alpa), dan Hadir agar status kehadiran guru konsisten dengan absen siswa.
- Trigger/input: memilih keterangan pada tanggal tertentu.
- Observable result: keterangan S, I, A, atau Hadir tersimpan pada tanggal tersebut.
- Access state: login.
- Failure/recovery: bila penyimpanan gagal, keterangan sebelumnya tetap berlaku dan pesan galat ditampilkan.
- Continuation: guru melanjutkan pencatatan.
FR-21 — Munculkan dan sembunyikan kalender pada absen guru [explicit]
As a Guru SMP, I should memunculkan dan menyembunyikan kalender pada absen guru agar tampilan dapat disesuaikan.
- Trigger/input: menekan kontrol munculkan/sembunyikan kalender.
- Observable result: kalender tampil atau tersembunyi sesuai pilihan.
- Access state: login.
- Failure/recovery: bila kontrol gagal, kalender tetap dapat digunakan dan halaman dapat dimuat ulang.
- Continuation: guru melanjutkan pencatatan absen guru.
FR-22 — Jurnal guru berisi kegiatan di tiap kelas [explicit]
As a Guru SMP, I should menulis jurnal guru yang berisi kegiatan guru di tiap kelas agar kegiatan harian terdokumentasi per kelas.
- Trigger/input: membuka menu jurnal guru dan memilih kelas.
- Observable result: kolom kegiatan harian guru di kelas tersebut tersedia dan kegiatan yang ditulis tersimpan.
- Access state: login.
- Failure/recovery: bila penyimpanan gagal, teks kegiatan dipertahankan dan pesan galat ditampilkan.
- Continuation: guru melanjutkan ke tanggal atau kelas berikutnya.
FR-23 — Kalender jurnal guru lengkap dengan hari dan tanggal [explicit]
As a Guru SMP, I should melihat kalender dalam ukuran kecil lengkap dengan hari dan tanggalnya pada jurnal guru agar saya dapat memilih tanggal kegiatan dengan tepat.
- Trigger/input: membuka menu jurnal guru.
- Observable result: kalender kecil dengan hari dan tanggal tampil.
- Access state: login.
- Failure/recovery: bila kalender gagal dimuat, guru dapat memuat ulang halaman.
- Continuation: guru memilih tanggal dan menulis kegiatan.
FR-24 — Munculkan dan sembunyikan kalender pada jurnal guru [explicit]
As a Guru SMP, I should memunculkan dan menyembunyikan kalender pada jurnal guru agar ruang penulisan kegiatan lebih lega bila diperlukan.
- Trigger/input: menekan kontrol munculkan/sembunyikan kalender.
- Observable result: kalender tampil atau tersembunyi sesuai pilihan.
- Access state: login.
- Failure/recovery: bila kontrol gagal, kalender tetap dapat digunakan dan halaman dapat dimuat ulang.
- Continuation: guru melanjutkan penulisan jurnal.
FR-25 — Daftar mata pelajaran [explicit]
As a Guru SMP, I should menggunakan daftar mata pelajaran: Pendidikan Agama dan Budi Pekerti, Pendidikan Kewarganegaraan, Bahasa Indonesia, Matematika, Ilmu Pengetahuan Alam dan Sosial, Seni Budaya/Musik/Tari, Pendidikan Jasmani Olahraga dan Kesehatan, Pendidikan Bahasa Inggris, Koding dan Kecerdasan Artificial, dan Mulok, agar penilaian dan rekap mengikuti mata pelajaran yang saya ajarkan.
- Trigger/input: membuka menu nilai siswa atau rekap nilai.
- Observable result: kesepuluh mata pelajaran tersebut tersedia sebagai pilihan dan tampil pada rekap.
- Access state: login.
- Failure/recovery: bila daftar gagal dimuat, tampilkan pesan dan opsi memuat ulang.
- Continuation: guru memilih mata pelajaran dan menginput nilai.
FR-26 — Tahun Pelajaran 2025/2026 dan pembagian semester [explicit]
As a Guru SMP, I should bekerja dalam Tahun Pelajaran 2025/2026 dengan semester ganjil Juli–Desember dan semester genap Januari–Juni agar periode administrasi sesuai kalender sekolah.
- Trigger/input: membuka menu absen siswa, absen guru, jurnal guru, atau nilai siswa.
- Observable result: periode Tahun Pelajaran 2025/2026 dengan pembagian semester ganjil Juli–Desember dan semester genap Januari–Juni digunakan pada pencatatan dan rekap.
- Access state: login.
- Failure/recovery: bila periode tidak dapat dimuat, tampilkan pesan dan opsi memuat ulang.
- Continuation: guru melanjutkan pencatatan pada periode yang benar.
FR-27 — Semua fitur isian berjalan lancar [explicit]
As a Guru SMP, I should mengalami semua fitur isian dalam aplikasi berjalan dengan lancar agar pekerjaan administrasi tidak terhambat.
- Trigger/input: menggunakan fitur isian apa pun.
- Observable result: isian dapat diisi dan disimpan tanpa hambatan.
- Access state: login.
- Failure/recovery: bila terjadi kegagalan, pesan jelas ditampilkan dan isian dapat diulang.
- Continuation: guru melanjutkan pekerjaan.
FR-28 — Biodata guru dapat diinput [explicit]
As a Guru SMP, I should menginput biodata guru pada menu biodata guru yang memuat Nama Guru, Tempat tanggal lahir, NIP, Guru, No Kontak, Alamat, email, dan motto agar identitas saya tercatat di aplikasi.
- Trigger/input: membuka menu biodata guru dan mengisi kolom-kolom tersebut.
- Observable result: biodata guru tersimpan dan tampil pada menu biodata guru.
- Access state: login.
- Failure/recovery: bila penyimpanan gagal, isian dipertahankan dan pesan galat ditampilkan.
- Continuation: guru mengedit biodata bila ada perubahan.
FR-29 — Edit biodata guru [explicit]
As a Guru SMP, I should mengedit biodata guru agar data yang tersimpan selalu mutakhir.
- Trigger/input: membuka mode edit pada menu biodata guru dan mengubah nilai kolom.
- Observable result: perubahan biodata tersimpan dan tampil.
- Access state: login.
- Failure/recovery: bila penyimpanan gagal, biodata lama tetap utuh dan pesan galat ditampilkan.
- Continuation: guru melanjutkan pekerjaan lain.
FR-30 — Berjalan lancar dan normal pada semua perangkat [explicit]
As a Guru SMP, I should menggunakan semua fitur dengan lancar dan normal pada semua perangkat agar saya dapat bekerja dari perangkat mana pun yang saya pakai.
- Trigger/input: membuka dan menggunakan aplikasi pada perangkat yang berbeda.
- Observable result: fitur berfungsi normal pada perangkat yang digunakan.
- Access state: anonim (Landing dan login) dan setelah login.
- Failure/recovery: bila tampilan atau fungsi terganggu pada suatu perangkat, guru dapat memuat ulang dan melanjutkan.
- Continuation: guru melanjutkan pekerjaan pada perangkat tersebut.
FR-31 — Halaman login dengan background putih clean beraksen biru dan tulisan pengembang [explicit]
As a Guru SMP, I should melihat halaman login dengan background full putih clean beraksen biru, kolom nama lengkap guru, kolom password, dan tulisan di bawah kolom login "Aplikasi ini dikembangkan oleh: M.khoirun nizam (mahasiswa)pelajar" agar saya tahu cara masuk dan siapa pengembangnya.
- Trigger/input: membuka halaman login.
- Observable result: halaman login tampil dengan latar putih bersih beraksen biru, kolom nama lengkap guru, kolom password, dan tulisan pengembang di bawah kolom login.
- Access state: anonim.
- Failure/recovery: bila halaman gagal dimuat, guru dapat memuat ulang.
- Continuation: guru mengisi kredensial.
FR-32 — Judul halaman login dan efek transisi [explicit]
As a Guru SMP, I should melihat halaman login berjudul "APLIKASI ADMINISTRASI GURU SD AMYN" dengan animasi dan efek transisi yang keren agar pengalaman masuk terasa menarik.
- Trigger/input: membuka halaman login dan berpindah dari/ke halaman tersebut.
- Observable result: judul "APLIKASI ADMINISTRASI GURU SD AMYN" tampil dan animasi serta efek transisi dijalankan.
- Access state: anonim.
- Failure/recovery: bila animasi tidak dapat dijalankan, formulir login tetap tampil dan dapat digunakan.
- Continuation: guru mengisi kredensial dan masuk.
FR-33 — Login dengan nama lengkap guru dan password 123456 [explicit]
As a Guru SMP, I should masuk dengan mengisi nama lengkap guru dan password 123456 agar saya dapat mengakses data administrasi saya.
- Trigger/input: mengisi nama lengkap guru dan password
123456, lalu menekan tombol masuk.
- Observable result: guru masuk ke aplikasi dan diarahkan ke dashboard.
- Access state: anonim pada halaman login; setelah berhasil, sesi login aktif.
- Failure/recovery: bila nama lengkap atau password tidak sesuai, pesan galat ditampilkan dan kolom tetap terisi untuk diperbaiki.
- Continuation: guru melanjutkan ke dashboard.
FR-34 — Penetapan kredensial saat pertama kali memakai aplikasi [required_inference]
As a Guru SMP, I should menetapkan kredensial saya (nama lengkap guru dan password 123456) pada permukaan login saat pertama kali memakai aplikasi agar data administrasi saya terikat pada identitas saya dan dapat dilanjutkan di perangkat lain.
- Trigger/input: membuka halaman login untuk pertama kali dan mengisi nama lengkap guru serta password
123456.
- Observable result: kredensial guru terdaftar dan guru dapat masuk.
- Access state: anonim pada halaman login.
- Failure/recovery: bila penetapan gagal, pesan galat ditampilkan dan guru dapat mengulang pengisian.
- Continuation: guru masuk ke dashboard.
FR-35 — Verifikasi kredensial pada kunjungan berikutnya [required_inference]
As a Guru SMP, I should memverifikasi kredensial saya pada kunjungan berikutnya agar saya dapat melanjutkan data administrasi yang sudah tersimpan.
- Trigger/input: membuka halaman login pada kunjungan berikutnya dan mengisi nama lengkap guru serta password
123456.
- Observable result: sesi login aktif dan data administrasi yang tersimpan dapat diakses kembali.
- Access state: anonim pada halaman login; setelah berhasil, sesi login aktif.
- Failure/recovery: bila verifikasi gagal, pesan galat ditampilkan dan guru dapat mengulang.
- Continuation: guru melanjutkan ke dashboard.
FR-36 — Penyimpanan API dan sinkronisasi otomatis lintas perangkat [explicit]
As a Guru SMP, I should mendapatkan sistem penyimpanan API yang canggih agar data tersinkron otomatis di semua perangkat yang saya gunakan untuk mengisi data.
- Trigger/input: menyimpan atau mengubah data administrasi pada salah satu perangkat.
- Observable result: data tersimpan pada backend API dan tersinkron otomatis sehingga tersedia pada perangkat lain yang digunakan guru.
- Access state: login.
- Failure/recovery: bila sinkronisasi gagal, data lokal tetap dapat dipakai dan guru dapat memuat ulang untuk menyinkronkan kembali.
- Continuation: guru melanjutkan pekerjaan pada perangkat mana pun.
FR-37 — Data siswa sebagai sumber nama untuk absen, nilai, rekap, dan ekspor [required_inference]
As a Guru SMP, I should melihat nama murid dari data siswa terpakai pada pencatatan absen siswa, penginputan nilai, rekap, dan ekspor agar seluruh administrasi merujuk pada daftar murid yang sama.
- Trigger/input: membuka menu absen siswa, nilai siswa, rekap, atau menjalankan ekspor.
- Observable result: nama murid yang tampil bersumber dari data siswa yang telah diinputkan.
- Access state: login.
- Failure/recovery: bila data siswa belum tersedia, tampilkan arahan menuju menu data siswa.
- Continuation: guru melengkapi data siswa lalu melanjutkan pencatatan.
Page 8 of 21
4. User Personas
Page 9 of 21
Guru SMP (pengguna utama)
Konteks produk. Guru SMP ini mengajar dan mengelola administrasi kelas pada Tahun Pelajaran 2025/2026. Ia bekerja dari beberapa perangkat berbeda — misalnya komputer di sekolah dan perangkat pribadi di rumah — sehingga membutuhkan data yang tersinkron otomatis. Ia bukan administrator sistem: ia ingin mengisi data dengan cepat, melihat rekap, dan mengekspor hasilnya, tanpa mengurus server atau basis data.
Tujuan utama. Menyelesaikan seluruh administrasi kelas — data siswa, absen siswa, nilai siswa, absen guru, jurnal guru, dan biodata guru — dengan cepat, akurat, dan tersimpan serta tersinkron otomatis di semua perangkat yang ia pakai.
Tanggung jawab yang diterima.
- Menetapkan kredensial dan masuk melalui halaman login berjudul APLIKASI ADMINISTRASI GURU SD AMYN dengan nama lengkap guru dan password
123456.
- Mengelola data siswa per kelas: menginput nama murid, jenis kelamin, nama orangtua Ayah/Ibu, dan pekerjaan Ayah/Ibu; menyimpan cukup dengan nama dan jenis kelamin; mengedit dan menghapus; melihat daftar murid berurutan abjad A–Z.
- Mencatat absen siswa per kelas dengan kalender kecil Januari–Desember, keterangan S/I/A/Hadir, rekap bulanan semua murid, serta memunculkan dan menyembunyikan kalender.
- Menginput nilai siswa: 3 kolom nilai harian, 1 kolom MID, 1 kolom PAS, dan melihat nilai raport hasil perhitungan; melihat rekap nilai semua murid yang memuat semua mata pelajaran; mengirim data ke canva sheet atau mengunduh data dengan format yang ditetapkan.
- Mencatat absen guru dengan kalender kecil Januari–Desember, pilihan kelas, rekap absen guru, keterangan S/I/A/Hadir, serta memunculkan dan menyembunyikan kalender.
- Menulis jurnal guru berisi kegiatan harian di tiap kelas dengan kalender lengkap hari dan tanggal, serta memunculkan dan menyembunyikan kalender.
- Menginput dan mengedit biodata guru: Nama Guru, Tempat tanggal lahir, NIP, Guru, No Kontak, Alamat, email, dan motto.
Input dan keputusan yang ia ambil. Ia memutuskan kelas mana yang sedang dikerjakan, tanggal dan bulan mana yang dicatat, keterangan absen apa yang tepat untuk tiap murid dan untuk dirinya sendiri, nilai apa yang dimasukkan pada tiap kolom, isi kegiatan harian pada jurnal, serta kapan mengirim data ke canva sheet atau mengunduh data.
Interaksi dengan peserta lain. Tidak ada pengguna manusia lain dalam aplikasi ini. Rekan kerjanya adalah sistem backend API yang menyimpan dan menyinkronkan data, serta permukaan ekspor (canva sheet atau berkas unduhan) yang menerima data hasil kerjanya. Data yang ia kelola merujuk pada murid-murid di kelasnya, yang bukan pengguna aplikasi.
Keberhasilan yang terlihat. Semua data administrasi kelas terisi, tersimpan, dan tersinkron otomatis di semua perangkat yang ia pakai; daftar murid tersusun A–Z; rekap absen bulanan dan rekap nilai semua mata pelajaran dapat dibaca; data dapat dikirim ke canva sheet atau diunduh sesuai format; biodata guru tersimpan dan dapat diedit; seluruh fitur isian berjalan lancar dan normal pada semua perangkat.
Page 10 of 21
5. Core User Flows
Flow 1 — Masuk ke aplikasi dan menetapkan kredensial (Guru SMP)
- Guru membuka aplikasi dan melihat halaman Landing yang memperkenalkan "APLIKASI ADMINISTRASI GURU SMP".
- Guru memilih tombol menuju halaman login.
- Halaman APLIKASI ADMINISTRASI GURU SD AMYN tampil dengan background full putih clean beraksen biru, judul "APLIKASI ADMINISTRASI GURU SD AMYN", kolom nama lengkap guru, kolom password, dan tulisan di bawah kolom login: "Aplikasi ini dikembangkan oleh: M.khoirun nizam (mahasiswa)pelajar", disertai animasi dan efek transisi yang keren.
- Pada pemakaian pertama, guru mengisi nama lengkap guru dan password
123456 untuk menetapkan kredensialnya.
- Guru menekan tombol masuk. Sistem memverifikasi kredensial.
- Hasil yang terlihat: guru masuk dan diarahkan ke dashboard.
- Kegagalan dan pemulihan: bila nama lengkap atau password tidak sesuai, pesan galat tampil dan kolom tetap terisi sehingga guru dapat memperbaiki tanpa mengetik ulang.
- Kelanjutan: guru mulai bekerja dari dashboard.
Flow 2 — Masuk kembali pada kunjungan berikutnya (Guru SMP)
- Guru membuka aplikasi pada kunjungan berikutnya, dari perangkat yang sama atau perangkat lain.
- Guru membuka halaman APLIKASI ADMINISTRASI GURU SD AMYN.
- Guru mengisi nama lengkap guru dan password
123456, lalu menekan tombol masuk.
- Hasil yang terlihat: sesi login aktif dan data administrasi yang tersimpan sebelumnya tersedia kembali melalui sinkronisasi API.
- Kegagalan dan pemulihan: bila verifikasi gagal, pesan galat tampil dan guru dapat mengulang pengisian.
- Kelanjutan: guru melanjutkan pekerjaan dari dashboard.
Page 11 of 21
Flow 3 — Membaca ringkasan dashboard dan berpindah menu (Guru SMP)
- Guru berada di dashboard setelah login.
- Guru melihat kartu jumlah siswa yang sudah diinputkan, kartu persentase kehadiran per hari, kartu biodata singkat guru, dan panel akses cepat ke menu-menu aplikasi, dengan warna colourful dan font yang mudah dibaca.
- Guru memilih menu melalui akses cepat, tab atas (menu utama), atau sidebar.
- Hasil yang terlihat: halaman menu tujuan tampil dengan animasi transisi MORPH yang smooth.
- Kegagalan dan pemulihan: bila kartu ringkasan gagal dimuat, guru menekan coba lagi dan ringkasan dimuat ulang.
- Kelanjutan: guru mengerjakan tugas pada menu yang dipilih.
Flow 4 — Menginput data murid dengan minimal nama dan jenis kelamin (Guru SMP)
- Guru membuka menu data siswa dan memilih kelas.
- Guru mengisi nama murid dan jenis kelamin.
- Guru menyimpan data. Karena minimal 2 data (nama dan jenis kelamin) sudah cukup, penyimpanan berhasil meskipun nama orangtua Ayah/Ibu dan pekerjaan Ayah/Ibu belum diisi.
- Hasil yang terlihat: murid muncul pada daftar nama murid yang tersusun berdasarkan abjad A–Z.
- Kegagalan dan pemulihan: bila nama atau jenis kelamin kosong, penyimpanan ditolak dengan pesan jelas dan isian lain dipertahankan.
- Kelanjutan: guru melengkapi kolom nama orangtua Ayah/Ibu dan pekerjaan Ayah/Ibu bila diperlukan, atau menambah murid berikutnya.
Flow 5 — Mengedit dan menghapus data murid (Guru SMP)
- Guru membuka menu data siswa dan menemukan murid pada daftar terurut A–Z.
- Guru memilih aksi edit, mengubah data yang perlu diperbarui, lalu menyimpan.
- Hasil yang terlihat: perubahan tampil pada daftar murid.
- Guru memilih aksi hapus pada murid yang tidak lagi diperlukan.
- Hasil yang terlihat: murid tersebut hilang dari daftar.
- Kegagalan dan pemulihan: bila penyimpanan atau penghapusan gagal, data lama tetap utuh dan pesan galat ditampilkan.
- Kelanjutan: guru melanjutkan pengelolaan data murid.
Page 12 of 21
Flow 6 — Mencatat absen siswa harian dan membaca rekap bulanan (Guru SMP)
- Guru membuka menu absen siswa dan memilih kelas.
- Sistem menampilkan nama murid yang bersumber dari menu data murid, beserta kalender kecil bulan Januari–Desember dengan harinya.
- Guru memilih tanggal pada kalender, lalu mencatat keterangan untuk tiap murid: S (sakit), I (izin), A (alpa), atau Hadir.
- Hasil yang terlihat: keterangan tersimpan pada tanggal tersebut dan rekap absen semua murid pada bulan itu diperbarui.
- Guru dapat memunculkan atau menyembunyikan kalender kapan saja agar ruang kerja lebih lega.
- Kegagalan dan pemulihan: bila penyimpanan gagal, keterangan sebelumnya tetap berlaku dan pesan galat ditampilkan; bila kelas terpilih belum memiliki murid, aplikasi mengarahkan guru ke menu data siswa.
- Kelanjutan: guru berpindah tanggal, murid, atau bulan berikutnya.
Flow 7 — Menginput nilai dan melihat nilai raport (Guru SMP)
- Guru membuka menu nilai siswa, memilih kelas dan mata pelajaran.
- Sistem menampilkan 3 kolom nilai harian, 1 kolom nilai MID, 1 kolom nilai PAS, dan kolom nilai raport, semuanya terlihat agar mudah diinputkan.
- Guru mengisi nilai harian, MID, dan PAS untuk tiap murid.
- Hasil yang terlihat: kolom nilai raport menampilkan hasil perhitungan dari nilai harian, MID, dan PAS.
- Kegagalan dan pemulihan: bila nilai yang dimasukkan tidak valid, kolom ditandai dan nilai raport tidak dihitung sampai input benar.
- Kelanjutan: guru berpindah murid atau mata pelajaran berikutnya.
Flow 8 — Membaca rekap nilai semua mata pelajaran (Guru SMP)
- Guru membuka rekap nilai pada menu nilai siswa.
- Hasil yang terlihat: rekap nilai semua murid tampil dengan semua nilai mata pelajaran — Pendidikan Agama dan Budi Pekerti, Pendidikan Kewarganegaraan, Bahasa Indonesia, Matematika, Ilmu Pengetahuan Alam dan Sosial, Seni Budaya/Musik/Tari, Pendidikan Jasmani Olahraga dan Kesehatan, Pendidikan Bahasa Inggris, Koding dan Kecerdasan Artificial, dan Mulok.
- Kegagalan dan pemulihan: bila rekap gagal dimuat, guru menekan coba lagi.
- Kelanjutan: guru kembali menginput nilai atau melanjutkan ke ekspor data.
Page 13 of 21
Flow 9 — Mengirim data ke canva sheet atau mengunduh data (Guru SMP)
- Guru membuka menu nilai siswa dan memilih tombol kirim data ke canva sheet atau tombol download data.
- Sistem menyusun data dengan format yang ditetapkan: 1) Nama Siswa, 2) Jenis Kelamin, 3) Nilai Raport (PAL, PRBLMTK, IPAS, Seni, PJOK, INGGRIS, KKA, Mulok), dan 4) Rekap absen tiap siswa (S, I, A).
- Hasil yang terlihat: data terkirim ke canva sheet atau berkas data terunduh sesuai format tersebut.
- Kegagalan dan pemulihan: bila pengiriman atau unduhan gagal, pesan galat ditampilkan dan guru dapat mengulang tanpa kehilangan data nilai.
- Kelanjutan: guru memakai data hasil ekspor di luar aplikasi.
Flow 10 — Mencatat absen guru per kelas (Guru SMP)
- Guru membuka menu absen guru dan memilih kelas.
- Sistem menampilkan kalender kecil tiap bulan Januari–Desember beserta harinya dengan tampilan yang informatif.
- Guru memilih tanggal dan mencatat keterangan absennya: S (sakit), I (izin), A (alpa), atau Hadir.
- Hasil yang terlihat: keterangan tersimpan dan rekap absen guru diperbarui.
- Guru dapat memunculkan atau menyembunyikan kalender kapan saja.
- Kegagalan dan pemulihan: bila penyimpanan gagal, keterangan sebelumnya tetap berlaku dan pesan galat ditampilkan.
- Kelanjutan: guru berpindah tanggal atau kelas berikutnya.
Flow 11 — Menulis jurnal kegiatan harian per kelas (Guru SMP)
- Guru membuka menu jurnal guru dan memilih kelas.
- Sistem menampilkan kalender kecil lengkap dengan hari dan tanggalnya.
- Guru memilih tanggal, lalu menulis kegiatan harian guru di kelas tersebut pada kolom kegiatan.
- Hasil yang terlihat: kegiatan tersimpan dan tampil pada tanggal yang dipilih.
- Guru dapat memunculkan atau menyembunyikan kalender kapan saja.
- Kegagalan dan pemulihan: bila penyimpanan gagal, teks kegiatan dipertahankan dan pesan galat ditampilkan.
- Kelanjutan: guru berpindah tanggal atau kelas berikutnya.
Page 14 of 21
Flow 12 — Menginput dan mengedit biodata guru (Guru SMP)
- Guru membuka menu biodata guru.
- Guru mengisi Nama Guru, Tempat tanggal lahir, NIP, Guru, No Kontak, Alamat, email, dan motto, lalu menyimpan.
- Hasil yang terlihat: biodata guru tersimpan dan tampil pada menu biodata guru.
- Ketika ada perubahan, guru membuka mode edit, memperbarui kolom yang perlu diubah, lalu menyimpan.
- Hasil yang terlihat: biodata yang diperbarui tampil.
- Kegagalan dan pemulihan: bila penyimpanan gagal, biodata lama tetap utuh dan pesan galat ditampilkan.
- Kelanjutan: guru melanjutkan pekerjaan lain; biodata singkat guru ikut tampil pada dashboard.
Flow 13 — Melanjutkan pekerjaan dari perangkat lain (Guru SMP)
- Guru menyimpan atau mengubah data administrasi pada satu perangkat.
- Sistem menyimpan data pada backend API dan menyinkronkannya secara otomatis.
- Guru membuka aplikasi pada perangkat lain dan masuk dengan nama lengkap guru serta password
123456.
- Hasil yang terlihat: data administrasi yang sama tersedia dan dapat dilanjutkan pada perangkat tersebut.
- Kegagalan dan pemulihan: bila sinkronisasi gagal, guru memuat ulang untuk menyinkronkan kembali.
- Kelanjutan: guru melanjutkan pengisian data dari titik terakhir.
Page 15 of 21
6. Visuals Colors and Theme
Palet dan gaya mengikuti ketentuan pengguna: warna dasar putih, aksen biru, kartu background warna-warni, teks kontras, futuristik namun elegan. Nilai token di bawah adalah penetapan konkret yang koheren dengan ketentuan tersebut; detail yang tidak disebutkan pengguna ditandai sebagai default.
Mode: terang (light) sebagai mode utama, sesuai latar putih bersih.
Warna per peran:
| Peran | Nilai | Keterangan |
|---|
| Latar dasar aplikasi | #FFFFFF | Putih bersih, sesuai ketentuan pengguna |
| Latar permukaan/kartu netral | #F5F9FF | Putih kebiruan sangat muda untuk pemisahan halus |
| Aksen utama (biru) | #1D4ED8 | Tombol utama, tautan aktif, indikator tab |
| Aksen biru terang | #3B82F6 | Sorotan, garis fokus, ikon aktif |
| Biru gelap untuk teks di atas aksen | #0B1B3A | Judul dan teks berkontras tinggi |
| Teks utama | #0F172A | Kontras tinggi di atas putih |
| Teks sekunder | #475569 | Label, keterangan pendukung |
| Garis/border | #DBEAFE | Pemisah dan garis tabel |
| Kartu warna-warni 1 | #2563EB | Kartu ringkasan jumlah siswa |
| Kartu warna-warni 2 | #0EA5E9 | Kartu persentase kehadiran per hari |
| Kartu warna-warni 3 | #7C3AED | Kartu biodata singkat guru |
| Kartu warna-warni 4 | #F59E0B | Kartu akses cepat menu |
| Kartu warna-warni 5 | #10B981 | Kartu status/rekap pendukung |
| Sukses | #059669 | Konfirmasi penyimpanan |
| Peringatan | #D97706 | Peringatan validasi ringan |
| Galat | #DC2626 | Pesan galat dan kolom tidak valid |
| Kode absen S | #F59E0B | Sakit |
| Kode absen I | #3B82F6 | Izin |
| Kode absen A | #DC2626 | Alpa |
| Kode absen Hadir | #059669 | Hadir |
Tipografi:
- Font judul: Plus Jakarta Sans — modern, geometris, mudah dibaca, dan terasa futuristik namun elegan.
[Default — not specified by user]
- Font isi: Inter — keterbacaan tinggi pada tabel nilai dan absen yang padat.
[Default — not specified by user]
- Skala tipe: 12px (label tabel), 14px (isi), 16px (isi utama), 20px (subjudul), 28px (judul halaman), 40px (judul hero/login).
[Default — not specified by user]
- Bobot: 400 untuk isi, 600 untuk label dan judul kartu, 700 untuk judul halaman.
Bentuk dan radius: radius 16px untuk kartu, 12px untuk tombol dan kolom input, 8px untuk sel tabel dan chip kode absen. [Default — not specified by user]
Ritme spasi: basis 4px; jarak antar kartu 16px; padding kartu 20–24px; jarak antar bagian 32px. [Default — not specified by user]
Gaya citra: gradasi biru halus pada kartu warna-warni, ikon garis tipis dua warna, tanpa foto dekoratif; fokus pada keterbacaan angka dan tabel. [Default — not specified by user]
Halaman login: latar full putih clean beraksen biru, tanpa gambar latar, dengan aksen biru pada tombol masuk, garis fokus kolom, dan judul "APLIKASI ADMINISTRASI GURU SD AMYN".
Page 16 of 21
7. Signature Design Concept
Konsep: "Papan Kelas Biru" — kartu-kartu warna-warni yang bermorfosis di atas kanvas putih.
Halaman Landing dibangun sebagai satu kanvas putih bersih dengan satu bidang biru besar (#1D4ED8 ke #3B82F6) yang menjadi jangkar visual. Di atas kanvas itu, empat kartu warna-warni — biru (#2563EB), langit (#0EA5E9), ungu (#7C3AED), dan amber (#F59E0B) — tersusun seperti kartu indeks di meja guru, masing-masing memuat satu potongan makna produk: nama "APLIKASI ADMINISTRASI GURU SMP", ringkasan administrasi kelas yang dikelola (data siswa, absen, nilai, jurnal), dan ajakan menuju halaman login.
Saat pengunjung mengarahkan kursor atau menyentuh kartu, kartu tersebut bermorfosis — sudut membulat berubah, ukuran bidang menyesuaikan, dan warnanya bergeser ke nada yang lebih terang — memperagakan animasi transisi MORPH yang menjadi ciri aplikasi. Judul aplikasi tetap menjadi fokus pertama, dengan tipografi Plus Jakarta Sans berukuran besar dan kontras tinggi di atas putih.
Konsep ini hanya menyusun ulang konten, state, dan kontrol yang sudah diterima: identitas aplikasi, ringkasan cakupan administrasi, dan tombol menuju login. Tidak ada perilaku, halaman, atau data baru yang diperkenalkan.
Page 17 of 21
8. Interaction Model & Motion Direction
Interaction Model: Animated
Motion Tempo: restrained
Hero Dimensionality: layered_2d
Landing Hero Motion Brief
- Subjek fokal: susunan kartu warna-warni di atas kanvas putih dengan bidang biru sebagai jangkar, memuat nama aplikasi dan ringkasan administrasi kelas.
- Tesis input → transformasi → hasil: saat pengunjung mengarahkan kursor atau menyentuh kartu, kartu tersebut bermorfosis (radius, skala, dan nada warna berubah halus) dan menampilkan ringkasan cakupan administrasi yang sesuai; hasilnya adalah pemahaman cepat tentang apa yang dikelola aplikasi dan satu jalur jelas menuju halaman login.
- Kosakata gerak: morph (perubahan bentuk dan radius), fade-and-lift halus pada kartu, pergeseran gradasi biru yang tenang, dan transisi halaman MORPH yang smooth saat menuju login.
- Bingkai pertama yang tersusun: kanvas putih penuh, bidang biru besar di sisi kiri, judul "APLIKASI ADMINISTRASI GURU SMP" kontras tinggi, dan empat kartu warna-warni tersusun rapi dengan tombol menuju login terlihat tanpa perlu menggulir.
- Keadaan reduced-motion: semua morph dan pergeseran dinonaktifkan; kartu tampil dalam keadaan akhirnya (statis) dengan kontras dan tata letak yang sama, dan tombol menuju login tetap berfungsi penuh.
Catatan penerapan pada halaman kerja: animasi transisi MORPH yang smooth diterapkan pada perpindahan antar halaman dan pada perubahan state panel (misalnya memunculkan dan menyembunyikan kalender pada absen siswa, absen guru, dan jurnal guru). Tempo tetap restrained agar tabel nilai dan absen tetap mudah dibaca dan diisi.
Page 18 of 21
9. Non-Functional Requirements
NFR-01 — Responsif di semua perangkat [explicit]
Semua fitur harus berjalan lancar dan normal pada semua perangkat yang digunakan guru. Tata letak tab atas, sidebar, kartu dashboard, tabel nilai, dan kalender kecil harus menyesuaikan ukuran layar tanpa kehilangan fungsi. Rasional: guru bekerja dari perangkat berbeda.
NFR-02 — Keandalan fitur isian [explicit]
Semua fitur isian dalam aplikasi harus berjalan dengan lancar. Setiap penyimpanan harus memberi umpan balik yang jelas (berhasil atau gagal) dan tidak boleh menghilangkan isian guru saat terjadi kegagalan. Rasional: ketentuan eksplisit pengguna.
NFR-03 — Sinkronisasi otomatis lintas perangkat [explicit]
Sistem penyimpanan API harus menyimpan data administrasi dan menyinkronkannya secara otomatis di semua perangkat yang digunakan guru untuk mengisi data. Rasional: ketentuan eksplisit pengguna.
NFR-04 — Keamanan akses dasar [explicit]
Akses ke seluruh halaman kerja hanya melalui halaman login dengan nama lengkap guru dan password 123456. Rasional: ketentuan eksplisit pengguna.
NFR-05 — Keterbacaan dan kontras [explicit]
Teks harus kontras dan font harus mudah dibaca, termasuk pada kartu warna-warni dashboard dan pada tabel nilai serta absen yang padat. Rasional: ketentuan eksplisit pengguna.
NFR-06 — Konsistensi visual [explicit]
Warna dasar putih dengan aksen biru, kartu background warna-warni, dan gaya futuristik namun elegan harus diterapkan konsisten di seluruh halaman. Rasional: ketentuan eksplisit pengguna.
NFR-07 — Kelancaran animasi [explicit]
Animasi transisi MORPH harus smooth dan tidak mengganggu pengisian data; bila animasi tidak dapat dijalankan pada suatu perangkat, konten dan kontrol tetap berfungsi. Rasional: ketentuan eksplisit pengguna.
NFR-08 — Cakupan periode Tahun Pelajaran 2025/2026 [explicit]
Pencatatan dan rekap harus mencakup Tahun Pelajaran 2025/2026 dengan semester ganjil Juli–Desember dan semester genap Januari–Juni, serta kalender Januari–Desember pada absen siswa, absen guru, dan jurnal guru. Rasional: ketentuan eksplisit pengguna.
NFR-09 — Kelengkapan format ekspor [explicit]
Data yang dikirim ke canva sheet atau diunduh harus memuat Nama Siswa, Jenis Kelamin, Nilai Raport (PAL, PRBLMTK, IPAS, Seni, PJOK, INGGRIS, KKA, Mulok), dan Rekap absen tiap siswa (S, I, A) sesuai instruksi. Rasional: ketentuan eksplisit pengguna.
NFR-10 — Ketahanan data administrasi [required_inference]
Data administrasi harus tersimpan pada backend API agar dapat dipulihkan dan disinkronkan lintas perangkat. Rasional: diperlukan agar sinkronisasi otomatis yang diminta dapat berjalan dan data tidak hilang saat berpindah perangkat.
Page 19 of 21
10. Tech Stack
Pilihan teknologi berikut mengikuti kebutuhan yang dinyatakan pengguna (aplikasi web responsif, sistem penyimpanan API, sinkronisasi lintas perangkat). Item yang tidak disebutkan pengguna ditandai sebagai default.
- Frontend: React (aplikasi web) dengan TypeScript.
[Default — not specified by user]
- Styling dan animasi: CSS modern dengan token warna dan radius pada Bagian 6; animasi transisi MORPH diimplementasikan dengan transisi CSS/Web Animations API.
[Default — not specified by user]
- Backend API: Python dengan FastAPI, menyediakan endpoint penyimpanan dan sinkronisasi data administrasi.
[Default — not specified by user]
- Penyimpanan: basis data relasional (PostgreSQL) untuk data guru, siswa, absen, nilai, dan jurnal.
[Default — not specified by user]
- Kontainerisasi: Docker dan docker-compose untuk menjalankan frontend, backend, dan basis data secara konsisten.
[Default — not specified by user]
- Ekspor: pembuatan berkas data untuk diunduh dan pengiriman data ke canva sheet sesuai format yang ditetapkan pengguna.
[explicit untuk kebutuhan ekspor; mekanisme teknis default]
Kubernetes tidak disertakan karena tidak ada kebutuhan penerapan yang menuntutnya pada sumber.
Page 20 of 21
11. Assumptions and Constraints
Asumsi
- Guru bekerja pada satu sekolah dengan beberapa kelas, dan setiap kelas memiliki daftar muridnya sendiri.
[Default — not specified by user]
- Nilai raport dihitung dari nilai harian, MID, dan PAS; bobot perhitungan tidak ditentukan pengguna sehingga ditetapkan sebagai default yang konsisten dan ditampilkan transparan kepada guru.
[Default — not specified by user]
- Kode mata pelajaran pada format ekspor (PAL, PRBLMTK, IPAS, Seni, PJOK, INGGRIS, KKA, Mulok) merujuk pada mata pelajaran yang didaftarkan pengguna; pemetaan kode ke nama mata pelajaran ditetapkan sebagai default.
[Default — not specified by user]
- "Canva sheet" diperlakukan sebagai tujuan ekspor data sesuai format yang ditetapkan pengguna; mekanisme teknis pengirimannya adalah default implementasi.
[Default — not specified by user]
- Satu akun guru digunakan pada semua perangkat yang dipakai guru.
[Default — not specified by user]
Batasan
- Password login adalah
123456. [explicit]
- Judul halaman login adalah "APLIKASI ADMINISTRASI GURU SD AMYN".
[explicit]
- Tulisan di bawah kolom login: "Aplikasi ini dikembangkan oleh: M.khoirun nizam (mahasiswa)pelajar".
[explicit]
- Background halaman login full putih clean beraksen biru.
[explicit]
- Warna dasar aplikasi putih dengan aksen biru.
[explicit]
- Input data siswa minimal 2 data (nama dan jenis kelamin) sudah bisa disimpan.
[explicit]
- Urutan nama murid berdasarkan abjad A–Z.
[explicit]
- Kalender absen siswa, absen guru, dan jurnal guru mencakup tiap bulan Januari–Desember beserta harinya.
[explicit]
- Keterangan absen: S (sakit), I (izin), A (alpa), Hadir.
[explicit]
- Nilai raport dihitung dari nilai harian, MID, dan PAS.
[explicit]
- Format data canva sheet harus sesuai instruksi: Nama Siswa, Jenis Kelamin, Nilai Raport (PAL, PRBLMTK, IPAS, Seni, PJOK, INGGRIS, KKA, Mulok), Rekap absen tiap siswa (S, I, A).
[explicit]
- Tahun Pelajaran 2025/2026: semester ganjil Juli–Desember, semester genap Januari–Juni.
[explicit]
- Semua fitur isian harus berjalan lancar.
[explicit]
- Semua fitur harus berjalan lancar dan normal pada semua perangkat.
[explicit]
- Tidak ada peran manusia lain (siswa, orang tua, kepala sekolah, administrator) sebagai pengguna aplikasi, dan tidak ada kontrol izin/visibilitas berbeda antar pengguna.
[explicit — batas cakupan dari sumber]
Page 21 of 21
12. Glossary
- APLIKASI ADMINISTRASI GURU SMP — nama aplikasi yang digunakan pada produk ini.
- APLIKASI ADMINISTRASI GURU SD AMYN — judul halaman login sesuai ketentuan pengguna.
- Guru SMP (pengguna utama) — satu-satunya aktor manusia yang menggunakan aplikasi.
- Data siswa — data murid per kelas yang memuat nama murid, jenis kelamin, nama orangtua Ayah/Ibu, dan pekerjaan Ayah/Ibu.
- Absen siswa — pencatatan kehadiran murid per kelas per tanggal dengan keterangan S, I, A, atau Hadir.
- Absen guru — pencatatan kehadiran guru per kelas per tanggal dengan keterangan S, I, A, atau Hadir.
- Jurnal guru — catatan kegiatan harian guru di tiap kelas pada tanggal tertentu.
- Nilai harian — tiga kolom nilai yang diinputkan guru untuk tiap murid.
- Nilai MID — satu kolom nilai tengah semester.
- Nilai PAS — satu kolom nilai penilaian akhir semester.
- Nilai raport — nilai hasil perhitungan dari nilai harian, MID, dan PAS.
- Canva sheet — tujuan ekspor data dengan format yang ditetapkan pengguna.
- Kode absen — S (sakit), I (izin), A (alpa), Hadir.
- Tahun Pelajaran 2025/2026 — periode administrasi: semester ganjil Juli–Desember, semester genap Januari–Juni.
- MORPH — animasi transisi smooth yang diterapkan pada perpindahan tampilan aplikasi.
- Sinkronisasi API — penyimpanan dan penyelarasan otomatis data administrasi di semua perangkat yang digunakan guru.
No comments yet. Be the first!