Skip to content

Manajemen Tugas & Kolaborasi

Modul Manajemen Tugas & Kolaborasi adalah modul yang mengelola penugasan tugas kepada petugas, pelacakan progress penugasan, dan evaluasi kinerja tim. Modul ini menyediakan berbagai view untuk monitoring tugas baik dari perspektif individual maupun tim secara keseluruhan.

Dashboard Papan Tugas menampilkan ringkasan tugas yang ditugaskan kepada pengguna berdasarkan prioritas. Sistem secara otomatis mengelompokkan tugas sesuai dengan kondisi prioritas.

Skenario 1.1.1: Lihat Papan Prioritas Saat Ini

Skenario ini menggambarkan logika prioritas saat pengguna membuka menu tugas.

AktorUser & Sistem
RincianGiven user telah ditugaskan secara otomatis oleh sistem atau admin, When user membuka menu tugas /tasks, Then sistem mengembalikan tugas yang dikelompokkan oleh permohonan dengan kondisi: If ada permohonan dengan status VIP dan user memiliki penugasan, Then tampilkan daftar tugas VIP orders saja. Else if minggu ini ada weekly priority dan user memiliki penugasan, Then tampilkan daftar tugas weekly priority orders. Else tampilkan semua penugasan user.

Catatan:

  • Sistem mengevaluasi prioritas secara otomatis berdasarkan order status dan weekly priority
  • Tugas dikelompokkan per permohonan untuk kemudahan visualisasi
  • Tampilan default adalah daftar VIP jika ada, kemudian weekly priority, baru semua tugas

Skenario 1.1.2: Update Status Tugas Saat Ini

Skenario ini menunjukkan cara mengubah status tugas dengan drag-drop ke kolom berbeda.

AktorUser & Sistem
RincianGiven user telah ditugaskan secara otomatis oleh sistem atau admin And user telah mengakses menu tugas /tasks, When user memindahkan tugas ke papan lain (kolom status berbeda), Then sistem mengupdate status tugas di client state terlebih dahulu, And sistem mengirimkan request ke endpoint update. If berhasil, maka tampilkan pesan berhasil. Else sistem mengembalikan status tugas pada state aplikasi ke status sebelumnya.

Status Tugas yang Tersedia:

  • BELUM_DIMULAI - Tugas belum dikerjakan
  • SEDANG_DIKERJAKAN - Tugas sedang dalam pengerjaan
  • SELESAI - Tugas telah selesai

Skenario 1.1.3: Lihat Detail Permohonan

AktorUser & Sistem
RincianGiven user telah ditugaskan secara otomatis oleh sistem atau admin And user telah mengakses menu tugas /tasks, When user menekan kartu tugas untuk melihat detail tugas, Then sistem akan menampilkan detail permohonan tersebut lengkap dengan berkasnya. Why? Karena petugas membutuhkan detail permohonan untuk mengerjakan tugasnya.

Informasi Detail yang Ditampilkan:

  • Data permohonan (nomor, tanggal, layanan)
  • Data pemohon dan pihak-pihak terkait
  • Daftar tugas dengan status masing-masing
  • Daftar berkas yang diperlukan
  • Rincian biaya dan tagihan
  • Tenggat waktu permohonan dan tugas

Skenario 1.1.4: Lihat Tugas dengan Filter

AktorUser & Sistem
RincianGiven user telah ditugaskan secara otomatis oleh sistem atau admin, When user telah mengakses menu tugas /tasks And user mengisi kolom pencarian sesuai dengan kategori pencarian Or user menekan item permohonan pada view permohonan, Then sistem akan menampilkan daftar tugas relative pada permohonan yang dicari. If user menekan item permohonan pada view permohonan, maka sistem akan kembali ke view papan tugas dan secara otomatis mengisi kolom pencarian dengan kategori ID (ID dari permohonan tersebut).

Filter & Search yang Tersedia:

  • Search by nomor permohonan - Cari tugas berdasarkan nomor order
  • Filter by status tugas - Tampilkan tugas dengan status tertentu
  • Filter by petugas - Tampilkan tugas yang ditugaskan ke petugas tertentu
  • Pagination - page, size untuk navigasi

Menu Kinerja menyediakan monitoring dan evaluasi performa petugas melalui berbagai perspektif: papan kanban individual, kalender deadline, daftar permohonan aktif dengan estimasi, dan dashboard statistik kinerja.

Skenario 7.1: Lihat Papan Kinerja Para Anggota

Skenario ini menampilkan papan kinerja dengan layout kanban untuk setiap petugas.

AktorOfficer & Sistem
RincianGiven officer telah login dan memiliki izin akses MENGATUR_TUGAS, When officer menavigasi ke halaman /kinerja, Then sistem menampilkan papan kinerja para anggota dengan layout kanban. Masing-masing papan menampilkan tugas yang sedang dikerjakan individu dengan status kolom: BELUM_DIMULAI, SEDANG_DIKERJAKAN, SELESAI.

Layout Kanban:

  • Kolom 1: BELUM_DIMULAI - Tugas menunggu untuk dikerjakan
  • Kolom 2: SEDANG_DIKERJAKAN - Tugas sedang dalam pengerjaan
  • Kolom 3: SELESAI - Tugas yang telah diselesaikan
  • Setiap kartu menampilkan: Nomor permohonan, nama layanan, tenggat waktu, dan progress

Skenario 7.2: Memindahkan Tugas

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja dan memiliki izin akses MENGATUR_TUGAS, When officer memindahkan kartu tugas ke papan lain (misalnya dari "Sedang Dikerjakan" ke "Selesai"), Then sistem akan mengubah status tugas dan memperbarui papan kinerja. Sistem juga mengirimkan update ke backend untuk persistensi data.

Skenario 7.3: Lihat Detail Permohonan

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja dan memiliki izin akses MENGATUR_TUGAS, When officer menekan kartu tugas, Then sistem akan menampilkan detail permohonan terkait tugas tersebut lengkap dengan berkasnya.

Skenario 7.4: Lihat Kalender

Skenario ini menampilkan tenggat waktu permohonan dan tugas dalam format kalender.

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja dan memiliki izin akses MENGATUR_TUGAS, When officer beralih ke submenu Kalender, Then sistem akan menampilkan tenggat waktu permohonan dan tugas dalam bentuk kalender. Setiap event di kalender menunjukkan: nomor permohonan, nama tugas, petugas, dan status (tepat waktu/terlambat).

Fitur Kalender:

  • View by bulan, minggu, hari - Berbagai perspektif kalender
  • Color coding - Warna berbeda untuk status (on-time vs overdue)
  • Event details - Hover atau klik untuk melihat detail lengkap
  • Filter by petugas - Tampilkan kalender untuk petugas tertentu

Skenario 7.5: Lihat Antrian Permohonan Aktif

Skenario ini menampilkan daftar permohonan yang sedang aktif dengan estimasi dan progress detail.

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja dan memiliki izin akses MENGATUR_TUGAS, When officer beralih ke submenu Permohonan Aktif, Then sistem akan menampilkan permohonan disertai dengan estimasi pengerjaan. Informasi pada tabel dilengkapi dengan tahap terakhir, time passed pada tahap tersebut, dan status setiap tahap (telat atau tepat waktu).

Kolom Tabel Permohonan Aktif:

KolomDeskripsi
Nomor PermohonanID permohonan yang unik
LayananNama layanan yang diajukan
PemohonNama pemohon
Tahap TerakhirNama tugas yang sedang berjalan
Time PassedDurasi yang telah berlalu di tahap saat ini
DeadlineTenggat waktu absolut
Status TahapTepat waktu (✓) atau Terlambat (⚠)
ProgressVisual progress bar (%)

Skenario 7.6: Lihat Metrik Kinerja Setiap Petugas

Skenario ini menampilkan metrik kinerja individual untuk setiap petugas.

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja dan memiliki izin akses MENGATUR_TUGAS, When officer melihat papan kinerja, Then sistem menampilkan metrik kinerja setiap petugas, termasuk presentase penyelesaian tugas dan tingkat keterlambatan.

Metrik Kinerja yang Ditampilkan:

MetrikDefinisi
Total TugasJumlah total tugas yang ditugaskan
Tugas SelesaiJumlah tugas yang telah diselesaikan
Persentase Penyelesaian(Tugas Selesai / Total Tugas) × 100%
Tugas TerlambatJumlah tugas yang melewati deadline
Tingkat Keterlambatan(Tugas Terlambat / Total Tugas) × 100%
Rata-rata DurasiRata-rata waktu penyelesaian tugas
Status KinerjaBaik (✓), Sedang (→), Perlu Perbaikan (⚠)

Skenario 7.7: Filter Tugas Berdasarkan Petugas

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja, When officer memilih petugas tertentu dari filter dropdown, Then sistem menampilkan hanya tugas yang dikerjakan oleh petugas tersebut di semua submenu (papan kanban, kalender, permohonan aktif).

Skenario 7.8: Filter Tugas Berdasarkan Tanggal

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja, When officer memilih rentang tanggal tertentu menggunakan date picker, Then sistem menampilkan tugas yang memiliki tenggat waktu dalam rentang tanggal tersebut. Filter ini berlaku di semua submenu.

Skenario 7.9: Ekspor Laporan Kinerja

AktorOfficer & Sistem
RincianGiven officer telah memfilter data kinerja sesuai preferensi, When officer menekan tombol "Ekspor Laporan", Then sistem menghasilkan file laporan kinerja dalam format Excel/PDF yang dapat diunduh berisi metrik kinerja, daftar tugas, dan statistik periode.

Format Laporan:

  • File format - Excel (.xlsx) atau PDF
  • Konten - Summary metrics, detail tugas, grafik performa
  • Period - Sesuai filter tanggal yang dipilih
  • Include - Nama petugas, performance rating, dan recommendations

Skenario 7.10: Lihat Dashboard Statistik Kinerja

Skenario ini menampilkan ringkasan statistik kinerja keseluruhan tim.

AktorOfficer & Sistem
RincianGiven officer berada di halaman /kinerja, When officer membuka submenu "Dashboard", Then sistem menampilkan statistik kinerja keseluruhan termasuk total permohonan, rata-rata waktu penyelesaian, dan tingkat keberhasilan.

Dashboard Widgets:

WidgetDeskripsi
Total Permohonan AktifJumlah permohonan yang sedang berjalan
Rata-rata Waktu PenyelesaianWaktu rata-rata dari pembuatan hingga selesai
Tingkat KeberhasilanPersentase permohonan yang selesai tepat waktu
Total Tugas SelesaiJumlah tugas yang telah diselesaikan bulan ini
Tingkat Keterlambatan TimPersentase keterlambatan keseluruhan
Top PerformersDaftar 3 petugas dengan kinerja terbaik
Grafik TrendTrend kinerja selama periode tertentu
Heatmap Beban KerjaVisualisasi distribusi beban kerja per petugas

Detail Teknis & Perancangan

Abstraksi & Objek Inti

Modul ini berinteraksi dengan objek-objek inti berikut:

Rincian Abstraksi Modul Tugas & Kolaborasi

ObjekAnggotaTipe Data/Keterangan
Task (Tugas)Properti:
idint (ID unik tugas)
namastring (Nama tugas)
permohonanIdstring (ID permohonan terkait)
statusTugasenum (BELUM_DIMULAI, SEDANG_DIKERJAKAN, SELESAI, DIBATALKAN)
pelaksanaIdstring (ID petugas pelaksana)
nextIdint? (ID tugas berikutnya dalam chain)
firstboolean (Apakah tugas pertama)
tenggat_waktudate (Deadline tugas)
biayafloat? (Biaya terkait tugas)
created_atdate (Tanggal pembuatan)
completed_atdate? (Tanggal penyelesaian)
Metode:
markAsDone()Menandai tugas sebagai selesai. Kembali: boolean.
assignTo(userId: string)Menugaskan ke user tertentu. Kembali: boolean.
getNextTask()Mendapatkan tugas berikutnya. Kembali: Task?.
isActive()Mengecek apakah tugas aktif (tugas sebelumnya selesai). Kembali: boolean.
isOverdue()Mengecek apakah tugas melewati deadline. Kembali: boolean.
getDuration()Mendapatkan durasi penyelesaian tugas. Kembali: duration.
PerformanceMetricProperti:
idstring (ID metrik kinerja)
petugasIdstring (ID petugas)
totalTasksint (Total tugas ditugaskan)
completedTasksint (Tugas yang selesai)
completionRatefloat (Persentase penyelesaian 0-100)
lateTasksint (Tugas yang terlambat)
latenessRatefloat (Persentase keterlambatan 0-100)
averageDurationduration (Rata-rata waktu penyelesaian)
periodStartdate (Awal periode evaluasi)
periodEnddate (Akhir periode evaluasi)
Metode:
calculateMetrics()Menghitung semua metrik berdasarkan tugas periode. Kembali: boolean.
getPerformanceStatus()Mendapatkan status kinerja (Baik/Sedang/Perlu Perbaikan). Kembali: string.
getPerformanceRating()Mendapatkan rating kinerja (1-5). Kembali: float.

Diagram Kelas (Class Diagram)

Diagram ini menunjukkan struktur kelas inti dan relasinya dalam modul tugas & kolaborasi.


Endpoint API

Modul ini menggunakan endpoint API berikut:

MethodEndpointDeskripsi
GET/office/admin/task/assignedMendapatkan daftar tugas yang ditugaskan ke user
GET/office/admin/task/{id}Mendapatkan detail tugas spesifik
PATCH/office/admin/task/{id}/statusMengupdate status tugas
GET/office/admin/performance/metricsMendapatkan metrik kinerja tim
GET/office/admin/performance/metrics/{userId}Mendapatkan metrik kinerja user tertentu
GET/office/admin/performance/dashboardMendapatkan data dashboard statistik kinerja
GET/office/admin/task/active-ordersMendapatkan daftar permohonan aktif dengan detail progress
GET/office/admin/task/scheduleMendapatkan daftar tugas untuk kalender

Parameter Query untuk /office/admin/task/assigned:

  • pelaksanaId (string): Filter by petugas yang ditugaskan
  • status (enum): Filter by status tugas
  • sortBy (string): Field untuk sorting (e.g., tenggat_waktu)
  • order (string): Arah sorting (asc, desc)

Rencana Pengujian (Test Cases)

NamaVerifikasi Akses Papan Tugas dengan Izin Valid
DeskripsiMemastikan bahwa pengguna dengan izin MENGATUR_TUGAS dapat mengakses papan tugas dan melihat tugas yang ditugaskan.
Langkah-langkah1. Login sebagai user dengan izin MENGATUR_TUGAS = true.
2. Akses /tasks.
3. Verifikasi tampilan papan tugas.
Hasil yang Diharapkan1. User berhasil mengakses halaman.
2. Sistem menampilkan tugas yang dikelompokkan per permohonan.
3. Logika prioritas berfungsi (VIP > weekly > semua).
4. Tugas ditampilkan dengan status dan tenggat waktu.
NamaUpdate Status Tugas dengan Drag-Drop
DeskripsiMemastikan bahwa user dapat mengubah status tugas dengan memindahkannya ke kolom berbeda.
Langkah-langkah1. Akses /tasks.
2. Drag kartu tugas dari kolom "BELUM_DIMULAI" ke "SEDANG_DIKERJAKAN".
3. Verifikasi update di UI dan backend.
Hasil yang Diharapkan1. UI update secara instant (optimistic update).
2. API call dikirim ke PATCH /office/admin/task/{id}/status.
3. Status berubah di database.
4. Jika error, status di-revert ke keadaan sebelumnya.
5. Success message ditampilkan.
NamaLihat Detail Permohonan dari Kartu Tugas
DeskripsiMemastikan bahwa user dapat melihat detail permohonan dengan menekan kartu tugas.
Langkah-langkah1. Akses /tasks.
2. Klik pada kartu tugas.
3. Verifikasi detail permohonan yang ditampilkan.
Hasil yang Diharapkan1. Modal/drawer menampilkan detail permohonan.
2. Data meliputi: nomor, layanan, pemohon, tugas, berkas, biaya.
3. User dapat scroll dan melihat semua informasi.
4. Close modal dengan mudah.
NamaFilter Tugas Berdasarkan Permohonan
DeskripsiMemastikan bahwa fitur search dan filter untuk tugas bekerja dengan benar.
Langkah-langkah1. Akses /tasks.
2. Ketik nomor permohonan di search box.
3. Tekan Enter atau tunggu hasil filtering.
4. Verifikasi hasil yang ditampilkan.
Hasil yang Diharapkan1. Search menampilkan tugas untuk permohonan tersebut.
2. Tugas dikelompokkan per permohonan yang dicari.
3. Jika tidak ada hasil, tampilkan empty state.
4. Search bersifat case-insensitive.
NamaNavigasi Papan Kinerja
DeskripsiMemastikan bahwa user dengan izin MENGATUR_TUGAS dapat mengakses halaman kinerja.
Langkah-langkah1. Login sebagai user dengan izin MENGATUR_TUGAS = true.
2. Akses /kinerja.
3. Verifikasi tampilan papan kinerja.
Hasil yang Diharapkan1. User berhasil mengakses halaman.
2. Papan kanban ditampilkan dengan 3 kolom status.
3. Kartu tugas untuk setiap petugas ditampilkan.
4. Submenu (papan, kalender, permohonan, dashboard) tersedia.
NamaKanban Board - Memindahkan Tugas Antar Kolom
DeskripsiMemastikan bahwa kanban board memungkinkan drag-drop antar kolom dan update backend.
Langkah-langkah1. Akses /kinerja.
2. Pilih petugas tertentu atau lihat semua.
3. Drag kartu tugas dari "BELUM_DIMULAI" ke "SEDANG_DIKERJAKAN".
4. Verifikasi update di kanban dan di backend.
Hasil yang Diharapkan1. Drag-drop berfungsi smooth.
2. Status tugas berubah di database.
3. Kartu dipindahkan ke kolom baru.
4. Perubahan persistent setelah refresh.
NamaKalender - Menampilkan Deadline
DeskripsiMemastikan bahwa submenu kalender menampilkan semua deadline dengan benar.
Langkah-langkah1. Akses /kinerja.
2. Klik submenu "Kalender".
3. Navigasi ke bulan dengan deadline.
4. Verifikasi event yang ditampilkan.
Hasil yang Diharapkan1. Kalender menampilkan semua deadline tugas.
2. Event color coding sesuai status (on-time/overdue).
3. Hover/klik event menampilkan detail.
4. Filter by petugas berfungsi.
NamaPermohonan Aktif - Tampilkan Progress Detail
DeskripsiMemastikan bahwa tabel permohonan aktif menampilkan informasi progress dengan akurat.
Langkah-langkah1. Akses /kinerja.
2. Klik submenu "Permohonan Aktif".
3. Verifikasi kolom dan data yang ditampilkan.
4. Cek progress bar dan status tahap.
Hasil yang Diharapkan1. Tabel menampilkan semua kolom: nomor, layanan, pemohon, tahap terakhir, time passed, deadline, status, progress.
2. Time passed dihitung dengan akurat.
3. Status tepat waktu/terlambat ditampilkan dengan benar.
4. Progress bar menunjukkan % sesuai tahap.
NamaDashboard Statistik - Menampilkan Metrics
DeskripsiMemastikan bahwa dashboard menampilkan statistik kinerja keseluruhan.
Langkah-langkah1. Akses /kinerja.
2. Klik submenu "Dashboard".
3. Verifikasi semua widget dan data.
Hasil yang Diharapkan1. Semua 8 widgets ditampilkan dengan benar.
2. Data dihitung dari database dengan akurat.
3. Grafik trend menampilkan visualisasi yang jelas.
4. Top performers list menampilkan 3 petugas terbaik.
NamaFilter Kinerja Berdasarkan Petugas
DeskripsiMemastikan bahwa filter petugas bekerja di semua submenu kinerja.
Langkah-langkah1. Akses /kinerja.
2. Buka filter dropdown petugas.
3. Pilih satu petugas.
4. Navigasi ke berbagai submenu (papan, kalender, permohonan, dashboard).
Hasil yang Diharapkan1. Papan kanban menampilkan hanya tugas petugas tersebut.
2. Kalender menampilkan hanya deadline petugas tersebut.
3. Tabel permohonan aktif filter oleh petugas.
4. Dashboard menampilkan metrics untuk petugas tersebut.
NamaFilter Kinerja Berdasarkan Tanggal
DeskripsiMemastikan bahwa filter rentang tanggal bekerja di semua submenu kinerja.
Langkah-langkah1. Akses /kinerja.
2. Buka date range picker.
3. Pilih rentang tanggal (e.g., 1 bulan lalu).
4. Verifikasi perubahan di semua submenu.
Hasil yang Diharapkan1. Tugas dengan deadline dalam range ditampilkan.
2. Metrics dihitung berdasarkan range yang dipilih.
3. Kalender hanya menampilkan bulan dalam range.
4. Filter persisten saat navigasi submenu.
NamaEkspor Laporan Kinerja
DeskripsiMemastikan bahwa user dapat mengekspor data kinerja dalam format Excel/PDF.
Langkah-langkah1. Akses /kinerja.
2. Terapkan filter sesuai kebutuhan.
3. Klik tombol "Ekspor Laporan".
4. Pilih format (Excel/PDF).
5. Verifikasi file yang dihasilkan.
Hasil yang Diharapkan1. File diunduh dengan format yang dipilih.
2. Konten sesuai dengan data yang difilter.
3. File berisi summary, detail, dan grafik.
4. Nama file mengandung tanggal dan format.
NamaMetrik Kinerja Petugas - Perhitungan Akurat
DeskripsiMemastikan bahwa metrik kinerja dihitung dengan benar.
Langkah-langkah1. Buat 10 tugas untuk 1 petugas.
2. Tandai 7 sebagai selesai, 3 masih berlangsung.
3. Dari 7 selesai, 2 terlambat, 5 tepat waktu.
4. Akses /kinerja dan lihat metrik petugas tersebut.
Hasil yang Diharapkan1. Total Tugas = 10.
2. Tugas Selesai = 7.
3. Persentase Penyelesaian = 70%.
4. Tugas Terlambat = 2.
5. Tingkat Keterlambatan = 20%.
6. Status Kinerja = Sedang (untuk 70%).

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.