title: “Goals — OKR & Target Bisnis” description: “Manajemen goal dengan metodologi OKR, 6 kategori, 3 prioritas, key results terukur, localStorage persistence, dan progress tracking di SNISHOP ERP.”
Goals — OKR & Target Bisnis

Goals.jsx (517 baris) dengan penyimpanan berbasis localStorage untuk performa instan dan offline-first experience.
Setiap Objective (tujuan kualitatif) dipecah menjadi beberapa Key Results (hasil terukur) yang memungkinkan kamu memantau progress secara granular. Sistem ini mendukung 6 kategori bisnis, 3 level prioritas, dan deadline tracking.
Arsitektur Komponen
Gambaran Umum Sistem Goals
Modul Goals dalam SNISHOP ERP merupakan sistem manajemen target yang komprehensif, mencakup beberapa jenis goal yang saling terintegrasi:
Setiap jenis goal memiliki karakteristik dan metriknya masing-masing, namun semuanya terhubung dalam satu ekosistem produktivitas yang terpadu.
Data Model: Objective
Data Model: Key Result
Setiap Objective memiliki arraykey_results dengan struktur:
Entity Schema: Goal
EntityGoal merupakan model utama untuk goal berskala personal, tim, maupun perusahaan. Mendukung milestones, recurring patterns, dan notifikasi.
Sub-Schema: Milestone (Goal)
Entity Schema: PersonalGoal
EntityPersonalGoal dirancang untuk goal individual dengan dukungan metodologi OKR dan SMART goal.
Sub-Schema: Milestone (PersonalGoal)
Entity Schema: FinancialGoal
EntityFinancialGoal mengelola target keuangan seperti tabungan, pelunasan hutang, investasi, dan pengurangan pengeluaran.
Entity Schema: KPI
EntityKPI mencatat Key Performance Indicator per karyawan untuk periode tertentu, dengan metrik berbobot dan sistem rating.
Sub-Schema: KPI Metric
Entity Schema: KPITemplate
EntityKPITemplate menyediakan template KPI yang dapat digunakan ulang untuk berbagai role dan departemen.
Sub-Schema: Default Metric (KPITemplate)
Sub-Schema: Auto Source
Entity Schema: Achievement
EntityAchievement mencatat badge dan pencapaian yang diraih pengguna dari aktivitas produktif mereka.
Entity Relationship Diagram
Metodologi OKR
Prinsip OKR
Perbandingan Jenis Goal
6 Kategori Bisnis (Goal)
Kategori PersonalGoal
Kategori FinancialGoal
3 Level Prioritas
Enum Reference: Status Fields
Goal Status
PersonalGoal Status
FinancialGoal Status
KPI Status
KPI Rating
Achievement Types
Recurrence Pattern (Goal)
Notification Frequency (Goal)
KPI Calculation Method
Aggregation Methods (KPITemplate Auto Source)
Goal Lifecycle State Diagram
Status Objective (OKR View)
Perhitungan Progress
Perhitungan KPI Overall Score
Contoh Perhitungan OKR
Objective: “Meningkatkan Penjualan Online”
Status: At Risk (overall < 60%)
Contoh Perhitungan KPI
KPI Periode: “2024-Q1” — Karyawan: Sales Manager
Rating: Outstanding (92.1 >= 90)
Sequence Diagrams
Flow: Membuat Goal Baru
Flow: Tracking Progress
Flow: Goal Completion
Flow: KPI Review Process
Flow: Financial Goal Tracking
localStorage Persistence
Stats Dashboard
Filter & Pencarian
RBAC Permission Matrix
Berikut adalah matriks hak akses berdasarkan role untuk modul Goals dan entitas terkait:Catatan RBAC
- ERPAccessGuard dengan
module=goalsdigunakan untuk memproteksi akses ke halaman Goals - Role-based filtering diterapkan di level query untuk memastikan user hanya melihat data yang diizinkan
- Goal dengan
company_idhanya dapat dibuat dan dikelola oleh Admin dan Manager - Goal tanpa
company_id(personal) dapat dikelola oleh pemiliknya selama memiliki akses ke modul
Integrasi dengan Entitas Lain
Deskripsi Integrasi
Cara Akses
Dari sidebar, klik menu Productivity > Goals.Flow Penggunaan Detail
- Buka halaman Goals dari sidebar — lihat stats dashboard di atas
- Klik “Tambah Objective” untuk membuat tujuan baru
- Isi judul objective — buat inspirasional dan kualitatif (contoh: “Meningkatkan Kepuasan Pelanggan”)
- Pilih kategori bisnis dan prioritas
- Set tanggal mulai dan deadline
- Tambahkan 3-5 Key Results — masing-masing harus terukur:
- Isi judul KR (contoh: “Customer satisfaction score > 90%”)
- Set target value dan current value
- Pilih satuan (unit)
- Klik Simpan — objective muncul di daftar dengan overall progress
- Update current_value key results secara berkala untuk memantau progress
- Review status objective: hijau (on track), kuning (at risk), biru (completed)
Tips
- Objective harus inspirasional — “Menjadi brand sambal #1 di Indonesia” lebih baik daripada “Jual lebih banyak sambal”
- Key Results harus SMART — Specific, Measurable, Achievable, Relevant, Time-bound
- Jangan terlalu banyak objective — 3-5 per quarter sudah ideal. Lebih dari itu = kehilangan fokus
- Review mingguan — luangkan 15 menit setiap minggu untuk update current_value dan cek status
- Gunakan prioritas high hanya untuk 1-2 objective — jika semua high priority, tidak ada yang benar-benar prioritas
- Rayakan completed objectives — ini memotivasi tim dan memberikan sense of accomplishment
- Retroactive di akhir quarter — evaluasi objective mana yang tercapai, mana yang tidak, dan pelajari alasannya
- Manfaatkan KPITemplate — buat template untuk role yang sama agar penilaian konsisten antar karyawan
- Hubungkan PersonalGoal dengan Task — pastikan setiap goal memiliki task konkret yang mendukung pencapaiannya
- Gunakan FinancialGoal bersama Budget — link ke Budget terkait untuk memantau apakah pengeluaran sesuai dengan target keuangan
- Set notification_frequency sesuai urgensi — goal kritis gunakan
daily, goal reguler gunakanweekly, goal dengan milestone penting gunakanmilestone
