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

Sistem Work Order & Servis Bengkel Otomotif

Manajemen Antrean Servis Kendaraan, Penggantian Suku Cadang, dan Billing

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

Bengkel 'Mediatama Otomotif Perkasa' melayani perbaikan dan perawatan berkala kendaraan roda dua dan roda empat. Proses operasional saat ini sering menemui kendala: riwayat servis pelanggan sering hilang, penagihan biaya jasa dan sparepart sering tidak sinkron dengan stok fisik di gudang, serta pelanggan sering komplain karena tidak tahu estimasi biaya dan status pengerjaan kendaraannya. Dibutuhkan aplikasi web untuk mengelola alur work order servis mulai dari pendaftaran kendaraan, pencatatan jasa dan sparepart oleh mekanik, kalkulasi tagihan kasir, hingga laporan performa servis.

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: Kepala Bengkel / Admin

Kelola master data jasa servis dan katalog sparepart, penugasan mekanik, kelola data pengguna, serta akses laporan finansial dan performa kerja bengkel.

Role: Front Desk / Kasir

Pendaftaran kendaraan masuk, penerbitan Surat Perintah Kerja (SPK), input jasa dan sparepart yang diganti, proses pembayaran pelanggan, cetak faktur invoice, dan update status penyerahan kendaraan.

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:
Unit Dikerjakan Hari Ini
Jumlah kendaraan yang sedang dalam proses penanganan mekanik
Servis Selesai
Total kendaraan yang perbaikannya telah rampung dan lunas hari ini
Total Pendapatan Bengkel
Akumulasi biaya jasa servis dan penjualan suku cadang bulan ini
Sparepart Menipis
Jumlah item suku cadang yang stok gudangnya di bawah batas aman
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: WO-SRV-YYYYMMDD-XXXX (Contoh: WO-SRV-20261023-0105)
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, No. Telepon/WA, Alamat
  • •Data Kendaraan: No. Polisi (Plat Nomor), Merk/Model Kendaraan, Tahun, Odometer (KM Kendaraan), Keluhan / Gejala Kerusakan
  • •Penugasan Mekanik penanggung jawab
  • •Rincian Jasa Servis: Multi-baris pilihan jasa (misal: Tune Up, Ganti Oli, Spooring, Servis Rem) beserta tarif jasa
  • •Rincian Sparepart: Multi-baris suku cadang yang diganti (misal: Oli Mesin, Kampas Rem, Busi) x Kuantiti, otomatis mengurangi stok
  • •Kalkulasi: Total Biaya Jasa + Total Biaya Sparepart, Diskon Membership jika ada, Grand Total Biaya
  • •Status Pengerjaan: Menunggu Antrean, Sedang Dikerjakan, Selesai Dikerjakan, Kendaraan Diambil & Lunas
Validasi & Integritas Data Wajib:
  • ✓Pengecekan stok sparepart saat ditambahkan ke rincian work order
  • ✓Mencegah penutupan status menjadi 'Lunas' tanpa pencatatan metode pembayaran yang sah
  • ✓Pencegahan duplikasi plat nomor pada status antrean aktif bersamaan
  • ✓Cetak lembar Work Order untuk mekanik dan Faktur Pembayaran untuk pelanggan
04

Modul Laporan & Ekspor Data (Reporting & Analytics)

Penyajian rekap data historis, filter periode, dan pencetakan dokumen

Parameter Filter Dinamis:

Rentang tanggal pengerjaan, Mekanik yang bertugas, dan Jenis Kendaraan

Ringkasan Statistik (Summary Bar):

Total Omset Jasa, Total Penjualan Sparepart, Rata-rata Biaya Servis per Unit, dan Total Kendaraan Dilayani

Struktur Kolom Tabel Laporan:

No. SPK, Tanggal, No. Polisi, Pemilik, Mekanik, Total Jasa, Total Sparepart, Grand Total, Status Pembayaran

Kemampuan Ekspor:

Ekspor ke format PDF resmi berkepala surat dan berkas Excel/CSV

Rekomendasi Skema Basis Data (Database Design)

Dapat disesuaikan atau dikembangkan sesuai arsitektur pilihan Anda

7 Tabel
Nama Tabel Deskripsi & Saran Kolom Minimal
users Pengguna aplikasi (id, username, password_hash, nama_lengkap, role [admin/kasir], created_at)
mechanics Data mekanik (id, kode_mekanik, nama_mekanik, spesialisasi, status_aktif)
service_types Master jenis jasa servis (id, kode_jasa, nama_jasa, biaya_standar, estimasi_menit)
spareparts Master suku cadang (id, kode_part, nama_part, harga_beli, harga_jual, stok, satuan)
work_orders Header transaksi servis (id, no_spk, no_polisi, nama_pelanggan, no_telp, km_odometer, mekanik_id, keluhan, total_jasa, total_sparepart, grand_total, status_pengerjaan, status_bayar, created_at)
work_order_services Detail jasa (id, work_order_id, service_type_id, biaya_jasa, catatan)
work_order_parts Detail sparepart (id, work_order_id, sparepart_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