Proyek ini membangun aplikasi inventaris gudang dengan JDK murni — tanpa framework, tanpa pustaka luar. Kita kelola stok barang kantor dari nol: model Barang dan jurnal MutasiStok, transaksi masuk-keluar dengan aturan bisnis yang menolak stok minus, pencarian dan filter yang tidak peka huruf besar-kecil, penyimpanan yang bertahan di berkas, hingga ekspor laporan CSV untuk aplikasi lembar kerja. Proyek ditutup harness pengujian berbasis main dengan 24 pemeriksaan atas seluruh aturan stok.

Inventaris adalah latihan integritas data yang paling nyata: satu angka stok yang keliru langsung terasa sebagai barang yang tidak ada di rak, atau kehabisan persis saat dibutuhkan. Karena itu proyek ini menempa kebiasaan menjaga kebenaran data — validasi di compact constructor, invarian stok yang selalu bisa dihitung ulang dari jurnal, exception domain bernama jelas untuk setiap pelanggaran, dan transaksi yang menempelkan perubahan stok bersama catatan jurnalnya. Lapisan penyimpanan diabstraksikan lewat interface GudangRepository sehingga memori, berkas, dan kelak database sungguhan dapat bertukar tanpa menyentuh satu baris aturan bisnis.

Sebelum mulai, kuasai materi berikut agar penugasan tiap bagian terasa mulus: Records dan Interfaces pada section Object-Oriented Programming, LinkedHashMap pada section Collections Framework, Custom Exceptions pada section Exception Handling, Files Utility pada section File I/O dan NIO, serta Filter pada section Stream API.

Cara mengikutinya: kerjakan empat bagian secara berurutan karena class domain dibawa dan dikembangkan antar bagian. Setiap bagian memuat berkas .java versi terkini yang lengkap — salin seluruh berkas dari folder bagian, lalu jalankan java DemoGudang.java dengan JDK 25 untuk melihat sistem bekerja. Seluruh contoh memakai tanggal beku dan charset eksplisit sehingga keluaran selalu sama di setiap eksekusi; kode SQL dan JUnit tampil sebagai rancangan karena lingkungan artikel ini tidak menyertakan driver JDBC maupun pustaka pengujian.