1 of 10

LOGISTICS MIS

Sistem Informasi Manajemen Logistik untuk Distribusi UKM

Kelompok empat serangkai

Dianta Arya Zaki Hanif · Fairuz Ahnaf Susatyo · Aditya Muhammad · Ahmad Riza Raihan Alauddin

Pengembangan Sistem Informasi · SIF401

2 of 10

Kelompok 8

empatSerangkai

Ahnaf

24523

Dianta

24523

Aditya

24523

Riza

24523

3 of 10

Latar Belakang Masalah

Pengelolaan inventaris & pengadaan manual menghambat pengambilan keputusan

Kesalahan Pencatatan Stok

Input manual di spreadsheet rentan human error dan duplikasi data.

Data Tidak Real-Time

Stok aktual tidak diketahui sampai dicek manual — sering telat diketahui.

Pengadaan Terlambat

Tidak ada peringatan otomatis saat stok mulai menipis.

Laporan Sulit Dibuat

Data tersebar, manajemen kesulitan menyusun laporan untuk keputusan.

Sumber: PRD LMIS — dampak langsung pada efisiensi operasional dan kecepatan keputusan manajemen

4 of 10

Solusi Sistem Informasi

LMIS — satu sumber kebenaran real-time untuk inventaris dan procurement

“Memberi manajer satu sumber kebenaran real-time atas inventaris dan procurement, agar keputusan lebih cepat dan berbasis data.”

Warehouse

Pencatatan stok masuk/keluar atomik, severity tier otomatis, riwayat transaksi lengkap.

Procurement

Siklus Purchase Order penuh: Draft → Ordered → Received, atomik & aman dari race condition.

Dashboard & Reports

KPI real-time, drill-down interaktif, 3 laporan operasional + export Excel.

5 of 10

Arsitektur Sistem

Full-stack monolith — Next.js Server Actions menggantikan REST API terpisah

Presentation

React Server & Client Components — shadcn/ui, Tailwind CSS

Application

Server Actions — validasi Zod, RBAC guard, transaksi atomik

Data

Prisma ORM 6 → PostgreSQL 16 (Docker)

Teknologi Utama

  • Next.js 15 (App Router) + TypeScript
  • PostgreSQL 16 via Docker + Prisma 6
  • Auth.js v5 + bcryptjs (JWT session)
  • shadcn/ui + Tailwind CSS + base-ui
  • Zod + React Hook Form (validasi)
  • Vitest (103 test) + Recharts + SheetJS

RBAC diberlakukan server-side di middleware — tidak sekadar disembunyikan di UI.

6 of 10

Fitur Utama

6 modul, dibangun bertahap dan diverifikasi manual di setiap fase

Auth & RBAC

Login aman, 2 role (Manager/Staff), middleware server-side

Master Data

CRUD Produk, Kategori, Supplier dengan soft-deactivation

Warehouse

Stock in/out atomik, severity tier, riwayat & filter

Procurement

Siklus PO Draft → Ordered → Received, goods receipt atomik

Dashboard

4 KPI live, pie chart status PO, drill-down interaktif

Reports

3 laporan operasional + export Excel (.xlsx)

7 of 10

Alur Sistem: Input → Proses → Output

Contoh alur lengkap: dari Purchase Order sampai muncul di Dashboard

1

Buat PO

Staff pilih supplier + line item produk

2

Confirm Order

Validasi ulang produk/supplier aktif → status Ordered

3

Receive Goods

Koreksi jumlah diterima, transaksi atomik

4

Stok Terupdate

currentStock bertambah otomatis, row-locked

5

Dashboard & Report

KPI, severity tier, laporan Excel real-time

Kunci teknis: Row-Level Locking (SELECT FOR UPDATE)

Setiap mutasi stok dan penerimaan PO dibungkus dalam satu transaksi database atomik. Ini mencegah race condition ketika dua permintaan datang hampir bersamaan — stok tidak akan pernah tercatat ganda atau menjadi negatif, bahkan pada skenario penerimaan barang secara serentak.

8 of 10

Kualitas & Keamanan Sistem

Diverifikasi lewat testing otomatis, code review, dan audit keamanan di setiap fase

103

Test Otomatis Lulus

6/6

Fase MVP Selesai

29

Requirement Tervalidasi

0

Bug Kritis Terbuka

Contoh Bug Nyata yang Ditemukan & Diperbaiki

Race Condition PO

Konfirmasi PO bersamaan dengan edit bisa lolos validasi — diperbaiki dengan row-locking atomik, diverifikasi test concurrency ke Postgres asli.

Celah RBAC Middleware

Manager gagal akses halaman sendiri karena callback role salah tempat — ditemukan & diperbaiki di Phase 1.

Validasi Parameter URL

Parameter tanggal/filter yang tidak valid bisa membuat halaman crash — diterapkan whitelist validation di semua fase baru.

9 of 10

Refleksi Singkat

Proses discuss → plan → execute → verify diterapkan konsisten di 6 fase

Berjalan Baik

  • Alur discuss-plan-execute-verify membuat keputusan desain terdokumentasi jelas sebelum coding — mengurangi revisi berulang.
  • Pola “belajar dari bug sebelumnya” terbukti: race condition di Phase 3 dicegah proaktif di Phase 4 sebelum kode ditulis.
  • Testing manual end-to-end konsisten setiap fase — menangkap bug yang lolos dari test otomatis (mis. celah RBAC).

Perlu Diperbaiki

  • Konsistensi workflow migrasi database sempat terlewat (db push vs migrate dev) — berisiko reset data di Phase 3.
  • Beberapa bug UI kecil (mis. komponen Select) baru ketahuan lewat testing manual — perlu regression test lebih awal.
  • Technical debt kecil (bug lama /inventory, ESLint warning) masih tertunda — perlu sesi housekeeping terpisah.

10 of 10

Terima Kasih

Logistics MIS — 6/6 Fase MVP Selesai · 29 Requirement Tervalidasi

Sesi Tanya Jawab

Kelompok empat serangkai · Pengembangan Sistem Informasi SIF401