3. Architectural Design
3.1 System Architecture Diagram
Section titled “3.1 System Architecture Diagram”Bagian ini menyajikan contoh diagram arsitektur tingkat sistem dalam format Mermaid. Diagram ini dapat digunakan sebagai baseline dan disempurnakan secara manual melalui mermaid.ai sesuai kebutuhan final dokumen.
Catatan: diagram pada bagian ini adalah simplifikasi level tinggi untuk menunjukkan boundary dan interaksi antarlapisan. Rincian domain komponen secara lengkap dijabarkan pada Section 3.2.
3.2 Component Breakdown
Section titled “3.2 Component Breakdown”3.2.1 Master Components
Section titled “3.2.1 Master Components”- [Organisation Component]: [Mengelola identitas legal organisasi sebagai root entitas bisnis; berinteraksi dengan Sites Component, Warehouses Component, dan seluruh transaksi lintas gudang.]
- [Sites Component]: [Mengelola struktur site atau cabang operasional; berinteraksi dengan Warehouses Component, User Role Permission Component, dan transaksi inbound atau outbound per site.]
- [User Role Permission Component]: [Mengelola role, permission, dan assignment akses pengguna; berinteraksi dengan seluruh komponen transaksi untuk enforcing otorisasi berbasis gudang.]
- [Business Partner Component]: [Mengelola master pemasok, pelanggan, dan mitra logistik; berinteraksi dengan Purchase Order Component, Sales Order Component, dan Outbound Order Component.]
- [Business Partner Contact Component]: [Mengelola data kontak mitra bisnis; berinteraksi dengan Business Partner Component dan proses operasional yang membutuhkan titik kontak supplier atau customer.]
- [Business Partner Address Component]: [Mengelola data alamat mitra bisnis untuk pengiriman dan penerimaan; berinteraksi dengan Inbound Orders Component dan Outbound Order Component saat eksekusi logistik.]
- [Product Template Component]: [Mengelola atribut generik produk pada level template; berinteraksi dengan Product Product Component, UOM Categories Component, dan UOM Component.]
- [Product Product Component]: [Mengelola SKU atau varian produk yang dapat ditransaksikan; berinteraksi dengan Purchase Order Items Component, Stock Moves Component, Stock Balances Component, dan Stock Reservation Component.]
- [UOM Component]: [Mengelola satuan ukur operasional; berinteraksi dengan Product Product Component, Purchase Order Items Component, dan Stock Moves Component untuk normalisasi kuantitas.]
- [UOM Categories Component]: [Mengelola kelompok satuan ukur; berinteraksi dengan UOM Component dan UOM Conversions Component untuk menjaga konsistensi konversi.]
- [UOM Conversions Component]: [Mengelola aturan konversi antar satuan; berinteraksi dengan UOM Component, Purchase Order Items Component, dan Stock Moves Component untuk kalkulasi kuantitas lintas unit.]
- [Warehouses Component]: [Mengelola entitas gudang dalam model one-tenant multi-warehouse; berinteraksi dengan Zones Component, Locations Component, User Role Permission Component, dan seluruh transaksi stok.]
- [Zones Component]: [Mengelola pembagian area di dalam gudang; berinteraksi dengan Warehouses Component, Locations Component, dan proses receiving atau picking untuk rute operasional.]
- [Locations Component]: [Mengelola lokasi penyimpanan detail (bin atau slot); berinteraksi dengan Stock Moves Component, Stock Balances Component, dan Stock Reservation Component sebagai lokasi asal dan tujuan pergerakan.]
3.2.2 Transaction Components
Section titled “3.2.2 Transaction Components”- [Purchase Order Component]: [Mengelola dokumen pembelian sebagai sumber demand inbound; berinteraksi dengan Purchase Order Items Component, Inbound Orders Component, dan Integration SAP RFC Component.]
- [Purchase Order Items Component]: [Mengelola detail item pada purchase order; berinteraksi dengan Product Product Component, UOM Component, Inbound Orders Component, dan Stock Moves Component.]
- [Inbound Orders Component]: [Mengelola rencana dan eksekusi order inbound; berinteraksi dengan Purchase Order Component, Business Partner Address Component, Stock Moves Component, dan Integration SAP RFC Component.]
- [Sales Order Component]: [Mengelola dokumen penjualan sebagai sumber demand outbound; berinteraksi dengan Outbound Order Component, Product Product Component, dan Integration SAP RFC Component.]
- [Outbound Order Component]: [Mengelola rencana pengeluaran barang; berinteraksi dengan Sales Order Component, Picking Order Component, Stock Reservation Component, dan Stock Moves Component.]
- [Picking Order Component]: [Mengelola task picking hingga kesiapan dispatch; berinteraksi dengan Outbound Order Component, Locations Component, Stock Reservation Component, dan Stock Moves Component.]
- [Dispatch Stage Component]: [Mengelola tahap serah kirim setelah picking; berinteraksi dengan Picking Order Component, Outbound Order Component, dan Stock Moves Component untuk goods issue final.]
- [Material Request Component]: [Mengelola permintaan material internal untuk kebutuhan replenishment dan transfer operasional; berinteraksi dengan Warehouses Component, Product Product Component, Outbound Order Component, dan Stock Reservation Component.]
3.2.3 Stocks Components
Section titled “3.2.3 Stocks Components”- [Stock Moves Component]: [Mengelola material document atas setiap pergerakan stok masuk, pindah, dan keluar; berinteraksi dengan Inbound Orders Component, Picking Order Component, Dispatch Stage Component, dan Stock Balances Component.]
- [Stock Balances Component]: [Mengelola saldo stok per produk, lot, lokasi, dan gudang; berinteraksi dengan Stock Moves Component, Stock Reservation Component, dan layanan visibilitas inventory.]
- [Stock Reservation Component]: [Mengelola alokasi stok untuk kebutuhan outbound atau proses internal; berinteraksi dengan Outbound Order Component, Picking Order Component, dan Stock Balances Component untuk mencegah over-allocation.]
- [Referensi Detailed Design]: [Lihat section Stock Components pada 4. Detailed Design untuk spesifikasi rinci: Stock Moves, Stock Balances, dan Stock Reservation.]
3.2.4 General Settings Component
Section titled “3.2.4 General Settings Component”- [General Settings Component]: [Mengelola konfigurasi global berbasis key-value untuk parameter operasional dan integrasi; berinteraksi dengan komponen inbound, outbound, stok, dan authorization melalui pembacaan aturan runtime.]
3.3 Technology Stack
Section titled “3.3 Technology Stack”Status saat ini adalah finalisasi stack teknis masih menunggu konfirmasi resmi. Untuk baseline desain, asumsi awal yang akan dipakai sebagai acuan sementara adalah:
- Backend Core and API: PHP dengan Laravel 12
- Real-Time Communication: WebSocket
- Mobile Client: Flutter
- Deployment Model: On-premises
Catatan: bagian ini akan diperbarui pada revisi berikutnya setelah keputusan teknologi dikunci secara formal.
3.4 Data Flow and Control Flow
Section titled “3.4 Data Flow and Control Flow”3.4.1 Alur End-to-End Prioritas
Section titled “3.4.1 Alur End-to-End Prioritas”Alur kontrol utama sistem mengikuti urutan berikut:
- Inbound
- Receiving
- Stock Move
- Outbound
- Picking
- Dispatch
- Balance
3.4.3 Prinsip Kontrol Operasional
Section titled “3.4.3 Prinsip Kontrol Operasional”- Seluruh transaksi harus memiliki jejak audit untuk kebutuhan traceability.
- Otorisasi akses berbasis assignment gudang wajib diterapkan pada setiap langkah eksekusi.
- Sinkronisasi SAP RFC mencakup data master dan data transaksi.
- Validasi bisnis dilakukan sebelum posting perubahan stok.
3.5 Non-Functional Architecture Considerations
Section titled “3.5 Non-Functional Architecture Considerations”Bagian ini merangkum concern non-fungsional yang mempengaruhi desain komponen:
- Availability: sistem dirancang stabil untuk jam operasi gudang.
- Scalability: mendukung ekspansi site, volume transaksi, dan jumlah SKU.
- Security: kontrol akses berbasis role-permission serta assignment gudang.
- Maintainability: pemisahan component dan module untuk memudahkan revisi.
- Observability: logging audit dan event operasional untuk troubleshooting.
- Data Integrity: validasi transaksi dan konsistensi status antar komponen.
3.6 Status Dokumentasi
Section titled “3.6 Status Dokumentasi”Section 3 ini menjadi dokumen induk arsitektur dan telah memuat breakdown komponen final secara inline untuk menghindari fragmentasi referensi. Revisi berikutnya difokuskan pada pendalaman detail implementasi dan refinement diagram sesuai kebutuhan proyek.