Dokumentasi Aplikasi Koperasi

Tutorial lengkap aplikasi Koperasi (Laravel 12 + Filament 3.3) β€” dari instalasi sampai operasional harian. Dokumen ini ikut dalam paket source code yang Anda beli.

PHP 8.3 Laravel 12 Filament 3.3 MySQL / PostgreSQL Tailwind CSS

πŸ“– Pengantar

Aplikasi ini adalah software manajemen koperasi modern dengan dukungan dual-mode (Konvensional & Syariah) dalam satu platform. Cocok untuk:

  • Koperasi Simpan Pinjam (KSP) β€” fokus simpanan & pinjaman
  • Koperasi Serba Usaha (KSU) β€” multi unit (SP + Toko + Jasa)
  • Koperasi Syariah (KSPPS) β€” 9 akad syariah lengkap
  • Koperasi Pegawai (KPRI) β€” auto-debit gaji integrasi payroll
  • Koperasi Karyawan (Kopkar) β€” internal perusahaan
  • Koperasi Pondok Pesantren (Kopontren) β€” multi unit syariah

Aplikasi menjual source code β€” Anda dapat repository lengkap, deploy di server sendiri, dan modifikasi sesuka hati. Tidak ada SaaS subscription. Untuk pembelian: hubungi WhatsApp 0812-9605-2010.

πŸ”‘ Kredensial Default

Setelah php artisan migrate --seed dijalankan, berikut akun default untuk login pertama:

A

Super Admin

URL/admin
Emailadmin@koperasi.local
Passwordadmin123
Rolesuper-admin
P

Portal Anggota Demo

URL/portal/login
Emailanggota1@demo.local
Passwordanggota123
CatatanTersedia setelah seeder koperasi:seed-demo
⚠️ WAJIB ganti password setelah login pertama via menu User β†’ Edit Profile. Akun default ini hanya untuk testing dan tidak boleh dipakai di production.

Role yang tersedia (Spatie Permission)

RoleAkses
super-adminFull akses semua resource, semua tenant
admin-koperasiFull akses dalam 1 tenant (koperasi-nya)
kasirTransaksi simpanan & pinjaman, kas
accountingJurnal, COA, laporan keuangan
pengawasRead-only semua data + laporan
anggotaHanya akses Portal Anggota (/portal)

Role di-seed otomatis via RoleSeeder.php. Untuk assign role ke user lewat Filament: menu Users β†’ Edit User β†’ tab Roles.

βš™οΈ Instalasi

Prasyarat

  • PHP 8.3 atau lebih baru (cek: php --version)
  • Composer 2.7+ (composer --version)
  • Node.js 18+ dan npm (untuk asset compilation)
  • MySQL 8 / MariaDB 10.5+ atau PostgreSQL 14+
  • Web server: Apache, Nginx, atau Laragon (Windows)

Langkah Instalasi

  1. Extract source code ke folder web (mis. htdocs/koperasi atau /var/www/koperasi).
  2. Buka terminal di folder tersebut, jalankan:
# 1. Install PHP dependencies
composer install --no-dev --optimize-autoloader

# 2. Install Node dependencies dan build asset
npm install
npm run build

# 3. Salin file environment
cp .env.example .env

# 4. Generate application key
php artisan key:generate

# 5. Edit .env β€” isi konfigurasi database
# DB_CONNECTION=mysql
# DB_HOST=127.0.0.1
# DB_DATABASE=koperasi
# DB_USERNAME=root
# DB_PASSWORD=

# 6. Buat database (lewat phpMyAdmin atau CLI)
mysql -u root -e "CREATE DATABASE koperasi CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;"

# 7. Run migration + seeder default
php artisan migrate --seed

# 8. Symlink storage (untuk upload file)
php artisan storage:link

# 9. Set permission folder storage & cache (Linux)
chmod -R 775 storage bootstrap/cache

# 10. Jalankan dev server
php artisan serve

Aplikasi sekarang accessible di http://localhost:8000. Login admin dengan kredensial di atas.

Deploy ke Production (Nginx)

server {
    listen 80;
    server_name koperasi.example.com;
    root /var/www/koperasi/public;
    index index.php;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.3-fpm.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

Setelah deploy, jalankan optimasi:

php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache

πŸ”“ Aktivasi License

Aplikasi menggunakan domain-locked license. Tanpa aktivasi, semua route (selain /__pair) akan di-redirect ke wizard aktivasi. Khusus localhost dan domain *.test, license check di-bypass otomatis (dev mode).

  1. Setelah pembelian via WhatsApp 0812-9605-2010, Anda akan mendapat License Key dan Activation Code.
  2. Buka https://yourdomain.com/__pair di browser.
  3. Masukkan License Key dan Activation Code β†’ klik Aktifkan.
  4. Sistem akan validate ke server marketplace (whitelabel.co.id) dan generate storage/app/.license.lock.
  5. Anda di-redirect ke /admin setelah aktivasi sukses.

Bypass Sementara untuk Development

Set di .env:

LICENSE_DEV_BYPASS=true
APP_ENV=local

Bypass hanya aktif untuk host localhost, 127.0.0.1, *.test, *.localhost. Banner peringatan akan muncul di setiap halaman.

Konfigurasi Heartbeat

Aplikasi melakukan heartbeat ke marketplace setiap 24 jam untuk verifikasi license aktif:

# config/license.php
'heartbeat_interval' => 86400,   // 24 jam
'heartbeat_grace'    => 604800,  // grace 7 hari saat marketplace unreachable

🎲 Seed Demo Data 100.000 Records

Untuk demo dan stress-testing, tersedia command artisan yang generate ~100.000 record dummy realistic dalam beberapa menit:

# Generate 100.000 records (default)
php artisan koperasi:seed-demo

# Custom size
php artisan koperasi:seed-demo --members=10000 --tx-per-member=15

# Reset semua data demo
php artisan koperasi:seed-demo --fresh

Distribusi Default

TabelJumlahKeterangan
anggota5.000Anggota aktif dengan NIK & alamat realistic
simpanan15.0003 simpanan per anggota (Pokok, Wajib, Sukarela)
simpanan_transaksi50.000~10 transaksi setoran/penarikan per simpanan
pinjaman8.000~1.6 pinjaman per anggota (mix konv + syariah)
pinjaman_jadwal12.000Jadwal angsuran 12 bulan per pinjaman
pinjaman_pembayaran5.000Cicilan terbayar (random 0–12 cicilan)
jurnal3.000Jurnal transaksi otomatis
kas_transaksi2.000Mutasi kas masuk/keluar
Total
~100.000 recordsRealistic untuk demo & load test

Perkiraan Waktu Eksekusi

  • Local development (Laragon, MySQL): 3–5 menit
  • VPS 1 vCPU 2GB RAM: 5–8 menit
  • VPS 4 vCPU 8GB RAM: 1–2 menit

Seeder pakai batch insert (chunk 1000 records) supaya memori-efisien. Bisa di-interrupt kapan saja dengan Ctrl+C tanpa korup data.

Login Anggota Demo

Setelah seeder selesai, semua anggota demo punya password seragam anggota123. Login portal di /portal/login:

Email: anggota1@demo.local      β†’ anggota#1
Email: anggota2@demo.local      β†’ anggota#2
...
Email: anggota5000@demo.local   β†’ anggota#5000

Password (semua): anggota123

πŸŽ“ Tutorial Pemakaian (10 Langkah)

Workflow lengkap dari pertama login sampai operasional harian. Ikuti urutan ini saat pertama setup.

1 Aktivasi License & Login Pertama
  1. Buka browser ke https://yourdomain.com/__pair
  2. Masukkan License Key & Activation Code (kirim WA setelah pembelian)
  3. Sistem validasi β†’ .license.lock dibuat β†’ redirect ke /admin
  4. Login dengan admin@koperasi.local / admin123
  5. Klik avatar kanan-atas β†’ Edit Profile β†’ ganti password baru yang kuat
2 Setup Profile Tenant (Koperasi)

Menu sidebar: Master β†’ Tenant β†’ klik tenant default β†’ Edit.

  1. Tab Profil: nama koperasi, NIK badan hukum, NPWP, alamat, logo, warna brand
  2. Tab Mode Operasi: pilih Konvensional / Syariah / Dual
  3. Tab Subscription SaaS: (jika multi-tenant) status billing
  4. Tab Branding: kop surat, footer faktur, alamat cetak
  5. Klik Simpan β€” perubahan langsung effect ke seluruh halaman
3 Konfigurasi Chart of Accounts (CoA)

Menu sidebar: Akuntansi β†’ Chart of Accounts.

  1. Default sudah ada akun PSAK 27 standar (di-seed via ChartOfAccountsSeeder)
  2. Review akun-akun: 1xxxx (Aset), 2xxxx (Kewajiban), 3xxxx (Ekuitas), 4xxxx (Pendapatan), 5xxxx (Beban)
  3. Tambah akun custom jika perlu (mis. Simpanan Lebaran, Dana Sosial)
  4. Set parent account untuk hierarchy yang rapi
  5. Filter by tipe akan auto-color-code badge di tabel
4 Buat Produk Simpanan

Menu: Master β†’ Produk Simpanan β†’ Create.

  • Pokok: setoran sekali saat masuk anggota, tidak dapat ditarik
  • Wajib: rutin bulanan, tidak dapat ditarik selama keanggotaan
  • Sukarela: tabungan bebas, bisa ditarik kapan saja
  • Berjangka: deposito koperasi, tenor & bunga/bagi hasil

Untuk Syariah, pilih akad pada produk Berjangka (Mudharabah / Wadiah). Set parameter: minimum setoran, biaya admin, bunga/nisbah.

5 Buat Produk Pinjaman / Pembiayaan

Menu: Master β†’ Produk Pinjaman β†’ Create (form 5 tab).

  • Tab Info Dasar: nama produk, kode, deskripsi
  • Tab Plafon: minimum-maksimum, tenor min-max bulan
  • Tab Akad: pilih dari 10 opsi (Konvensional, Murabahah, Mudharabah, Musyarakah, Ijarah, Ijarah MB, Qardh, Rahn, Salam, Istishna)
  • Tab Perhitungan: flat / efektif / anuitas, suku bunga atau nisbah
  • Tab Biaya & Denda: admin, asuransi, denda telat (% per hari)
6 Daftarkan Anggota Baru

Menu: Anggota β†’ Anggota β†’ New Anggota.

  1. Isi data: NIK, Nama, Tempat/Tgl Lahir, Alamat, Pekerjaan, No HP, Email
  2. Upload foto KTP & foto profil (opsional)
  3. Isi data ahli waris (untuk klaim asuransi/SHU)
  4. Status: Aktif (default)
  5. Klik Save β†’ anggota auto-buat User account untuk Portal Anggota

Untuk migrasi banyak anggota dari Excel, gunakan command php artisan koperasi:import-members file.csv (lihat docs add-on).

7 Catat Transaksi Setoran Simpanan

Menu: Transaksi β†’ Simpanan β†’ Setor.

  1. Pilih anggota (search by NIK atau nama)
  2. Pilih jenis simpanan (Pokok/Wajib/Sukarela/Berjangka)
  3. Input nominal setoran
  4. Pilih kas penerima (untuk multi-kas/bank)
  5. Catatan opsional
  6. Klik Simpan β€” sistem auto:
    • Update saldo simpanan anggota
    • Auto-jurnal Dr. Kas / Cr. Simpanan
    • Update saldo kas
    • Generate slip setoran (PDF β€” bisa di-print)
8 Proses Pengajuan Pinjaman

Menu: Pinjaman β†’ Pinjaman β†’ New.

  1. Pilih anggota & produk pinjaman
  2. Input plafon pengajuan, tenor (bulan)
  3. Sistem auto-generate jadwal angsuran (table preview)
  4. Upload dokumen jaminan (jika ada)
  5. Status awal: Pengajuan
  6. Approval flow: Pengajuan β†’ Review β†’ Approved/Rejected β†’ Cair
  7. Saat status = Cair: auto-jurnal Dr. Piutang Pinjaman / Cr. Kas + pembayaran ke anggota
9 Tutup Buku Bulanan & Laporan Keuangan

Menu: Akuntansi β†’ Laporan Keuangan (Page custom Filament).

  1. Pilih periode (mulai - akhir tanggal)
  2. Klik tab Neraca β€” posisi keuangan akhir periode
  3. Tab Laba-Rugi (PHU) β€” surplus/defisit operasional
  4. Tab Arus Kas β€” flow operasional, investasi, pendanaan
  5. Tab Buku Besar β€” detail transaksi per akun
  6. Klik Export PDF di tiap tab
10 Distribusi SHU & RAT Akhir Tahun

Menu: Akhir Tahun β†’ SHU Perhitungan β†’ New.

  1. Pilih periode RAT (mis. Jan-Des 2026)
  2. Sistem hitung total SHU otomatis dari Laba-Rugi
  3. Set persentase pembagian (sesuai AD/ART): cadangan, jasa modal, jasa usaha, dll
  4. Klik Hitung Distribusi β†’ preview SHU per anggota
  5. Confirm & finalize β†’ entry tabel shu_distribusi
  6. Export slip SHU per anggota (PDF batch)
  7. Bagikan slip ke anggota saat RAT

Menu RAT β†’ Periode RAT juga menyimpan dokumen RAT (berita acara, daftar hadir, foto dokumentasi).

⚑ Daftar Fitur Confirmed di Source Code

Daftar di bawah ini semuanya sudah dibangun di repository β€” diverify dengan grep manual ke file resource/model/controller:

Filament Resources (19 modul)

ResourcePathFitur
Anggotaapp/Filament/Resources/AnggotaResource.phpCRUD anggota, ahli waris, status log
TenantTenantResource.phpMulti-tenant koperasi, 4 tab (Profile, Mode, Subscription, Branding)
UserUserResource.phpUser admin/staff dengan Spatie Role
ProdukSimpananProdukSimpananResource.phpDefinisi produk simpanan (Pokok/Wajib/Sukarela/Berjangka)
ProdukPinjamanProdukPinjamanResource.php5-tab form, 10 akad selector
SimpananSimpananResource.phpAkun simpanan per anggota + transaksi
PinjamanPinjamanResource.phpPengajuan, jadwal, pembayaran, jaminan
CoaCoaResource.phpChart of Accounts hierarchical
JurnalJurnalResource.phpJurnal umum dengan multi-line detail
KasKasResource.phpMulti-kas + bank, conditional UI
ShuPerhitunganShuPerhitunganResource.phpPerhitungan & distribusi SHU
RatRatResource.phpPeriode Rapat Anggota Tahunan
TagihanTagihanResource.phpMaster tagihan rutin
TokoBarangTokoBarangResource.phpInventory toko Koperasi Serba Usaha
TokoPenjualanTokoPenjualanResource.phpPOS / kasir + detail transaksi
KaryawanKaryawanResource.phpData karyawan koperasi
AssetAssetResource.phpManajemen aset tetap
UnitJasaOrderUnitJasaOrderResource.phpOrder unit jasa anggota
UnitProdusenSetoranUnitProdusenSetoranResource.phpSetoran unit produsen

Custom Pages (2)

  • LaporanKeuangan β€” Neraca, Laba-Rugi, Arus Kas dalam 1 page tab
  • Pengaturan β€” Settings global koperasi

Dashboard Widgets (6)

  • HeroBanner β€” Banner welcome dashboard
  • StatsKoperasi β€” KPI cards (total anggota, simpanan, pinjaman aktif, kas)
  • KolektabilitasChart β€” Chart kualitas pinjaman (Lancar/DPK/Macet)
  • TrenSimpananChart β€” Tren simpanan 12 bulan
  • AktivitasTerbaru β€” Feed transaksi real-time
  • TopAnggotaTable β€” Top peminjam / penabung

Routes Public (luar Filament)

  • GET / β€” Landing page (LandingController)
  • GET /portal/login β€” Portal Anggota login
  • GET /portal β€” Portal dashboard anggota
  • GET /__pair β€” License activation wizard
  • GET /sitemap.xml β€” Auto-generated sitemap (75+ URL)
  • GET /robots.txt β€” Robots
  • 7 pSEO routes β€” kota, jenis, akad, panduan, kalkulator, alternatif, compare

Models (32)

Anggota, AhliWaris, AnggotaStatusLog, Asset, Cabang, Coa, Jurnal, JurnalDetail, Karyawan, Kas, KasTransaksi, Pinjaman, PinjamanApproval, PinjamanJadwal, PinjamanJaminan, PinjamanPembayaran, ProdukPinjaman, ProdukSimpanan, Rat, Setting, ShuDistribusi, ShuPerhitungan, Simpanan, SimpananTransaksi, Tagihan, TagihanMaster, Tenant, TokoBarang, TokoPenjualan, TokoPenjualanDetail, UnitJasaOrder, UnitProdusenSetoran, User.

⚠️ Belum Termasuk (Tersedia sebagai Add-on)

FiturCatatan
Notifikasi WhatsAppBelum ada package/service. Tersedia integrasi Fonnte/Wablas sebagai add-on (chat WA tim).
QR Code kartu anggotaBelum ada generator QR. Bisa pakai package simplesoftwareio/simple-qrcode.
Cetak struk thermalUntuk POS toko, perlu integrasi printer driver ESC/POS.
Import CSV mass anggotaFilament tidak punya importer bawaan. Bisa pakai filament/spatie-laravel-import-export.
Backup otomatis dailyPackage spatie/laravel-backup sudah terpasang, schedule perlu di-aktifkan di routes/console.php.
Mobile app nativeHanya web responsive. Bisa di-wrap pakai Capacitor/Cordova jika perlu.

Konfirmasi via WhatsApp untuk biaya custom add-on: 0812-9605-2010.

πŸ› οΈ Admin Panel

Filament Panel di /admin dengan navigation groups:

  • Dashboard β€” 6 widgets KPI & analytics
  • Anggota β€” Anggota, Ahli Waris
  • Master Data β€” Tenant, Cabang, Produk Simpanan, Produk Pinjaman
  • Transaksi β€” Simpanan (set, set, tarik), Pinjaman (ajukan, approval, cair, cicil)
  • Akuntansi β€” COA, Jurnal, Kas, Laporan Keuangan (Page)
  • Toko / Unit Usaha β€” Toko Barang, Penjualan, Unit Jasa, Unit Produsen
  • Karyawan & Aset β€” Karyawan, Asset
  • Akhir Tahun β€” RAT, SHU Perhitungan
  • Sistem β€” User, Tagihan, Pengaturan

Navigation groups bisa di-customize lewat tiap Resource ($navigationGroup, $navigationSort).

πŸ“± Portal Anggota

Antarmuka khusus untuk anggota koperasi (di luar admin Filament). Tidak butuh role admin β€” semua anggota auto-bisa login dengan akun yang dibuat saat registrasi.

URL Portal

  • /portal/login β€” Login form
  • /portal β€” Dashboard anggota (saldo simpanan, riwayat pinjaman)
  • /laporan/neraca, /laporan/laba-rugi, /laporan/arus-kas β€” Laporan keuangan koperasi (auth required)

Yang Anggota Bisa Lakukan

  • Lihat saldo Simpanan Pokok / Wajib / Sukarela / Berjangka
  • Lihat riwayat transaksi setoran/penarikan
  • Lihat pinjaman aktif: sisa pokok, sisa cicilan, tanggal jatuh tempo
  • Download bukti setoran (PDF)
  • Update profil (alamat, no HP, password)

🌐 pSEO Built-in (70+ Halaman SEO)

Aplikasi sudah include sistem Programmatic SEO yang otomatis generate halaman public untuk traffic dari Google. Data master ada di config/pseo.php:

Pattern URLJumlahContoh
/aplikasi-koperasi-{kota}30/aplikasi-koperasi-jakarta
/jenis-koperasi/{tipe}6/jenis-koperasi/syariah
/akad-syariah/{nama}10/akad-syariah/mudharabah
/panduan/{slug}8/panduan/cara-mendirikan-koperasi
/kalkulator/{slug}4/kalkulator/cicilan-pinjaman
/alternatif-{kompetitor}6/alternatif-siska
/compare/{a}-vs-{b}6/compare/koperasi-app-vs-siska

Setiap halaman: JSON-LD schema, meta tags lengkap, 300+ kata konten unik, internal linking. Auto-registered di /sitemap.xml. Submit ke Google Search Console untuk indexing.

πŸš‘ Troubleshooting

"Routes tidak ditemukan / 404 setelah deploy"

Clear semua cache route lalu rebuild:

php artisan optimize:clear
php artisan route:cache
php artisan config:cache

"Internal Server Error setelah composer install"

  • Pastikan storage/ dan bootstrap/cache/ writable: chmod -R 775
  • Pastikan APP_KEY ter-generate: php artisan key:generate
  • Pastikan .env ada dan database connection benar
  • Cek log: tail -f storage/logs/laravel.log

"Filament page blank putih"

  • Run: php artisan filament:cache-components
  • Run: php artisan icons:cache
  • Compile asset: npm run build

"License pairing gagal β€” server unreachable"

  • Pastikan server bisa akses https://whitelabel.co.id (firewall, DNS)
  • Cek SSL cert: curl -I https://whitelabel.co.id
  • Untuk dev: set LICENSE_DEV_BYPASS=true di .env

"Seeder demo OOM (out of memory)"

Naikkan PHP memory limit:

php -d memory_limit=512M artisan koperasi:seed-demo

Atau pakai --chunk=500 untuk mengurangi batch size.

❓ FAQ

Apakah bisa modifikasi source code?
Ya, 100% bebas modifikasi. Anda dapat full repository tanpa obfuscation.
Bisa di-deploy di shared hosting?
Bisa, asal hosting support PHP 8.3 dan SSH access (untuk run composer + artisan). Lebih disarankan VPS untuk performa optimal.
Berapa lama license valid?
License valid selamanya untuk 1 domain. Jika pindah domain, request re-issue ke WhatsApp sales.
Update versi baru gratis?
Free update 6 bulan pertama. Setelah itu, update major version 50% dari harga awal.
Bisa pakai PostgreSQL?
Bisa. Aplikasi pakai Laravel Eloquent yang database-agnostic. Edit DB_CONNECTION=pgsql di .env.
Support multi-bahasa?
Saat ini hanya Bahasa Indonesia. English translation tersedia sebagai add-on.

πŸ’¬ Kontak Pembelian & Support

WhatsApp Sales & Support

Senin–Sabtu Β· 09.00–17.00 WIB Β· Respond < 5 menit

πŸ“± 0812-9605-2010

Untuk pembelian source code, hubungi via WhatsApp di nomor di atas. Tim sales akan kirim:

  • Penawaran resmi (PDF) dengan detail spesifikasi
  • Demo akses (admin panel + portal anggota)
  • Invoice pembayaran (transfer bank atau e-wallet)
  • License Key + Activation Code (setelah pembayaran)
  • Link download source code (ZIP / Git repository)