Arsitektur Teknis Unit TPS3R & Bank Sampah
Updated: Sep 2026Oleh: SystemModul Pengolahan Sampah & TPS3R Desa
šļø Arsitektur Teknis: Unit Pengolahan Sampah & TPS3R Desa
Dokumen ini menjelaskan arsitektur perangkat lunak, skema basis data PostgreSQL, API server actions, serta protokol komunikasi perangkat keras timbangan digital untuk modul Unit Pengolahan Sampah & TPS3R (UNT-TPS3R).
1. Skema Database Relasional (ERD)#
Modul TPS3R mengelola perbankan sampah warga, inventaris gudang bahan baku daur ulang, dan siklus biokonversi maggot BSF:
textāāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā waste_customers ā1 *ā waste_deposit_transactions ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā id (UUID, PK) ā ā id (UUID, PK) ā ā citizen_nik (VARCHAR) ā ā customer_id (FK) ā ā full_name (VARCHAR) ā ā invoice_number (VARCHAR, UQ) ā ā rt_rw (VARCHAR) ā ā transaction_date (TIMESTAMP) ā ā phone_number (VARCHAR)ā ā total_amount_idr (DECIMAL) ā ā current_balance (NUM) ā ā payment_status (ENUM) ā ā created_at (TIMESTAMP)ā ā operator_id (UUID, FK) ā āāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā¬āāāāāāāāāāāāāāāāā ā 1 ā * āāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāā“āāāāāāāāāāāāāāāāā ā waste_categories ā1 *ā waste_deposit_details (Lines)ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā id (UUID, PK) ā ā id (UUID, PK) ā ā category_name (VAR) ā ā transaction_id (FK) ā ā waste_type (ENUM) ā ā category_id (FK) ā ā buying_price_per_kg ā ā gross_weight_kg (DECIMAL) ā ā selling_price_per_kg ā ā tare_weight_kg (DECIMAL) ā ā coa_inventory_account ā ā net_weight_kg (DECIMAL) ā ā is_active (BOOLEAN) ā ā subtotal_idr (DECIMAL) ā āāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā waste_retribution_bills ā ā maggot_biopond_cycles ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā ā id (UUID, PK) ā ā id (UUID, PK) ā ā citizen_nik / customer_id ā ā biopond_number (INT) ā ā period_month_year (VARCHAR) ā ā start_date (DATE) ā ā tier (RESIDENTIAL/COMMERCIAL) ā ā baby_maggot_input_gram (NUM) ā ā bill_amount_idr (DECIMAL) ā ā organic_waste_fed_kg (DECIMAL)ā ā paid_status (PAID/UNPAID) ā ā harvest_date (DATE) ā ā paid_via (CASH/QRIS/SAVINGS) ā ā fresh_maggot_yield_kg (DEC) ā ā paid_at (TIMESTAMP) ā ā kasgot_yield_kg (DECIMAL) ā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā āāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāāā
2. API & Backend Services (Next.js Server Actions)#
Operasional modul didukung oleh kumpulan Server Actions pada lib/actions/waste-management.ts:
processWasteDeposit(customerId, items[], scaleDeviceId):
- Menerima payload penimbangan sampah terpilah (kategori, berat kotor, tara wadah, berat bersih).
- Menghitung subtotal per komoditas dan total rupiah yang menjadi hak nasabah.
- Mengkredit pos kewajiban tabungan warga
2-201.25 Tabungan Titipan Bank Sampah Warga. - Mendebit persediaan gudang
1-105.25 Persediaan Anorganik Daur Ulang. - Memutakhirkan saldo
current_balancepada tabelwaste_customers. - Memicu pengiriman notifikasi WhatsApp slip penimbangan instan via gateway.
withdrawWasteSavings(customerId, withdrawalAmount, method):
- Memvalidasi kecukupan saldo tabungan nasabah.
- Mendebit
2-201.25 Tabungan Titipan Bank Sampah Wargadan mengkredit1-101.25 Kas Tunai(jika tarik tunai) atau mentransfer ke dompet digital sembako BUMDes.
generateMonthlyRetributionBills(targetMonthYear):
- Dijalankan via CRON pada tanggal 1 setiap bulan.
- Menerbitkan tagihan retribusi kebersihan untuk seluruh kepala keluarga dan pelaku usaha desa.
- Menyediakan endpoint pembayaran otomatis debet saldo tabungan bagi nasabah yang mengaktifkan fitur Auto-Debet Sampah.
recordBiopondHarvest(biopondId, freshMaggotKg, kasgotKg):
- Mencatat konversi sampah organik basah menjadi produk bernilai jual.
- Mendebit
1-204.25 Aset Biologis - Koloni Maggot BSFdan1-106.25 Persediaan Pupuk Kompos & Kasgot.
3. Integrasi Hardware & Front-End Components#
WasteDepositCashier.tsx(Client Component): Layar loket bank sampah responsif tablet/desktop. Mengimplementasikan Web Bluetooth API untuk melakukan pairing dengan timbangan digital platform CAS/Sonic seri Bluetooth. Nilai berat pada layar timbangan langsung mengisi kolomgross_weight_kgtanpa intervensi ketik manual.WasteCustomerPassbook.tsx(Client Component): Tampilan buku tabungan digital nasabah dengan riwayat setoran, penarikan, grafik akumulasi tonase sampah yang diselamatkan, dan tombol cetak mutasi rekening.CircularFlowDiagram.tsx(Visual Component): Diagram interaktif yang memetakan tonase sampah masuk dari rumah tangga dan resto, terdistribusi ke jalur biokonversi BSF dan bal press daur ulang.
Apakah panduan ini membantu Anda?
Bacaan Selanjutnya
Modul Pengolahan Sampah & TPS3R Desa
SOP Operasional Unit Pengolahan Sampah & TPS3R
Modul Pengolahan Sampah & TPS3R Desa
Blueprint Arsitektur Fisik & Hanggar TPS3R
Modul Pengolahan Sampah & TPS3R Desa
Standar Akuntansi & COA TPS3R (SAK EP Suffix .25)
Modul Pengolahan Sampah & TPS3R Desa
Roadmap Rekayasa IT Unit Persampahan & TPS3R