Logo Mediatama Portal Soal / Tema 05
LEMBAR SPESIFIKASI PROYEK PRAKTIK • TEMA 05

Sistem Operasional Laundry Kiloan & Dry Clean

Penerimaan Cucian, Pelacakan Status Pengerjaan Mesin, dan Kasir Nota

KODE: MED-WEB-05
TINGKAT: Intermediate
Mata Uji Fullstack Web App
Estimasi Waktu 3 - 4 Jam / Take-home
Sifat Pengerjaan Open Book & Docs
Tech Stack Bebas Dipilih Peserta
Kebebasan Pilihan Teknologi: Anda dibebaskan memilih bahasa pemrograman, framework, arsitektur, dan database yang paling Anda kuasai (misalnya: Laravel, CodeIgniter, Express.js/Node.js, Next.js, Django, FastAPI, Go Gin/Fiber, PHP Native, Vue/React, serta database MySQL, PostgreSQL, MariaDB, atau SQLite). Penilaian menitikberatkan pada kelengkapan 4 modul utama, integritas alur transaksi, keamanan, dan pengalaman pengguna (UX).

Latar Belakang & Studi Kasus

Usaha laundry 'FreshWash Express' melayani ratusan kilogram cucian setiap hari yang terbagi menjadi paket kiloan (reguler 2 hari, kilat 1 hari, express 6 jam) dan cucian satuan (bedcover, selimut, jas, boneka). Masalah klasik yang sering dihadapi adalah pakaian pelanggan yang tertukar atau hilang, pakaian belum selesai saat pelanggan datang mengambil, dan kasir kesulitan melacak mana cucian yang sudah lunas dibayar di awal dan mana yang bayar saat pengambilan. Diperlukan aplikasi web untuk mencatat timbangan, melacak tahapan proses cuci, menerbitkan nota resi berbarcode, dan membuat rekap omset.

4 Modul Wajib yang Harus Dibangun

Pilar Inti Fungsionalitas
01

Modul Autentikasi & Hak Akses (Login System)

Pengamanan akun, sesi pengguna, dan pembatasan wewenang fitur

Role: Administrator / Pemilik Usaha

Konfigurasi paket layanan kiloan & satuan, harga per kilogram, kelola data pegawai laundry, dan analisa omset harian/bulanan serta laporan piutang pelanggan.

Role: Front Desk / Operator Kasir

Penerimaan cucian masuk (timbang berat/rincian satuan), cetak nota resi cucian, perbarui status pengerjaan (Antre -> Cuci -> Kering -> Setrika -> Selesai), proses serah terima cucian, dan terima pembayaran.

Ketentuan Keamanan & Teknis:
  • Form login dengan validasi input (penanganan username/email salah atau password tidak cocok).
  • Password wajib di-hash menggunakan algoritma aman (Bcrypt, Argon2, atau sejenisnya). Tidak boleh menyimpan password plaintext.
  • Proteksi route (Middleware / Guard): Halaman dashboard, transaksi, dan laporan tidak boleh dapat diakses tanpa login.
  • Mekanisme Logout yang menghancurkan sesi / token secara bersih dan mengarahkan kembali ke halaman login.
02

Modul Dashboard Eksekutif (Metrics & Overview)

Pusat pemantauan kinerja real-time dan ringkasan operasional

4 Indikator KPI Utama yang Wajib Ditampilkan:
Cucian Masuk Hari Ini
Total berat (Kg) dan potong cucian yang diterima hari ini
Sedang Diproses
Jumlah nota cucian yang sedang dalam antrean mesin cuci/setrika
Siap Ambil
Jumlah cucian yang sudah rapi terbungkus dan menunggu diambil pemilik
Omset Kasir Bulan Ini
Akumulasi uang masuk dari jasa cuci kiloan dan satuan
Komponen Visual Pendukung:
  • Grafik Visual: Tampilkan visualisasi tren transaksi (misal: grafik batang/garis 7 hari terakhir atau diagram distribusi kategori). Boleh menggunakan Chart.js, ApexCharts, SVG interaktif, atau visual bar CSS murni.
  • Tabel Riwayat Cepat: Daftar 5–10 transaksi paling baru beserta status singkatnya.
  • Tombol Aksi Cepat (Quick Action): Shortcut langsung untuk membuat transaksi baru tanpa harus membuka menu lain.
03

Modul Transaksi Inti (Core Business Transaction)

Pencatatan data dinamis master-detail dengan kalkulasi otomatis

Format Nomor Faktur / Invoice: NOT-LDY-YYYYMMDD-XXXX (Contoh: NOT-LDY-20261023-0056)
Nomor invoice harus dibuat otomatis oleh sistem saat form dibuka atau saat transaksi disimpan, dengan format teratur dan unik.
Alur & Elemen Input Form Transaksi:
  • •Identitas Pelanggan: Nama Pelanggan, No. WhatsApp, Alamat Singkat
  • •Pilihan Layanan Kiloan: Jenis Paket (Cuci Kering Lipat, Cuci Setrika Komplit, Setrika Saja), Kecepatan (Reguler / Express), Input Berat Timbangan (Kg, desimal misal 4.5 Kg)
  • •Rincian Cucian Satuan (Bisa digabung/opsional): Multi-baris item satuan (misal: Bedcover King, Jas Pria, Boneka Besar) x Qty
  • •Waktu & Estimasi: Tanggal Diterima, Estimasi Tanggal & Jam Selesai
  • •Catatan Khusus Pakaian: Misal ada noda luntur, pakaian robek bawaan, atau parfum khusus (Lavender/Sakura)
  • •Kalkulasi: Total Biaya Kiloan (Kg x Tarif) + Total Biaya Satuan, Diskon Member, Grand Total
  • •Metode & Status Bayar: Bayar Sekarang (Lunas) atau Bayar Nanti saat Ambil (Belum Lunas)
  • •Tracking Status Pengerjaan: Menunggu Antrean -> Sedang Dicuci -> Proses Pengeringan -> Proses Setrika -> Siap Diambil -> Selesai Diambil
Validasi & Integritas Data Wajib:
  • ✓Validasi bobot minimal cucian kiloan (misal minimal 3.0 Kg)
  • ✓Pembaruan status pengerjaan yang berurutan dan tercatat waktu log perubahannya
  • ✓Mencegah penyerahan cucian jika status pembayaran masih 'Belum Lunas' tanpa konfirmasi pelunasan
  • ✓Cetak Nota Resi Pengambilan Laundry lengkap dengan nomor nota, rincian barang, dan syarat ketentuan
04

Modul Laporan & Ekspor Data (Reporting & Analytics)

Penyajian rekap data historis, filter periode, dan pencetakan dokumen

Parameter Filter Dinamis:

Rentang tanggal transaksi, Pilihan Paket Layanan, dan Status Pelunasan (Lunas vs Piutang)

Ringkasan Statistik (Summary Bar):

Total Berat Cucian (Kg), Total Pendapatan Kiloan, Total Pendapatan Satuan, dan Jumlah Nota Piutang Belum Lunas

Struktur Kolom Tabel Laporan:

No. Nota, Tgl Masuk, Pelanggan, Paket, Berat/Item, Estimasi Jadi, Grand Total, Status Bayar, Status Cucian

Kemampuan Ekspor:

Ekspor ke format PDF nota rekap dan file spreadsheet Excel/CSV

Rekomendasi Skema Basis Data (Database Design)

Dapat disesuaikan atau dikembangkan sesuai arsitektur pilihan Anda

6 Tabel
Nama Tabel Deskripsi & Saran Kolom Minimal
users Data akun pengguna (id, username, password_hash, nama_lengkap, role [admin/kasir], created_at)
laundry_packages Master paket layanan kiloan (id, nama_paket, jenis_kecepatan, harga_per_kg, estimasi_jam)
unit_items Master item satuan (id, nama_item, harga_satuan)
customers Master pelanggan (id, nama, no_hp, alamat)
laundry_orders Header transaksi (id, no_nota, customer_id, package_id, berat_kg, total_kiloan, total_satuan, grand_total, status_bayar, status_pengerjaan, catatan_khusus, tanggal_masuk, estimasi_selesai, tanggal_diambil, created_at)
laundry_order_items Detail item satuan (id, order_id, unit_item_id, harga_satuan, kuantiti, subtotal)

Rubrik Penilaian & Pembobotan

Total Nilai Maksimal: 100 Poin

Fungsionalitas & Kesesuaian Alur Bisnis 40 Poin

Semua 4 pilar (Login, Dashboard, Transaksi Master-Detail, Laporan) berfungsi utuh tanpa error saat diuji.

Integritas Data & Keamanan 25 Poin

Hashing password, proteksi route, pencegahan duplikasi data, validasi stok/kapasitas, dan transaction commit/rollback.

Desain Antarmuka (UI) & Pengalaman Pengguna (UX) 20 Poin

Tampilan rapi, responsif di mobile & desktop, feedback interaktif (notifikasi sukses/gagal), dan kemudahan navigasi.

Kualitas Kode & Dokumentasi 15 Poin

Struktur folder terorganisir (MVC / Clean Architecture), penamaan variabel deskriptif, dan panduan instalasi README.md.

Ketentuan Pengumpulan & Deliverables

Peserta wajib menyerahkan hasil pengerjaan berupa:

  1. Source Code Proyek: Diunggah ke repositori GitHub / GitLab publik atau diarsipkan dalam format .zip.
  2. Database Dump / Seeder: File database.sql atau seeder/migration yang sudah memuat data awal (sample demo data) untuk akun login dan master data.
  3. Dokumen README.md: Berisi daftar tech stack yang digunakan, langkah instalasi step-by-step, serta kredensial akun uji coba (email/username & password untuk masing-masing role).
Kembali ke Daftar 10 Tema