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

Sistem Manifest & Resi Ekspedisi Pengiriman Paket

Penerbitan Nomor Resi Logistik, Perhitungan Ongkir Berdasarkan Berat & Zona, dan Pelacakan Status

KODE: MED-WEB-10
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

Perusahaan logistik lokal 'Kilat Express Logistics' melayani pengiriman barang kilat dan dokumen antar kota dan kabupaten. Selama ini petugas agen cabang sering salah menghitung tarif ongkos kirim karena tabel tarif masih dicari manual di buku tebal, nomor resi pengiriman sering tertukar, dan pelanggan terus-menerus menelpon ke kantor hanya untuk menanyakan di mana posisi barang mereka. Dibutuhkan aplikasi web untuk menghitung ongkir otomatis berdasarkan berat/volume dan kota tujuan, menerbitkan nomor resi resmi berstandar barcode, memperbarui tracking manifest barang dari gudang cabang hingga diantar kurir ke tangan penerima, dan merekapitulasi omset agen.

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 / Kepala Cabang Ekspedisi

Akses menyeluruh kelola master wilayah tujuan & tarif per kilogram, kelola armada kurir, konfigurasi biaya asuransi, kelola user, dan akses laporan pendapatan logistik.

Role: Petugas Counter Agen & Dispatcher

Penerimaan paket pelanggan (timbang barang, input pengirim & penerima), pilih jenis layanan, cetak resi pengiriman (thermal/A4), pembaruan status manifest perjalanan paket (Drop Point -> Manifested -> Transit -> Out for Delivery -> Delivered).

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:
Paket Diterima Hari Ini
Jumlah paket yang masuk dan diproses di konter cabang pada tanggal berjalan
Paket Dalam Pengantaran
Total kiriman yang sedang dibawa kurir menuju alamat tujuan
Paket Berhasil Terkirim
Paket yang telah sukses diserahkan dan ditandatangani penerima hari ini
Total Pendapatan Ongkir
Akumulasi nilai ongkos kirim dan biaya asuransi pengiriman bulan ini
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: RESI-KLX-YYYYMMDD-XXXX (Contoh: RESI-KLX-20261023-0492)
Nomor invoice harus dibuat otomatis oleh sistem saat form dibuka atau saat transaksi disimpan, dengan format teratur dan unik.
Alur & Elemen Input Form Transaksi:
  • •Data Pengirim: Nama Pengirim, No. HP, Alamat Asal, Kota Asal
  • •Data Penerima: Nama Penerima, No. HP, Alamat Lengkap Tujuan, Kota/Wilayah Tujuan
  • •Spesifikasi Paket: Deskripsi Isi Barang (Dokumen, Pakaian, Makanan, Elektronik), Berat Fisik (Kg, desimal misal 2.3 Kg), Dimensi P x L x T (untuk perhitungan berat volumetrik)
  • •Pilihan Layanan: Reguler (2-3 hari), Express Next Day (1 hari), atau Kargo (Paket Besar > 10 Kg)
  • •Opsi Asuransi & Packing Kayu (Opsional tambahan)
  • •Kalkulasi Otomatis: Tarif Wilayah Tujuan x Berat Terhitung + Biaya Asuransi/Packing, Grand Total Ongkir
  • •Status Pembayaran: Dibayar Tunai oleh Pengirim (Prepaid) atau Bayar di Tempat oleh Penerima (COD)
  • •Alur Pelacakan Status: 1. Paket Diterima di Agen (Drop Point) -> 2. Manifest Keluar Gudang Cabang (Manifested) -> 3. Dalam Perjalanan Antar Kota (In Transit) -> 4. Sedang Dibawa Kurir (Out for Delivery) -> 5. Sukses Diterima (Delivered - dengan nama penerima)
Validasi & Integritas Data Wajib:
  • ✓Validasi kota tujuan terdaftar dalam tabel tarif pengiriman resmi
  • ✓Perhitungan pembulatan berat otomatis (contoh: toleransi 1.3 Kg dibulatkan ke atas menjadi 2 Kg sesuai aturan ekspedisi)
  • ✓Pencegahan update status mundur (alur manifest harus maju dan mencatat timestamp waktu & kota posisi)
  • ✓Cetak Label Resi Pengiriman dengan format standar logistik (Barcode nomor resi, kotak alamat pengirim & penerima tebal, keterangan COD/Non-COD)
04

Modul Laporan & Ekspor Data (Reporting & Analytics)

Penyajian rekap data historis, filter periode, dan pencetakan dokumen

Parameter Filter Dinamis:

Rentang tanggal pengiriman, Kota Tujuan, Layanan (Reguler / Express / Cargo), dan Status Pengantaran

Ringkasan Statistik (Summary Bar):

Total Volume Tonase Paket (Kg), Total Pendapatan Ongkos Kirim, Persentase Ketepatan Waktu Pengantaran (SLA), dan Jumlah Paket Berhasil

Struktur Kolom Tabel Laporan:

No. Resi, Tanggal, Pengirim, Penerima, Kota Tujuan, Layanan, Berat, Total Ongkir, Metode Bayar, Status

Kemampuan Ekspor:

Ekspor ke format PDF manifest rekap resmi dan berkas spreadsheet Excel/CSV

Rekomendasi Skema Basis Data (Database Design)

Dapat disesuaikan atau dikembangkan sesuai arsitektur pilihan Anda

4 Tabel
Nama Tabel Deskripsi & Saran Kolom Minimal
users Pengguna aplikasi (id, username, password_hash, nama_lengkap, role [admin/counter_staff], created_at)
destinations Master rute & tarif (id, kota_asal, kota_tujuan, tarif_reguler_per_kg, tarif_express_per_kg, estimasi_hari)
shipments Header transaksi resi (id, no_resi, nama_pengirim, telp_pengirim, nama_penerima, telp_penerima, alamat_tujuan, destination_id, jenis_layanan, berat_kg, deskripsi_barang, total_ongkir, metode_bayar [prepaid/cod], status_pengiriman, nama_penerima_aktual, tgl_diterima, created_at)
tracking_logs Riwayat manifest perjalanan (id, shipment_id, status_tahapan, lokasi_kota, keterangan, waktu_log, user_id)

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