Skip to content

Manajemen Pengaturan

Modul Manajemen Pengaturan mengelola konfigurasi sistem termasuk data kantor, pengguna, template pelayanan, dan parameter lainnya. Bagian ini fokus pada menu Pelayanan yang mengelola daftar layanan notaris dan PPAT beserta persyaratan, tugas, dan biaya terkait.

Menu Pelayanan memungkinkan officer untuk mengelola daftar layanan yang ditawarkan kantor dengan detail persyaratan, tugas, dan biaya.

Skenario 5.1: Lihat Daftar Pelayanan

Skenario ini menampilkan layout dual pane untuk view dan manage pelayanan.

AktorOfficer & Sistem
RincianGiven officer memiliki izin akses PELAYANAN, When officer membuka menu pelayanan di /pelayanan, Then aplikasi menampilkan daftar pelayanan yang telah dibuat dengan layout dual pane (pane kiri: daftar pelayanan, pane kanan: detail pelayanan yang dipilih).

Layout Dual Pane:

  • Pane Kiri (Daftar): List pelayanan dengan search dan filter

    • Search by nama pelayanan
    • Filter by kelompok (NOTARIS, PPAT)
    • Pagination dan sorting
    • Highlight item yang dipilih
  • Pane Kanan (Detail): Detail pelayanan yang dipilih

    • View/Edit mode toggle
    • Informasi umum (nama, kelompok, deskripsi)
    • Sub-tab untuk syarat berkas, tugas, biaya
    • Tombol aksi (Edit, Hapus)

Skenario 5.2: Lihat Detail Pelayanan

AktorOfficer & Sistem
RincianGiven officer memiliki izin akses PELAYANAN, When officer membuka menu pelayanan di /pelayanan dan memilih salah satu pelayanan, Then aplikasi menampilkan detail pelayanan pada sisi kanan layout dengan tab untuk informasi umum, syarat berkas, tugas, dan biaya.

Tab Detail Pelayanan:

TabDeskripsi
UmumNama, kelompok (NOTARIS/PPAT), deskripsi, status
Syarat BerkasDaftar dokumen yang diperlukan dengan keterangan
TugasDaftar tugas yang harus dikerjakan untuk layanan ini
BiayaDaftar biaya default untuk layanan ini

Skenario 5.3: Tambah Pelayanan Baru

Skenario ini menunjukkan proses menambahkan pelayanan baru dengan form lengkap.

AktorOfficer & Sistem
RincianGiven officer memiliki izin akses PELAYANAN, When officer menekan tombol "Tambah Pelayanan" dan mengisi form pelayanan baru, Then sistem menyimpan pelayanan baru dan menambahkannya ke daftar pelayanan di pane kiri. Sistem juga menampilkan pelayanan yang baru dibuat di pane kanan untuk editing lebih lanjut.

Form Input Pelayanan Baru:

  • Informasi Umum:

    • Nama pelayanan (required, unique)
    • Kelompok (NOTARIS/PPAT) - dropdown
    • Deskripsi (optional)
    • Status (Aktif/Tidak Aktif)
  • Syarat Berkas - Dynamic list:

    • Add button untuk tambah syarat
    • Field: Nama, Keterangan, Scan?, Pernyataan?
    • Remove button untuk setiap syarat
  • Tugas - Dynamic list:

    • Add button untuk tambah tugas
    • Field: Nama tugas
    • Remove button untuk setiap tugas
  • Biaya - Dynamic list:

    • Add button untuk tambah biaya
    • Field: Nama biaya, Nominal
    • Remove button untuk setiap biaya

Skenario 5.4: Edit Detail Pelayanan

AktorOfficer & Sistem
RincianGiven officer sedang melihat detail pelayanan, When officer menekan tombol "Edit" dan mengubah data pelayanan (informasi umum, syarat berkas, tugas, atau biaya), Then sistem memperbarui data pelayanan dan menampilkan data yang telah diubah. Officer dapat menambah atau menghapus syarat berkas, tugas, dan biaya dalam edit mode.

Edit Mode Features:

  • Toggle dari View Mode ke Edit Mode
  • Inline editing untuk fields dan dynamic lists
  • Validasi input (e.g., nama tidak boleh kosong, nominal harus angka)
  • Tombol Simpan dan Batal
  • Konfirmasi sebelum simpan perubahan

Skenario 5.5: Hapus Pelayanan

AktorOfficer & Sistem
RincianGiven officer sedang melihat detail pelayanan, When officer menekan tombol "Hapus" dan mengonfirmasi penghapusan, Then sistem menghapus pelayanan dan menghilangkannya dari daftar pelayanan di pane kiri. Sistem juga menampilkan pesan konfirmasi sebelum penghapusan dan validasi apakah pelayanan masih digunakan.

Validasi Penghapusan:

  • Cek apakah pelayanan digunakan dalam permohonan aktif
  • Jika iya, tampilkan warning dan cegah penghapusan
  • Jika tidak, tampilkan konfirmasi penghapusan
  • Setelah berhasil, refresh daftar dan tutup detail pane

Skenario 5.6: Cari Pelayanan

AktorOfficer & Sistem
RincianGiven officer berada di menu pelayanan, When officer mengetik kata kunci di kolom pencarian atau menggunakan filter, Then sistem menampilkan daftar pelayanan yang sesuai dengan kata kunci pencarian atau filter yang dipilih secara real-time.

Fitur Pencarian & Filter:

  • Search box - Real-time search by nama pelayanan
  • Filter dropdown - Filter by kelompok (NOTARIS, PPAT, Semua)
  • Kombinasi - Search dan filter dapat digunakan bersamaan
  • Clear button - Reset search dan filter dengan satu klik
  • No results state - Tampilkan pesan jika tidak ada hasil

Detail Teknis & Perancangan

Abstraksi & Objek Inti

Modul ini berinteraksi dengan objek-objek inti berikut:

Rincian Abstraksi Modul Pengaturan - Pelayanan

ObjekAnggotaTipe Data/Keterangan
Layanan (Pelayanan)Properti:
idint (ID unik pelayanan)
namastring (Nama pelayanan)
kelompokenum (NOTARIS, PPAT)
keteranganstring? (Deskripsi pelayanan)
isPublicboolean (Apakah pelayanan publik/dapat diakses customer)
created_atdate (Tanggal pembuatan)
updated_atdate (Tanggal terakhir diupdate)
Metode:
create()Membuat pelayanan baru. Kembali: Layanan.
update()Memperbarui data pelayanan. Kembali: boolean.
delete()Menghapus pelayanan. Kembali: boolean.
canDelete()Mengecek apakah pelayanan dapat dihapus (tidak digunakan aktif). Kembali: boolean.
getRequirements()Mendapatkan daftar syarat berkas. Kembali: SyaratBerkas[].
getTasks()Mendapatkan daftar tugas. Kembali: TugasLayanan[].
getCosts()Mendapatkan daftar biaya. Kembali: BiayaLayanan[].
SyaratBerkasProperti:
idint (ID unik syarat berkas)
namastring (Nama dokumen/berkas)
keteranganstring? (Deskripsi/catatan)
scanboolean (Apakah perlu scan?)
pernyataanboolean (Apakah perlu pernyataan?)
layananIdint (ID pelayanan terkait)
Metode:
create()Membuat syarat berkas baru. Kembali: SyaratBerkas.
delete()Menghapus syarat berkas. Kembali: boolean.
TugasLayananProperti:
idint (ID unik tugas)
namastring (Nama tugas)
layananIdint (ID pelayanan terkait)
Metode:
create()Membuat tugas layanan baru. Kembali: TugasLayanan.
delete()Menghapus tugas layanan. Kembali: boolean.
BiayaLayananProperti:
idint (ID unik biaya)
namastring (Nama biaya/komponen)
nominalfloat (Jumlah biaya dalam Rp)
layananIdint (ID pelayanan terkait)
Metode:
create()Membuat biaya layanan baru. Kembali: BiayaLayanan.
delete()Menghapus biaya layanan. Kembali: boolean.

Diagram Kelas (Class Diagram)

Diagram ini menunjukkan struktur kelas untuk manajemen pelayanan.


Endpoint API

Modul ini menggunakan endpoint API berikut:

MethodEndpointDeskripsi
GET/office/admin/serviceMendapatkan daftar semua pelayanan
GET/office/admin/service/{id}Mendapatkan detail pelayanan spesifik
POST/office/admin/serviceMembuat pelayanan baru
PATCH/office/admin/service/{id}Memperbarui detail pelayanan
DELETE/office/admin/service/{id}Menghapus pelayanan
GET/office/admin/service/{id}/requirementsMendapatkan syarat berkas pelayanan
POST/office/admin/service/{id}/requirementsMenambah syarat berkas
DELETE/office/admin/service/{id}/requirements/{reqId}Menghapus syarat berkas
GET/office/admin/service/{id}/tasksMendapatkan tugas pelayanan
POST/office/admin/service/{id}/tasksMenambah tugas
DELETE/office/admin/service/{id}/tasks/{taskId}Menghapus tugas
GET/office/admin/service/{id}/costsMendapatkan biaya pelayanan
POST/office/admin/service/{id}/costsMenambah biaya
DELETE/office/admin/service/{id}/costs/{costId}Menghapus biaya

Parameter Query untuk /office/admin/service:

  • kelompok (enum): Filter by NOTARIS, PPAT
  • search (string): Search by nama
  • isPublic (boolean): Filter by status publikasi
  • page (number): Nomor halaman
  • size (number): Jumlah item per halaman

Rencana Pengujian (Test Cases)

NamaVerifikasi Akses Menu Pelayanan dengan Izin Valid
DeskripsiMemastikan bahwa officer dengan izin PELAYANAN dapat mengakses menu pelayanan.
Langkah-langkah1. Login sebagai officer dengan izin PELAYANAN = true.
2. Akses /pelayanan.
3. Verifikasi tampilan layout dual pane.
Hasil yang Diharapkan1. Officer berhasil mengakses halaman.
2. Pane kiri menampilkan daftar pelayanan.
3. Pane kanan menampilkan detail pelayanan pertama (default selected).
4. Search box dan filter tersedia.
NamaLoad Daftar Pelayanan
DeskripsiMemastikan bahwa daftar pelayanan dimuat dengan benar dari backend.
Langkah-langkah1. Akses /pelayanan.
2. Verifikasi semua pelayanan ditampilkan.
3. Periksa atribut yang ditampilkan (nama, kelompok).
Hasil yang Diharapkan1. Semua pelayanan dimuat dari database.
2. Masing-masing item menampilkan: nama, kelompok, status.
3. List di-sort berdasarkan kriteria default (e.g., alfabet).
4. Pagination berfungsi jika item lebih dari limit.
NamaSearch Pelayanan by Nama
DeskripsiMemastikan bahwa fitur search berfungsi dengan benar.
Langkah-langkah1. Akses /pelayanan.
2. Ketik "JUAL BELI" di search box.
3. Verifikasi hasil pencarian.
Hasil yang Diharapkan1. Daftar filter menampilkan hanya pelayanan yang cocok.
2. Search case-insensitive.
3. Partial match diterima (e.g., "JUAL" match "JUAL BELI").
4. Clear search button menampilkan semua item kembali.
NamaFilter Pelayanan by Kelompok
DeskripsiMemastikan bahwa filter kelompok berfungsi dengan benar.
Langkah-langkah1. Akses /pelayanan.
2. Buka filter dropdown.
3. Pilih "NOTARIS".
4. Verifikasi hasil filter.
Hasil yang Diharapkan1. Daftar filter menampilkan hanya pelayanan NOTARIS.
2. Pelayanan PPAT disembunyikan.
3. Filter dapat dikombinasikan dengan search.
4. Clear filter menampilkan semua item.
NamaTampilkan Detail Pelayanan
DeskripsiMemastikan bahwa detail pelayanan ditampilkan dengan benar.
Langkah-langkah1. Akses /pelayanan.
2. Klik salah satu pelayanan di pane kiri.
3. Verifikasi detail di pane kanan.
Hasil yang Diharapkan1. Pane kanan menampilkan tab: Umum, Syarat Berkas, Tugas, Biaya.
2. Tab Umum menampilkan: nama, kelompok, deskripsi, status.
3. Tab Syarat Berkas menampilkan daftar dokumen yang diperlukan.
4. Tab Tugas menampilkan daftar tugas untuk layanan.
5. Tab Biaya menampilkan daftar biaya default.
NamaMembuat Pelayanan Baru Lengkap
DeskripsiMemastikan bahwa officer dapat membuat pelayanan baru dengan semua komponen.
Langkah-langkah1. Akses /pelayanan.
2. Klik "Tambah Pelayanan".
3. Isi form: nama, kelompok, deskripsi.
4. Tambah 3 syarat berkas.
5. Tambah 2 tugas.
6. Tambah 2 biaya.
7. Submit form.
Hasil yang Diharapkan1. Modal form menampilkan semua field input.
2. Dynamic lists untuk syarat, tugas, biaya berfungsi.
3. Pelayanan berhasil dibuat dengan semua komponen.
4. Pelayanan muncul di daftar pane kiri.
5. Detail pelayanan ditampilkan di pane kanan.
NamaEdit Data Pelayanan
DeskripsiMemastikan bahwa officer dapat mengedit data pelayanan yang sudah ada.
Langkah-langkah1. Akses /pelayanan.
2. Pilih pelayanan.
3. Klik tombol "Edit".
4. Ubah nama dan deskripsi.
5. Tambah syarat berkas baru.
6. Hapus satu syarat berkas.
7. Klik "Simpan".
Hasil yang Diharapkan1. Edit mode mengaktifkan semua input field.
2. Perubahan dapat disimpan.
3. Syarat berkas dapat ditambah/dihapus dalam edit mode.
4. Setelah simpan, tampilkan success message.
5. Perubahan persistent setelah refresh.
NamaHapus Pelayanan yang Tidak Digunakan
DeskripsiMemastikan bahwa pelayanan yang tidak digunakan dapat dihapus.
Langkah-langkah1. Akses /pelayanan.
2. Pilih pelayanan yang tidak aktif.
3. Klik tombol "Hapus".
4. Konfirmasi penghapusan di modal.
Hasil yang Diharapkan1. Modal konfirmasi ditampilkan sebelum hapus.
2. Setelah konfirmasi, pelayanan dihapus dari database.
3. Pelayanan tidak muncul lagi di daftar pane kiri.
4. Success message ditampilkan.
5. Pane kanan menampilkan pelayanan berikutnya atau empty state.
NamaCegah Penghapusan Pelayanan yang Aktif Digunakan
DeskripsiMemastikan bahwa sistem mencegah penghapusan pelayanan yang masih digunakan dalam permohonan aktif.
Langkah-langkah1. Buat permohonan dengan pelayanan tertentu (status DALAM_PROSES).
2. Akses /pelayanan.
3. Coba hapus pelayanan yang digunakan permohonan tersebut.
Hasil yang Diharapkan1. Sistem mendeteksi pelayanan masih digunakan.
2. Warning message ditampilkan: "Pelayanan masih digunakan dalam X permohonan aktif".
3. Tombol "Hapus" disabled atau tidak berfungsi.
4. Penghapusan dibatalkan.
NamaKombinasi Search dan Filter
DeskripsiMemastikan bahwa search dan filter dapat digunakan bersamaan.
Langkah-langkah1. Akses /pelayanan.
2. Filter by kelompok "NOTARIS".
3. Search "KAWIN".
4. Verifikasi hasil kombinasi.
Hasil yang Diharapkan1. Hasil menampilkan pelayanan NOTARIS dengan "KAWIN" di nama.
2. Contoh: "PERJANJIAN KAWIN" ditampilkan, "PERJANJIAN PPAT" tidak.
3. Clear search atau filter akan update hasil secara real-time.
NamaValidasi Input Saat Membuat/Edit Pelayanan
DeskripsiMemastikan bahwa form validasi berfungsi dengan benar.
Langkah-langkah1. Buka form tambah/edit pelayanan.
2. Coba submit dengan nama kosong.
3. Coba submit dengan nama duplikat.
4. Coba submit dengan nominal biaya non-numeric.
5. Submit form valid.
Hasil yang Diharapkan1. Nama kosong: error message "Nama tidak boleh kosong".
2. Nama duplikat: error message "Nama sudah digunakan".
3. Nominal non-numeric: error message "Nominal harus angka".
4. Form valid: submit berhasil, success message.

Rincian Abstraksi Modul Keuangan & Penagihan

Rincian Abstraksi Modul Keuangan & Penagihan

ObjekAnggotaTipe Data/Keterangan
InvoiceProperti:
idstring (ID unik tagihan)
amountfloat (Jumlah total tagihan)
statusstring (paid, unpaid, overdue)
dueDatedate (Tanggal jatuh tempo)
relatedOrderIdstring (ID permohonan terkait)
Metode:
calculateTotal(costList: Cost[])Menghitung jumlah total dari daftar biaya yang diberikan. Kembali: float.
lock()Mengunci tagihan agar tidak bisa diubah. Kembali: boolean.
sendToCustomer(customer: Customer)Mengirim tagihan ke pelanggan. Kembali: boolean.

Diagram Kelas (Class Diagram)

Diagram ini menunjukkan struktur kelas inti dan relasinya dalam modul keuangan.

ERD (Entity-Relationship Diagram)

Diagram ini merepresentasikan struktur database untuk modul ini dan hubungannya dengan entitas lain.

Rencana Pengujian (Test Cases)

NamaVerifikasi Pencatatan Pengeluaran Otomatis
DeskripsiMemastikan bahwa ketika tugas yang memiliki biaya ditandai sebagai selesai, sistem secara otomatis mencatat biaya tersebut sebagai pengeluaran kantor tanpa entri manual.
Langkah-langkah1. Buat permohonan baru.<br>2. Buat tugas di dalam permohonan dengan biaya Rp 500.000.<br>3. Tandai tugas tersebut sebagai Selesai.
Hasil yang Diharapkan1. Status tugas berubah menjadi Selesai.<br>2. Sebuah entri baru dengan jumlah Rp 500.000 dan tipe Pengeluaran muncul di laporan keuangan.<br>3. Total pengeluaran kantor bertambah Rp 500.000.<br>4. Tidak ada notifikasi kesalahan.