iuran-kelompok-keanggotaan

byGibot Loka

bertindaklah sebagai developer aplikasi android dan buatkan aplikasi android untuk pencatatan iuran kelompok dengan fitur keanggotaan, kegiatan dinamis , dan pembayaran iuran tetap 20000 serta menampilkan pembayaran setiap kegiatan

No preview

Comments (0)

No comments yet. Be the first!

System Requirements

System Requirements Document for iuran-kelompok-keanggotaan

1. Introduction

iuran-kelompok-keanggotaan adalah aplikasi Android untuk pencatatan iuran kelompok. Aplikasi ini dibangun untuk kelompok komunitas kecil di Indonesia — misalnya kelompok rukun tetangga, paguyuban, atau komunitas kegiatan — yang memerlukan pencatatan iuran yang rapi, transparan, dan dapat diperiksa kembali.

Produk ini menjawab tiga kebutuhan pokok kelompok:

  1. Keanggotaan — data anggota kelompok dikelola secara terpusat sehingga setiap orang yang tercatat dapat dikenali dan dihubungkan dengan kewajiban iurannya.
  2. Kegiatan dinamis — kegiatan kelompok dapat ditambah dan diubah dari waktu ke waktu, dan setiap kegiatan menjadi konteks pencatatan iuran.
  3. Pembayaran iuran tetap Rp 20.000 — besaran iuran bersifat tetap sebesar 20000 dan tidak dapat diubah menjadi nilai lain, serta pembayaran iuran ditampilkan untuk setiap kegiatan.

Audiens produk adalah Pengurus Kelompok (Administrator Iuran) yang mengelola keanggotaan, menetapkan kegiatan, dan mencatat pembayaran; serta Anggota Kelompok yang melihat kegiatan berjalan, membayar iuran tetap Rp 20.000, dan memeriksa riwayat pembayarannya per kegiatan.

Page 1 of 38

2. System Overview

Aplikasi ini adalah aplikasi Android dengan antarmuka kustom milik aplikasi sendiri dan backend penyimpanan yang mempertahankan data keanggotaan, kegiatan, pembayaran Rp 20.000, dan status pembayaran. Identitas pengguna dimiliki oleh aplikasi: pengurus dan anggota mendaftar sendiri, kemudian memverifikasi kembali melalui Login sebelum mengakses data terlindungi.

Aktor:

  • Pengurus Kelompok (Administrator Iuran) — mengelola data keanggotaan, menambah dan mengubah kegiatan dinamis, mencatat pembayaran iuran tetap Rp 20.000 untuk setiap anggota, dan memantau status pembayaran per kegiatan.
  • Anggota Kelompok — melihat kegiatan yang sedang berjalan beserta iuran tetap Rp 20.000 yang harus dibayarkan, melakukan pembayaran iuran, dan memeriksa riwayat pembayarannya per kegiatan.

Perilaku yang diterima (current):

  • Pencatatan iuran kelompok sebagai inti produk.
  • Pengelolaan data anggota kelompok (keanggotaan).
  • Kegiatan kelompok yang dinamis: dapat ditambah dan diubah, dan menjadi konteks pencatatan iuran.
  • Pembayaran iuran tetap sebesar 20000.
  • Menampilkan pembayaran iuran untuk setiap kegiatan.
  • Pendaftaran mandiri pengurus atau anggota sebelum penggunaan pertama, dengan penetapan peran saat pendaftaran/onboarding.
  • Verifikasi kembali melalui Login sebelum mengakses data terlindungi.
  • Penyimpanan backend untuk keanggotaan, kegiatan, pembayaran 20000, dan status pembayaran.

Pengecualian sempit (narrow exclusions):

Page 2 of 38
  • Besaran iuran tidak dapat diubah dari 20000; tidak ada bidang teks bebas untuk jumlah iuran.
  • Tidak ada undangan, provisioning, atau akun awal yang dibuat pihak lain — pendaftaran bersifat mandiri.
  • Tidak ada integrasi pembayaran pihak ketiga, gateway pembayaran, atau dompet digital yang disebutkan sumber; pembayaran dicatat di dalam aplikasi.
  • Tidak ada fitur di luar keanggotaan, kegiatan, dan iuran tetap 20000.
Page 3 of 38

2a. Product Interpretation and Delivery Boundary

Kepemilikan pengiriman. Produk dikirim sebagai aplikasi Android dengan antarmuka kustom milik aplikasi. Seluruh permukaan kerja — penjelasan publik, pendaftaran, verifikasi, pengelolaan anggota, pengelolaan kegiatan, pencatatan pembayaran, dan tampilan pembayaran per kegiatan — dimiliki dan dijalankan oleh aplikasi sendiri, didukung backend penyimpanan milik aplikasi.

Kepemilikan akses. Identitas dimiliki aplikasi. Karena catatan keanggotaan, kegiatan, dan pembayaran harus tetap terikat pada peserta yang benar dan dapat dilanjutkan kembali, aplikasi menyediakan:

  • Landing sebagai permukaan publik yang dapat diakses tanpa login, menjelaskan aplikasi sebelum autentikasi.
  • Sign Up sebagai permukaan pendaftaran mandiri, dapat diakses tanpa login, tempat peran (pengurus atau anggota) ditetapkan.
  • Login sebagai permukaan verifikasi kembali, dapat diakses tanpa login, untuk masuk ke data terlindungi.
  • Dashboard, Payments, dan Payment Records memerlukan login.
  • Members, Member Details, Activities, dan Activity Details dibatasi untuk peran pengurus.

Batas current dan future. Semua perilaku yang tercantum dalam dokumen ini adalah lingkup saat ini. Tidak ada permintaan pengguna untuk fitur masa depan; tidak ada bagian future yang diaktifkan.

2c. Page Content and Component Coverage

Page 4 of 38

Landing

  • Informasi/state: penjelasan publik aplikasi Android pencatatan iuran kelompok — keanggotaan, kegiatan dinamis, dan iuran tetap Rp 20.000; tidak memerlukan login.
  • Aksi utama: tombol "Mulai catat iuran" menuju Sign Up; tautan ke Login bagi yang sudah punya akun.
  • Aksi pendukung: membaca diagram "cara iuran bekerja" dan daftar fitur bernomor 01–04.
  • Entitas domain: kelompok, anggota, kegiatan, iuran tetap Rp 20.000.
  • Tanggung jawab komponen: hero editorial rata kiri dengan baris judul dan angka Rp 20.000 sebagai elemen grafis dominan; kolom mini-ledger bergaris (Nama, Kegiatan, Status) dengan chip status; diagram bergaya peta rute untuk satu kegiatan; daftar fitur bernomor di margin; aturan rambut dengan empat label mikro (ANGGOTA · KEGIATAN · IURAN TETAP · REKAP).
  • State: loading — kerangka bergaris untuk kolom mini-ledger; empty — tidak berlaku (konten statis); success — halaman tampil penuh; error — jika konten gagal dimuat, tampilkan pesan dan tombol coba lagi; recovery — tombol coba lagi memuat ulang konten.
Page 5 of 38

Login

  • Informasi/state: formulir verifikasi kembali untuk pengurus dan anggota; dapat diakses tanpa login.
  • Aksi utama: masuk dengan kredensial akun.
  • Aksi pendukung: menuju Sign Up bila belum punya akun.
  • Entitas domain: akun, peran (pengurus/anggota).
  • Tanggung jawab komponen: bidang identitas dan kata sandi; tombol masuk; pesan galat sebaris; tautan ke pendaftaran.
  • State: loading — tombol masuk dalam keadaan memproses; empty — bidang kosong dengan label; success — diarahkan ke Dashboard; error — kredensial salah ditampilkan sebagai pesan di atas formulir tanpa menghapus isian; recovery — pengguna dapat memperbaiki isian dan mencoba lagi.

Sign Up

  • Informasi/state: formulir pendaftaran mandiri; dapat diakses tanpa login; penetapan peran pengurus atau anggota dilakukan di sini.
  • Aksi utama: mendaftar dengan data akun dan memilih peran.
  • Aksi pendukung: menuju Login bila sudah punya akun.
  • Entitas domain: akun, peran (pengurus/anggota).
  • Tanggung jawab komponen: bidang data akun; pemilih peran; tombol daftar; pesan galat sebaris; tautan ke Login.
  • State: loading — tombol daftar dalam keadaan memproses; empty — bidang kosong dengan label; success — akun dibuat dan diarahkan ke Login atau Dashboard; error — data tidak valid atau akun sudah ada ditampilkan sebagai pesan; recovery — pengguna memperbaiki isian dan mencoba lagi.
Page 6 of 38

Dashboard

  • Informasi/state: ringkasan setelah autentikasi — jumlah anggota, kegiatan berjalan, dan status pembayaran iuran Rp 20.000; memerlukan login.
  • Aksi utama: menuju Anggota, Kegiatan, Iuran, dan Rekap Pembayaran.
  • Aksi pendukung: melihat kegiatan terbaru dan status pembayarannya.
  • Entitas domain: anggota, kegiatan, pembayaran, status pembayaran.
  • Tanggung jawab komponen: kartu ringkasan dengan angka tabular; daftar kegiatan terbaru; navigasi bawah empat tab bergaris (Beranda, Anggota, Kegiatan, Iuran) dengan aturan merah 3px pada tab aktif.
  • State: loading — kerangka kartu ringkasan; empty — bila belum ada anggota atau kegiatan, tampilkan ajakan menambah anggota/kegiatan; success — ringkasan tampil; error — pesan gagal memuat dengan tombol coba lagi; recovery — coba lagi memuat ulang ringkasan.

Members

  • Informasi/state: tabel keanggotaan kelompok — nama, kegiatan terkait, jumlah iuran Rp 20.000, status; dibatasi untuk peran pengurus.
  • Aksi utama: menambah anggota baru.
  • Aksi pendukung: membuka Member Details untuk anggota yang dipilih; mencari/menyaring daftar anggota.
  • Entitas domain: anggota, kegiatan, pembayaran, status pembayaran.
  • Tanggung jawab komponen: tabel dengan angka tabular dan aturan baris rambut; aturan merah 3px pada baris aktif; pada 375px setiap baris mengalir menjadi dua baris bergaris (nama + jumlah pada baris pertama, kegiatan + chip status pada baris kedua) tanpa ada yang terpotong.
  • State: loading — kerangka baris tabel; empty — bila belum ada anggota, tampilkan ajakan menambah anggota pertama; success — tabel tampil; error — pesan gagal memuat dengan tombol coba lagi; recovery — coba lagi memuat ulang daftar.
Page 7 of 38

Member Details

  • Informasi/state: ruang fokus untuk menambah atau mengubah data anggota yang dipilih; dibatasi untuk peran pengurus.
  • Aksi utama: menyimpan data anggota baru atau perubahan data anggota.
  • Aksi pendukung: membatalkan perubahan; kembali ke daftar anggota.
  • Entitas domain: anggota, kegiatan, pembayaran.
  • Tanggung jawab komponen: bidang data anggota; tombol simpan; tombol batal; pesan galat sebaris.
  • State: loading — bidang dalam keadaan memuat data anggota; empty — mode tambah dengan bidang kosong berlabel; success — data tersimpan dan kembali ke Members; error — data tidak valid atau gagal menyimpan ditampilkan sebagai pesan tanpa menghapus isian; recovery — pengguna memperbaiki isian dan menyimpan lagi.

Activities

  • Informasi/state: daftar kegiatan kelompok yang dinamis — nama kegiatan, periode, dan status pembayaran iuran Rp 20.000 per kegiatan; dibatasi untuk peran pengurus.
  • Aksi utama: menambah kegiatan baru.
  • Aksi pendukung: membuka Activity Details untuk kegiatan yang dipilih; melihat diagram peta rute kegiatan.
  • Entitas domain: kegiatan, anggota, pembayaran, status pembayaran.
  • Tanggung jawab komponen: daftar kegiatan dengan aturan baris rambut; diagram peta rute per kegiatan (segmen lunas solid hijau, segmen belum lunas putus-putus merah); aturan merah 3px pada baris aktif.
  • State: loading — kerangka daftar kegiatan; empty — bila belum ada kegiatan, tampilkan ajakan menambah kegiatan pertama; success — daftar tampil; error — pesan gagal memuat dengan tombol coba lagi; recovery — coba lagi memuat ulang daftar.
Page 8 of 38

Activity Details

  • Informasi/state: ruang fokus untuk membuat atau mengubah kegiatan yang menjadi konteks pencatatan iuran; dibatasi untuk peran pengurus.
  • Aksi utama: menyimpan kegiatan baru atau perubahan kegiatan.
  • Aksi pendukung: membatalkan perubahan; kembali ke daftar kegiatan.
  • Entitas domain: kegiatan, anggota, pembayaran.
  • Tanggung jawab komponen: bidang data kegiatan; tombol simpan; tombol batal; pesan galat sebaris.
  • State: loading — bidang dalam keadaan memuat data kegiatan; empty — mode tambah dengan bidang kosong berlabel; success — kegiatan tersimpan dan kembali ke Activities; error — data tidak valid atau gagal menyimpan ditampilkan sebagai pesan tanpa menghapus isian; recovery — pengguna memperbaiki isian dan menyimpan lagi.
Page 9 of 38

Payments

  • Informasi/state: ruang pencatatan pembayaran iuran tetap Rp 20.000 yang mengaitkan anggota dengan kegiatan; memerlukan login.
  • Aksi utama: mencatat pembayaran iuran Rp 20.000 untuk anggota pada kegiatan yang dipilih.
  • Aksi pendukung: melihat sel jadwal Rp 20.000 yang terkunci dan tidak dapat diubah; melihat status pembayaran setelah pencatatan.
  • Entitas domain: anggota, kegiatan, pembayaran, status pembayaran.
  • Tanggung jawab komponen: pemilih anggota; pemilih kegiatan; sel jadwal Rp 20.000 terkunci dengan glyph kunci (bukan bidang teks bebas); tombol catat pembayaran; chip status (lunas / belum / sebagian); animasi gulir angka 300ms saat status berubah menjadi lunas.
  • State: loading — pemilih dalam keadaan memuat anggota dan kegiatan; empty — bila belum ada anggota atau kegiatan, tampilkan pesan bahwa anggota/kegiatan harus ditambahkan lebih dulu; success — pembayaran tercatat dan status diperbarui; error — gagal mencatat ditampilkan sebagai pesan tanpa menghapus pilihan; recovery — pengguna mencoba mencatat lagi.
Page 10 of 38

Payment Records

  • Informasi/state: tampilan pembayaran dan statusnya per kegiatan yang dapat dikunjungi kembali; memerlukan login.
  • Aksi utama: memilih kegiatan untuk melihat pembayaran dan statusnya.
  • Aksi pendukung: melihat riwayat pembayaran anggota per kegiatan; melihat ringkasan lunas/belum lunas.
  • Entitas domain: anggota, kegiatan, pembayaran, status pembayaran.
  • Tanggung jawab komponen: tabel pembayaran dengan angka tabular dan aturan baris rambut; chip status (lunas / belum / sebagian); diagram peta rute kegiatan; pada 375px setiap baris mengalir menjadi dua baris bergaris tanpa ada yang terpotong.
  • State: loading — kerangka tabel pembayaran; empty — bila belum ada pembayaran untuk kegiatan yang dipilih, tampilkan pesan kosong yang jelas; success — tabel pembayaran tampil; error — pesan gagal memuat dengan tombol coba lagi; recovery — coba lagi memuat ulang catatan.

3. Functional Requirements

Page 11 of 38

Keanggotaan

FR-01 — Melihat daftar anggota kelompok (explicit) As a Pengurus Kelompok (Administrator Iuran) I should melihat daftar seluruh anggota kelompok yang terdaftar, sehingga saya dapat memeriksa siapa saja yang tercatat dalam keanggotaan.

  • Trigger/input: membuka halaman Members setelah login.
  • Hasil yang dapat diamati: tabel anggota tampil dengan nama, kegiatan terkait, jumlah iuran Rp 20.000, dan status; pada 375px setiap baris mengalir menjadi dua baris bergaris tanpa ada yang terpotong.
  • Akses: memerlukan login dan dibatasi untuk peran pengurus.
  • Kegagalan/pemulihan: bila daftar gagal dimuat, tampilkan pesan galat dengan tombol coba lagi.
  • Kelanjutan: pengurus dapat membuka Member Details untuk anggota yang dipilih atau menambah anggota baru.

FR-02 — Menambah anggota kelompok (explicit) As a Pengurus Kelompok (Administrator Iuran) I should menambah data anggota baru ke dalam keanggotaan kelompok, sehingga anggota baru dapat dihubungkan dengan kewajiban iurannya.

  • Trigger/input: menekan aksi tambah anggota dari Members, mengisi data anggota, dan menyimpan.
  • Hasil yang dapat diamati: anggota baru muncul di daftar keanggotaan dan tersimpan di backend.
  • Akses: memerlukan login dan dibatasi untuk peran pengurus.
  • Kegagalan/pemulihan: bila data tidak valid atau gagal disimpan, tampilkan pesan galat tanpa menghapus isian sehingga pengurus dapat memperbaiki dan menyimpan lagi.
  • Kelanjutan: anggota baru dapat dipilih pada pencatatan pembayaran iuran Rp 20.000.
Page 12 of 38

FR-03 — Mengubah data anggota kelompok (explicit) As a Pengurus Kelompok (Administrator Iuran) I should mengubah data anggota yang sudah terdaftar, sehingga data keanggotaan tetap akurat.

  • Trigger/input: membuka Member Details untuk anggota yang dipilih, mengubah data, dan menyimpan.
  • Hasil yang dapat diamati: perubahan tersimpan dan tampil pada daftar keanggotaan.
  • Akses: memerlukan login dan dibatasi untuk peran pengurus.
  • Kegagalan/pemulihan: bila gagal disimpan, tampilkan pesan galat tanpa menghapus isian; pengurus dapat mencoba lagi atau membatalkan.
  • Kelanjutan: pengurus kembali ke daftar anggota dengan data terbaru.
Page 13 of 38

Kegiatan Dinamis

FR-04 — Melihat daftar kegiatan kelompok (explicit) As a Pengurus Kelompok (Administrator Iuran) I should melihat daftar kegiatan kelompok beserta status pembayaran iurannya, sehingga saya dapat memantau kegiatan yang sedang berjalan.

  • Trigger/input: membuka halaman Activities setelah login.
  • Hasil yang dapat diamati: daftar kegiatan tampil dengan nama kegiatan, periode, dan status pembayaran iuran Rp 20.000 per kegiatan; diagram peta rute menunjukkan segmen lunas solid hijau dan segmen belum lunas putus-putus merah.
  • Akses: memerlukan login dan dibatasi untuk peran pengurus.
  • Kegagalan/pemulihan: bila daftar gagal dimuat, tampilkan pesan galat dengan tombol coba lagi.
  • Kelanjutan: pengurus dapat membuka Activity Details untuk kegiatan yang dipilih atau menambah kegiatan baru.

FR-05 — Menambah kegiatan kelompok (explicit) As a Pengurus Kelompok (Administrator Iuran) I should menambah kegiatan kelompok baru, sehingga kegiatan dinamis dapat menjadi konteks pencatatan iuran.

  • Trigger/input: menekan aksi tambah kegiatan dari Activities, mengisi data kegiatan, dan menyimpan.
  • Hasil yang dapat diamati: kegiatan baru muncul di daftar kegiatan dan tersimpan di backend.
  • Akses: memerlukan login dan dibatasi untuk peran pengurus.
  • Kegagalan/pemulihan: bila data tidak valid atau gagal disimpan, tampilkan pesan galat tanpa menghapus isian sehingga pengurus dapat memperbaiki dan menyimpan lagi.
  • Kelanjutan: kegiatan baru dapat dipilih sebagai konteks pencatatan pembayaran iuran Rp 20.000.
Page 14 of 38

FR-06 — Mengubah kegiatan kelompok (explicit) As a Pengurus Kelompok (Administrator Iuran) I should mengubah kegiatan kelompok yang sudah ada, sehingga kegiatan tetap sesuai dengan keadaan kelompok.

  • Trigger/input: membuka Activity Details untuk kegiatan yang dipilih, mengubah data, dan menyimpan.
  • Hasil yang dapat diamati: perubahan tersimpan dan tampil pada daftar kegiatan.
  • Akses: memerlukan login dan dibatasi untuk peran pengurus.
  • Kegagalan/pemulihan: bila gagal disimpan, tampilkan pesan galat tanpa menghapus isian; pengurus dapat mencoba lagi atau membatalkan.
  • Kelanjutan: pengurus kembali ke daftar kegiatan dengan data terbaru.

FR-07 — Melihat kegiatan berjalan sebagai anggota (explicit) As an Anggota Kelompok I should melihat kegiatan yang sedang berjalan beserta iuran tetap Rp 20.000 yang harus dibayarkan, sehingga saya tahu kewajiban iuran saya.

  • Trigger/input: membuka Dashboard atau Payments setelah login.
  • Hasil yang dapat diamati: kegiatan berjalan tampil dengan iuran tetap Rp 20.000 yang harus dibayarkan.
  • Akses: memerlukan login.
  • Kegagalan/pemulihan: bila data gagal dimuat, tampilkan pesan galat dengan tombol coba lagi.
  • Kelanjutan: anggota dapat melanjutkan ke pencatatan pembayaran iuran.
Page 15 of 38

Pembayaran Iuran Tetap 20000

FR-08 — Mencatat pembayaran iuran tetap Rp 20.000 (explicit) As a Pengurus Kelompok (Administrator Iuran) I should mencatat pembayaran iuran tetap sebesar 20000 untuk seorang anggota pada kegiatan yang dipilih, sehingga kewajiban iuran anggota tercatat.

  • Trigger/input: membuka Payments, memilih anggota, memilih kegiatan, dan menekan tombol catat pembayaran; jumlah iuran ditampilkan sebagai sel jadwal Rp 20.000 yang terkunci dan tidak dapat diubah.
  • Hasil yang dapat diamati: pembayaran tercatat di backend dan status pembayaran anggota pada kegiatan tersebut diperbarui; animasi gulir angka 300ms saat status berubah menjadi lunas.
  • Akses: memerlukan login.
  • Kegagalan/pemulihan: bila pencatatan gagal, tampilkan pesan galat tanpa menghapus pilihan anggota dan kegiatan; pengurus dapat mencoba lagi.
  • Kelanjutan: pembayaran yang tercatat tampil pada Payment Records untuk kegiatan tersebut.

FR-09 — Melakukan pembayaran iuran tetap Rp 20.000 sebagai anggota (explicit) As an Anggota Kelompok I should melakukan pembayaran iuran tetap sebesar 20000 untuk kegiatan yang sedang berjalan, sehingga kewajiban iuran saya terpenuhi.

  • Trigger/input: membuka Payments setelah login, memilih kegiatan, dan mencatat pembayaran iuran Rp 20.000.
  • Hasil yang dapat diamati: pembayaran tercatat dan status pembayaran saya pada kegiatan tersebut diperbarui.
  • Akses: memerlukan login.
  • Kegagalan/pemulihan: bila pencatatan gagal, tampilkan pesan galat tanpa menghapus pilihan kegiatan; anggota dapat mencoba lagi.
  • Kelanjutan: anggota dapat memeriksa hasilnya pada Payment Records.
Page 16 of 38

FR-10 — Menampilkan pembayaran iuran untuk setiap kegiatan (explicit) As a Pengurus Kelompok (Administrator Iuran) I should melihat pembayaran iuran dan statusnya untuk setiap kegiatan, sehingga laporan iuran kelompok tetap akurat.

  • Trigger/input: membuka Payment Records dan memilih kegiatan.
  • Hasil yang dapat diamati: tabel pembayaran per kegiatan tampil dengan nama anggota, jumlah Rp 20.000, dan chip status (lunas / belum / sebagian); diagram peta rute kegiatan menunjukkan segmen lunas solid hijau dan segmen belum lunas putus-putus merah.
  • Akses: memerlukan login.
  • Kegagalan/pemulihan: bila catatan gagal dimuat, tampilkan pesan galat dengan tombol coba lagi.
  • Kelanjutan: pengurus dapat berpindah kegiatan lain atau kembali ke Dashboard.

FR-11 — Memeriksa riwayat pembayaran per kegiatan sebagai anggota (explicit) As an Anggota Kelompok I should memeriksa riwayat pembayaran saya per kegiatan sebagai bukti kewajiban yang sudah dipenuhi, sehingga saya yakin iuran saya tercatat.

  • Trigger/input: membuka Payment Records setelah login dan memilih kegiatan.
  • Hasil yang dapat diamati: riwayat pembayaran saya untuk kegiatan tersebut tampil dengan jumlah Rp 20.000 dan statusnya.
  • Akses: memerlukan login.
  • Kegagalan/pemulihan: bila catatan gagal dimuat, tampilkan pesan galat dengan tombol coba lagi.
  • Kelanjutan: anggota dapat berpindah kegiatan lain atau kembali ke Dashboard.
Page 17 of 38

Identitas dan Akses

FR-12 — Mendaftar mandiri sebagai pengurus atau anggota (required_inference) As a Pengurus Kelompok (Administrator Iuran) or Anggota Kelompok I should mendaftar sendiri sebelum penggunaan pertama dan menetapkan peran saya, sehingga akses dapat dibatasi sesuai tanggung jawab.

  • Trigger/input: membuka Landing dan menekan "Mulai catat iuran", lalu mengisi data akun dan memilih peran (pengurus atau anggota) pada Sign Up.
  • Hasil yang dapat diamati: akun dibuat dengan peran yang ditetapkan dan tersimpan di backend.
  • Akses: dapat diakses tanpa login.
  • Kegagalan/pemulihan: bila data tidak valid atau akun sudah ada, tampilkan pesan galat tanpa menghapus isian; pengguna dapat memperbaiki dan mencoba lagi.
  • Kelanjutan: pengguna diarahkan ke Login atau Dashboard.

FR-13 — Verifikasi kembali melalui Login (required_inference) As a Pengurus Kelompok (Administrator Iuran) or Anggota Kelompok I should memverifikasi kembali melalui Login sebelum mengakses data terlindungi, sehingga catatan keanggotaan, kegiatan, dan pembayaran tetap terikat pada peserta yang benar.

  • Trigger/input: membuka Login dan memasukkan kredensial akun.
  • Hasil yang dapat diamati: sesi dibuat dan pengguna diarahkan ke Dashboard.
  • Akses: dapat diakses tanpa login.
  • Kegagalan/pemulihan: bila kredensial salah, tampilkan pesan galat di atas formulir tanpa menghapus isian; pengguna dapat memperbaiki dan mencoba lagi.
  • Kelanjutan: pengguna mengakses Dashboard dan permukaan terlindungi lainnya.
Page 18 of 38

FR-14 — Melihat ringkasan setelah autentikasi (required_inference) As a Pengurus Kelompok (Administrator Iuran) or Anggota Kelompok I should melihat ringkasan jumlah anggota, kegiatan berjalan, dan status pembayaran iuran Rp 20.000 setelah login, sehingga saya dapat melanjutkan pekerjaan saya.

  • Trigger/input: membuka Dashboard setelah login.
  • Hasil yang dapat diamati: kartu ringkasan dengan angka tabular dan daftar kegiatan terbaru tampil.
  • Akses: memerlukan login.
  • Kegagalan/pemulihan: bila ringkasan gagal dimuat, tampilkan pesan galat dengan tombol coba lagi.
  • Kelanjutan: pengurus dapat menuju Anggota, Kegiatan, Iuran, dan Rekap Pembayaran; anggota dapat menuju Iuran dan Rekap Pembayaran.

FR-15 — Penyimpanan backend data iuran kelompok (required_inference) As the system I should menyimpan data keanggotaan, kegiatan, pembayaran 20000, dan status pembayaran di backend, sehingga data tetap tersedia saat pengguna kembali.

  • Trigger/input: setiap operasi simpan dari Members, Member Details, Activities, Activity Details, dan Payments.
  • Hasil yang dapat diamati: data tersimpan dan dapat dimuat kembali pada kunjungan berikutnya.
  • Akses: hanya dapat diakses melalui aplikasi setelah login.
  • Kegagalan/pemulihan: bila penyimpanan gagal, tampilkan pesan galat pada permukaan yang memicunya dan biarkan pengguna mencoba lagi.
  • Kelanjutan: data yang tersimpan tampil pada daftar dan catatan terkait.

4. User Personas

Page 19 of 38

Pengurus Kelompok (Administrator Iuran)

Konteks produk. Pengurus adalah orang yang memegang tanggung jawab pencatatan uang kelompok. Ia bekerja di antara anggota yang ia kenal secara pribadi, sering kali di sela-sela kegiatan lain, dan harus bisa mempertanggungjawabkan setiap angka yang tercatat. Ia bukan pengguna teknis; ia membutuhkan tampilan yang terbaca seperti buku kas atau papan pengumuman, bukan dasbor keuangan.

Tujuan utama. Menjaga agar catatan keanggotaan, kegiatan, dan iuran tetap Rp 20.000 selalu akurat dan dapat diperiksa kembali oleh kelompok.

Tanggung jawab yang diterima.

  • Mengelola data keanggotaan kelompok: melihat daftar anggota, menambah anggota baru, dan mengubah data anggota yang sudah terdaftar (FR-01, FR-02, FR-03).
  • Menetapkan kegiatan dinamis: melihat daftar kegiatan, menambah kegiatan baru, dan mengubah kegiatan yang sudah ada (FR-04, FR-05, FR-06).
  • Mencatat pembayaran iuran tetap Rp 20.000 untuk setiap anggota pada kegiatan yang dipilih (FR-08).
  • Menampilkan dan memantau pembayaran iuran beserta statusnya untuk setiap kegiatan (FR-10).
  • Mendaftar sendiri dan menetapkan peran pengurus saat onboarding, lalu memverifikasi kembali melalui Login (FR-12, FR-13).

Input dan keputusan. Ia memasukkan data anggota, data kegiatan, dan pilihan anggota–kegiatan saat mencatat pembayaran. Keputusan pentingnya adalah menetapkan kegiatan mana yang menjadi konteks penagihan dan memastikan setiap pembayaran Rp 20.000 tercatat pada anggota dan kegiatan yang benar.

Page 20 of 38

Interaksi dengan peserta lain. Ia adalah satu-satunya peran yang mengubah data keanggotaan dan kegiatan. Pekerjaannya menentukan apa yang dilihat Anggota Kelompok: kegiatan yang tampil, iuran Rp 20.000 yang harus dibayarkan, dan status pembayaran yang tercatat. Ketika ia mencatat pembayaran, status yang dilihat anggota berubah.

Keberhasilan yang dapat diamati. Daftar anggota dan kegiatan tampil lengkap dan benar; setiap pembayaran Rp 20.000 tercatat pada anggota dan kegiatan yang tepat; tampilan pembayaran per kegiatan menunjukkan status lunas/belum dengan jelas.

Page 21 of 38

Anggota Kelompok

Konteks produk. Anggota adalah orang yang terdaftar dalam keanggotaan kelompok. Ia memakai aplikasi di ponsel Android kelas menengah, sering kali di siang hari, untuk memeriksa apa yang harus ia bayar dan apakah pembayarannya sudah tercatat. Ia tidak mengelola data kelompok dan tidak mengubah kegiatan.

Tujuan utama. Mengetahui iuran tetap Rp 20.000 yang harus dibayarkan untuk kegiatan yang sedang berjalan dan memiliki bukti bahwa kewajibannya sudah dipenuhi.

Tanggung jawab yang diterima.

  • Melihat kegiatan yang sedang berjalan beserta iuran tetap Rp 20.000 yang harus dibayarkan (FR-07).
  • Melakukan pembayaran iuran tetap Rp 20.000 untuk kegiatan yang sedang berjalan (FR-09).
  • Memeriksa riwayat pembayarannya per kegiatan sebagai bukti kewajiban yang sudah dipenuhi (FR-11).
  • Mendaftar sendiri dan menetapkan peran anggota saat onboarding, lalu memverifikasi kembali melalui Login (FR-12, FR-13).

Input dan keputusan. Ia memilih kegiatan yang ingin dibayar dan mencatatkan pembayaran iuran Rp 20.000. Keputusan pentingnya adalah memastikan kegiatan yang dipilih sudah benar sebelum mencatatkan pembayaran.

Interaksi dengan peserta lain. Ia bergantung pada pekerjaan Pengurus Kelompok: kegiatan dan keanggotaan yang ditetapkan pengurus adalah apa yang ia lihat dan bayar. Pembayaran yang ia catatkan muncul pada tampilan pembayaran per kegiatan yang juga diperiksa pengurus.

Keberhasilan yang dapat diamati. Kegiatan berjalan tampil dengan iuran Rp 20.000; pembayarannya tercatat; riwayat pembayarannya per kegiatan dapat ia buka kembali sebagai bukti.

Page 22 of 38

5. Core User Flows

Alur 1 — Pengurus mendaftar dan masuk pertama kali

  1. Konteks awal: Pengurus Kelompok membuka aplikasi untuk pertama kali dan belum memiliki akun.
  2. Landing: ia membaca penjelasan aplikasi — keanggotaan, kegiatan dinamis, dan iuran tetap Rp 20.000 — lalu menekan tombol "Mulai catat iuran".
  3. Sign Up: ia mengisi data akun dan memilih peran pengurus.
  4. Hasil: akun dibuat dengan peran pengurus dan tersimpan di backend.
  5. Login: ia memasukkan kredensialnya dan berhasil masuk.
  6. Hasil: sesi dibuat dan ia diarahkan ke Dashboard.
  7. Kelanjutan: ia dapat mulai menambah anggota kelompok.
  8. Kegagalan/pemulihan: bila data pendaftaran tidak valid atau akun sudah ada, pesan galat tampil tanpa menghapus isian; ia memperbaiki dan mencoba lagi. Bila kredensial Login salah, pesan galat tampil di atas formulir dan ia dapat mencoba lagi.
Page 23 of 38

Alur 2 — Pengurus mengelola keanggotaan kelompok

  1. Konteks awal: Pengurus sudah login dan berada di Dashboard.
  2. Members: ia membuka tab Anggota dan melihat tabel keanggotaan — nama, kegiatan terkait, jumlah iuran Rp 20.000, dan status.
  3. Menambah anggota: ia menekan aksi tambah anggota, mengisi data anggota baru pada Member Details, dan menyimpan.
  4. Hasil: anggota baru muncul di daftar keanggotaan dan tersimpan di backend.
  5. Mengubah anggota: ia membuka Member Details untuk anggota yang dipilih, mengubah datanya, dan menyimpan.
  6. Hasil: perubahan tersimpan dan tampil pada daftar keanggotaan.
  7. Kelanjutan: ia kembali ke daftar anggota dengan data terbaru.
  8. Kegagalan/pemulihan: bila data tidak valid atau gagal disimpan, pesan galat tampil tanpa menghapus isian; ia memperbaiki dan menyimpan lagi, atau membatalkan perubahan.
Page 24 of 38

Alur 3 — Pengurus menetapkan kegiatan dinamis

  1. Konteks awal: Pengurus sudah login dan berada di Dashboard.
  2. Activities: ia membuka tab Kegiatan dan melihat daftar kegiatan beserta status pembayaran iurannya.
  3. Menambah kegiatan: ia menekan aksi tambah kegiatan, mengisi data kegiatan pada Activity Details, dan menyimpan.
  4. Hasil: kegiatan baru muncul di daftar kegiatan dan tersimpan di backend.
  5. Mengubah kegiatan: ia membuka Activity Details untuk kegiatan yang dipilih, mengubah datanya, dan menyimpan.
  6. Hasil: perubahan tersimpan dan tampil pada daftar kegiatan.
  7. Kelanjutan: kegiatan tersebut kini dapat dipilih sebagai konteks pencatatan pembayaran iuran Rp 20.000.
  8. Kegagalan/pemulihan: bila data tidak valid atau gagal disimpan, pesan galat tampil tanpa menghapus isian; ia memperbaiki dan menyimpan lagi, atau membatalkan perubahan.
Page 25 of 38

Alur 4 — Pengurus mencatat pembayaran iuran Rp 20.000

  1. Konteks awal: Pengurus sudah login; keanggotaan dan kegiatan sudah ada.
  2. Payments: ia membuka tab Iuran.
  3. Memilih: ia memilih anggota dan memilih kegiatan yang menjadi konteks pembayaran.
  4. Jumlah terkunci: sel jadwal Rp 20.000 tampil terkunci dengan glyph kunci dan tidak dapat diubah menjadi nilai lain.
  5. Mencatat: ia menekan tombol catat pembayaran.
  6. Hasil: pembayaran tercatat di backend dan status pembayaran anggota pada kegiatan tersebut diperbarui; animasi gulir angka 300ms berjalan saat status berubah menjadi lunas.
  7. Kelanjutan: ia membuka Payment Records untuk kegiatan tersebut dan melihat pembayaran yang baru tercatat.
  8. Kegagalan/pemulihan: bila pencatatan gagal, pesan galat tampil tanpa menghapus pilihan anggota dan kegiatan; ia mencoba lagi. Bila belum ada anggota atau kegiatan, aplikasi menampilkan pesan bahwa anggota/kegiatan harus ditambahkan lebih dulu.
Page 26 of 38

Alur 5 — Pengurus menampilkan pembayaran untuk setiap kegiatan

  1. Konteks awal: Pengurus sudah login dan pembayaran sudah tercatat.
  2. Payment Records: ia membuka Rekap Pembayaran dan memilih kegiatan.
  3. Melihat: tabel pembayaran per kegiatan tampil dengan nama anggota, jumlah Rp 20.000, dan chip status (lunas / belum / sebagian); diagram peta rute kegiatan menunjukkan segmen lunas solid hijau dan segmen belum lunas putus-putus merah.
  4. Hasil: ia dapat melihat siapa yang sudah dan belum membayar untuk kegiatan tersebut.
  5. Kelanjutan: ia berpindah ke kegiatan lain untuk memeriksa rekapnya, atau kembali ke Dashboard.
  6. Kegagalan/pemulihan: bila catatan gagal dimuat, pesan galat tampil dengan tombol coba lagi.
Page 27 of 38

Alur 6 — Anggota mendaftar, melihat kegiatan, dan membayar iuran

  1. Konteks awal: Anggota Kelompok membuka aplikasi untuk pertama kali dan belum memiliki akun.
  2. Landing: ia membaca penjelasan aplikasi dan menekan tombol "Mulai catat iuran".
  3. Sign Up: ia mengisi data akun dan memilih peran anggota.
  4. Hasil: akun dibuat dengan peran anggota dan tersimpan di backend.
  5. Login: ia memasukkan kredensialnya dan berhasil masuk.
  6. Dashboard: ia melihat ringkasan dan kegiatan yang sedang berjalan beserta iuran tetap Rp 20.000 yang harus dibayarkan.
  7. Payments: ia membuka tab Iuran, memilih kegiatan yang sedang berjalan, dan mencatatkan pembayaran iuran Rp 20.000 pada sel jadwal yang terkunci.
  8. Hasil: pembayarannya tercatat dan status pembayarannya pada kegiatan tersebut diperbarui.
  9. Kelanjutan: ia membuka Payment Records untuk memeriksa riwayat pembayarannya.
  10. Kegagalan/pemulihan: bila pendaftaran atau Login gagal, pesan galat tampil tanpa menghapus isian dan ia dapat mencoba lagi. Bila pencatatan pembayaran gagal, pesan galat tampil tanpa menghapus pilihan kegiatan dan ia dapat mencoba lagi.
Page 28 of 38

Alur 7 — Anggota memeriksa riwayat pembayaran per kegiatan

  1. Konteks awal: Anggota sudah login dan pernah mencatatkan pembayaran.
  2. Payment Records: ia membuka Rekap Pembayaran dan memilih kegiatan.
  3. Melihat: riwayat pembayarannya untuk kegiatan tersebut tampil dengan jumlah Rp 20.000 dan statusnya.
  4. Hasil: ia memiliki bukti bahwa kewajiban iurannya untuk kegiatan tersebut sudah dipenuhi.
  5. Kelanjutan: ia berpindah ke kegiatan lain untuk memeriksa riwayatnya, atau kembali ke Dashboard.
  6. Kegagalan/pemulihan: bila catatan gagal dimuat, pesan galat tampil dengan tombol coba lagi.
Page 29 of 38

6. Visuals Colors and Theme

Arah kreatif proyek ini adalah infrastruktur tipografis untuk kas kelompok: kertas hangat, warna bergaris sinyal, dan Fira Sans. Musenya adalah Erik Spiekermann — bahasa tipografi humanis, aturan penunjuk arah, dan warna sinyal yang dipakai seperti jalur transit, dengan kehangatan di dalam keteraturan. Headline arah ini: "Iuran kelompok, tercatat rapi."

Mode: light mode.

Warna (token peran):

PeranHexPenggunaan
Latar utama (kertas hangat)#F4F1EALatar aplikasi dan landing
Permukaan#FFFFFFBaris ledger dan bidang input saja
Teks / tinta#1C1B19Semua teks dan aturan
Primer (sinyal merah)#B0121BIuran belum lunas, aksi destruktif, angka tetap Rp 20.000, garis nav aktif
Aksen (sinyal amber)#F2A800Konteks kegiatan, status pending/sebagian
Muted#6B6459Metadata, stempel waktu, label
Sinyal hijau (khusus lunas)#1F7A4DHanya status "lunas"; tidak pernah dekoratif

Rasio kira-kira 60% kertas, 25% permukaan putih, 10% aturan tinta, 5% warna sinyal. Warna sinyal tidak pernah mengisi lebih dari satu badge, satu aturan, atau satu angka.

Tipografi:

Page 30 of 38
  • Judul: Fira Sans SemiBold 600, sentence case, tracking -0.01em. Angka uang dan hitungan memakai Fira Sans Condensed 600 agar "Rp 20.000" terbaca seperti entri jadwal.
  • Label bagian dan header tabel: Fira Sans Medium 500, uppercase, letterspacing 0.14em, 12px — suara penunjuk arah.
  • Body: Fira Sans Regular 400, 16px/1.6 untuk formulir dan prosa.
  • Skala: modular 1.250, 1.333 untuk display: 12 / 15 / 16 / 20 / 25 / 31 / 39 / 49, dengan display clamp(34px, 49px) untuk judul halaman dan clamp(40px, 72px) untuk baris hero landing. Angka uang selalu tabular, selalu satu langkah lebih besar dari labelnya.
  • Tidak ada serif display, tidak ada huruf membulat, tidak ada kepribadian kedua.

Bahasa bentuk: persegi panjang yang direkayasa, bukan kartu. Radius 4px pada input dan tombol, 0 pada baris tabel dan panel bagian agar ledger terbaca seperti kertas bergaris. Aturan tinta 1px (#1C1B19 pada 14% untuk pemisah internal, 100% untuk batas bagian). Aturan merah 3px di kiri menandai baris aktif atau kegiatan saat ini. Badge bulat hanya untuk chip status (lunas / belum / sebagian), diameter 20px, isian datar, label uppercase 11px di dalamnya. Ikon digambar sebagai piktogram garis 1.5px bergaya rambu transit, tidak pernah terisi, tidak pernah membulat-lucu.

Page 31 of 38

Tata letak: grid 12 kolom yang terlihat dengan gutter 16px di mobile, 24px di 768px, 32px di 1280px, dan aturan baseline 1px di bawah setiap header bagian. Landing adalah kolom editorial rata kiri: baris hero, diagram "cara iuran bekerja" bergaris, lalu daftar fitur bernomor 01–04 dengan setiap nomor di margin seperti entri jadwal. Layar aplikasi memakai app bar atas dengan aturan rambut dan navigasi bawah empat tab bergaris (Beranda, Anggota, Kegiatan, Iuran) yang keadaan aktifnya adalah aturan merah 3px di atas dan label merah, bukan pill terisi. Members dan Payments adalah tabel sungguhan: kolom nama / kegiatan / jumlah / status sejajar tabular, mengalir di 375px menjadi baris bergaris dua baris (nama + jumlah pada baris pertama, kegiatan + chip status pada baris kedua) tanpa ada yang terpotong. Jumlah Rp 20.000 adalah bidang tetap yang tidak dapat diedit, dirender sebagai sel jadwal terkunci dengan glyph kunci kecil, tidak pernah sebagai input teks bebas.

Imagery: tidak ada fotografi dan tidak ada ilustrasi demi dirinya sendiri. Imageri bersifat diagramatis: diagram bergaya peta rute untuk satu kegiatan dengan simpul anggota dan segmen garis lunas/belum lunas; jadwal iuran bergaris yang menunjukkan Rp 20.000 tetap di sepanjang dua belas periode; piktogram 1.5px kecil untuk anggota, kegiatan, pembayaran, dan kuitansi. Bila elemen manusia diperlukan, gunakan foto dokumenter rapat komunitas yang dipotong rata ke grid dalam monokrom dengan satu warna sinyal dipertahankan.

Yang dihindari: primer biru–indigo atau aksen keluarga #2563EB di atas putih; kartu membulat 16–24px dengan bayangan lembut dan hover-lift; gradient blob, glassmorphism, atau panel backdrop buram; hero terpusat dengan tumpukan headline + subteks + tombol; Inter, Roboto, Poppins, atau system-ui sebagai keluarga judul atau body; stok foto orang tersenyum menunjuk ponsel; bidang jumlah teks bebas untuk iuran tetap Rp 20.000; gerakan dekoratif, parallax, atau mikro-interaksi memantul.

Page 32 of 38

7. Signature Design Concept

Konsep: "Papan Pengumuman yang Dapat Dihitung" — landing sebagai lembar cetak, bukan banner SaaS.

Landing adalah pemberitahuan tercetak. Latar kertas hangat #F4F1EA penuh, tanpa gambar. Di kiri, headline rata kiri selebar 9 kolom dalam Fira Sans SemiBold pada clamp(40px, 72px) — "Iuran kelompok, tercatat rapi." — dengan kata "Rp 20.000" diletakkan pada barisnya sendiri di bawahnya dalam Fira Sans Condensed 600 pada skala display yang sama, berwarna merah sinyal #B0121B, bertindak sebagai elemen grafis dominan hero. Di kanannya, kolom mini-ledger vertikal bergaris (tiga baris: Nama, Kegiatan, Status) dengan chip status amber dan hijau, digambar seolah bagian dari lembar cetak yang sama, tepi kirinya berupa aturan tinta 1px. Di bawah headline, satu tombol merah datar "Mulai catat iuran" setinggi 48px, dan aturan rambut yang membentang sepanjang viewport dengan empat label mikro uppercase (ANGGOTA · KEGIATAN · IURAN TETAP · REKAP) berjarak seperti legenda jalur transit. Tidak ada yang terpusat, tidak ada yang mengambang, tidak ada gradient, tidak ada mockup perangkat.

Konsep ini hanya menyusun ulang konten, state, dan kontrol yang sudah diterima: penjelasan aplikasi, tombol menuju Sign Up, tautan ke Login, dan representasi visual dari anggota, kegiatan, serta status pembayaran Rp 20.000.

Page 33 of 38

8. Interaction Model & Motion Direction

Interaction Model: Static (direction) Motion Tempo: restrained Hero Dimensionality: flat

Landing Hero Motion Brief

  • Subjek fokus: baris headline "Iuran kelompok, tercatat rapi." dan angka Rp 20.000 dalam Fira Sans Condensed 600 merah sinyal, bersama kolom mini-ledger bergaris di sebelah kanannya.
  • Tesis input → transformasi → hasil: saat halaman dimuat, bagian-bagian bergaris pada lembar — headline, kolom mini-ledger, aturan rambut, dan legenda mikro — menggambar masuk secara berurutan seperti papan keberangkatan; hasilnya adalah satu lembar cetak yang lengkap dan terbaca, tanpa elemen yang mengambang.
  • Kosakata gerakan: fungsional dan pendek — 140–180ms ease-out; satu reveal bertahap tunggal pada landing; gulir angka 300ms ketika status pembayaran berubah menjadi lunas. Tidak ada bounce, tidak ada parallax, tidak ada elemen mengambang; perubahan state adalah satu-satunya animasi.
  • Bingkai pertama yang tersusun: kertas hangat penuh, headline rata kiri, angka Rp 20.000 merah pada barisnya sendiri, kolom mini-ledger bergaris di kanan dengan chip amber dan hijau, tombol merah datar, dan aturan rambut dengan empat label mikro.
  • Keadaan reduced-motion: bagian-bagian muncul seketika dan gulir angka digantikan oleh pergantian nilai langsung.
Page 34 of 38

9. Non-Functional Requirements

NFR-01 — Platform Android (explicit) Aplikasi dibangun sebagai aplikasi Android. Rasional: batasan keras yang dinyatakan pengguna.

NFR-02 — Iuran tetap 20000 (explicit) Besaran iuran bersifat tetap, yaitu 20000, dan tidak dapat diubah menjadi nilai lain. Jumlah dirender sebagai sel jadwal terkunci dengan glyph kunci, bukan bidang teks bebas. Rasional: batasan keras yang dinyatakan pengguna.

NFR-03 — Ketahanan data (required_inference) Data keanggotaan, kegiatan, pembayaran 20000, dan status pembayaran harus disimpan di backend sehingga tetap tersedia saat pengguna kembali. Rasional: diperlukan agar alur yang diterima dapat dijalankan dan dilanjutkan.

NFR-04 — Keterbacaan di layar ponsel (required_inference) Teks dan kontrol yang dapat dibaca harus tetap utuh di dalam viewport dan kontainernya pada 375px, 768px, dan 1280px, membungkus atau menskalakan (misalnya font-size: clamp(...) dengan ukuran mobile-nya) agar muat; tidak ada elemen lain yang menutupi bagian mana pun darinya. Rasional: audiens memakai ponsel Android kelas menengah, sering di siang hari.

NFR-05 — Aksesibilitas gerakan (required_inference) Di bawah prefers-reduced-motion, bagian-bagian muncul seketika dan gulir angka digantikan oleh pergantian nilai langsung. Rasional: arah kreatif mensyaratkan keadaan statis yang dapat digunakan.

Page 35 of 38

NFR-06 — Keamanan akses (required_inference) Data terlindungi hanya dapat diakses setelah Login; permukaan Members, Member Details, Activities, dan Activity Details dibatasi untuk peran pengurus. Rasional: diperlukan agar catatan keanggotaan, kegiatan, dan pembayaran tetap terikat pada peserta yang benar.

10. Tech Stack

  • Aplikasi: aplikasi Android dengan antarmuka kustom milik aplikasi. (explicit — "aplikasi android")
  • Backend: layanan backend dengan penyimpanan untuk data keanggotaan, kegiatan, pembayaran 20000, dan status pembayaran. (required_inference)
  • Tipografi: Fira Sans (SemiBold 600 untuk judul, Medium 500 untuk label, Regular 400 untuk body) dan Fira Sans Condensed 600 untuk angka uang dan hitungan. (arah kreatif)
  • Ikon: piktogram garis 1.5px bergaya rambu transit. (arah kreatif)
Page 36 of 38

11. Assumptions and Constraints

Asumsi:

  1. A-01 — Kelompok adalah satu kelompok per instalasi aplikasi; tidak ada pemisahan multi-kelompok yang diminta sumber. (asumsi sempit)
  2. A-02 — Peran ditetapkan saat pendaftaran/onboarding dan tidak diubah setelahnya, karena sumber tidak menyebut pengelolaan peran. (asumsi sempit)
  3. A-03 — Pembayaran dicatat di dalam aplikasi; tidak ada gateway pembayaran pihak ketiga yang disebutkan sumber. (asumsi sempit)
  4. A-04 — Status pembayaran yang digunakan adalah lunas / belum / sebagian, sesuai chip status yang diizinkan arah kreatif. (asumsi sempit)

Batasan:

  1. C-01 — Aplikasi dibangun sebagai aplikasi Android. (explicit)
  2. C-02 — Besaran iuran bersifat tetap, yaitu 20000. (explicit)
  3. C-03 — Tidak ada bidang teks bebas untuk jumlah iuran Rp 20.000. (arah kreatif)
  4. C-04 — Tidak ada undangan, provisioning, atau akun awal dari pihak lain; pendaftaran bersifat mandiri. (required_inference)
  5. C-05 — Tidak ada fitur di luar keanggotaan, kegiatan dinamis, dan iuran tetap 20000. (batas lingkup)
Page 37 of 38

12. Glossary

  • Iuran — pembayaran wajib anggota kelompok; besarnya tetap Rp 20.000.
  • Iuran tetap 20000 — besaran iuran yang tidak dapat diubah, dirender sebagai sel jadwal terkunci dengan glyph kunci.
  • Keanggotaan — data anggota kelompok yang terdaftar dan dapat dihubungkan dengan kewajiban iurannya.
  • Kegiatan — kegiatan kelompok yang bersifat dinamis: dapat ditambah dan diubah, dan menjadi konteks pencatatan iuran.
  • Pengurus Kelompok (Administrator Iuran) — peran yang mengelola keanggotaan, menetapkan kegiatan, mencatat pembayaran Rp 20.000, dan memantau status pembayaran.
  • Anggota Kelompok — peran yang terdaftar dalam keanggotaan, melihat kegiatan berjalan, membayar iuran Rp 20.000, dan memeriksa riwayat pembayarannya.
  • Status pembayaran — keadaan pembayaran iuran seorang anggota pada suatu kegiatan: lunas, belum, atau sebagian.
  • Sel jadwal terkunci — tampilan jumlah Rp 20.000 yang tidak dapat diedit, dengan glyph kunci kecil.
  • Diagram peta rute — representasi satu kegiatan sebagai garis sinyal horizontal dengan simpul anggota; segmen lunas solid hijau, segmen belum lunas putus-putus merah.
  • Chip status — badge bulat 20px dengan label uppercase 11px untuk lunas / belum / sebagian.
Page 38 of 38

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Read public explanation
Sign Up: Register and select anggota role
Sign Up: Fix invalid data, save again
Login: 1. Sign in
Login: 2. Correct credentials, retry
Dashboard: 1. View running activities and Rp 20.000 dues
Payments: 2. Select running activity
Payments: 3. Record Rp 20.000 payment
Payments: 4. Retry recording payment
Payment Records: 5. Select activity history
Payment Records: 6. View payment history per activity
Payment Records: 7. Switch to another activity
Payment Records: 8. Retry loading records

No completed page designs yet.

Completed design pages will appear here when they are ready to preview.

Landing: Read public explanation
Sign Up: Register and select anggota role
Sign Up: Fix invalid data, save again
Login: 1. Sign in
Login: 2. Correct credentials, retry
Dashboard: 1. View running activities and Rp 20.000 dues
Payments: 2. Select running activity
Payments: 3. Record Rp 20.000 payment
Payments: 4. Retry recording payment
Payment Records: 5. Select activity history
Payment Records: 6. View payment history per activity
Payment Records: 7. Switch to another activity
Payment Records: 8. Retry loading records