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

Sistem Manajemen Antrean Pasien & Apotek Klinik

Pendaftaran Pasien, Billing Tindakan Medis, dan Penebusan Resep Obat

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

Klinik Pratama 'Sehat Mandiri' membutuhkan digitalisasi layanan pasien. Pasien sering mengeluhkan antrean yang simpang siur antara loket pendaftaran, ruang pemeriksaan dokter, dan loket apotek pengeluaran obat. Selain itu, petugas apotek sering kesulitan memverifikasi tarif tindakan medis dokter dan mengontrol stok obat yang rentan kedaluwarsa. Aplikasi web dibutuhkan untuk menyatukan pendaftaran pasien, pencatatan rekam medis ringkas/tindakan dokter, penyerahan resep obat, perhitungan kasir klinik, dan laporan kunjungan.

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 Klinik

Kelola data master dokter, daftar tindakan medis, master obat beserta harga & batch stok, kelola hak akses user, serta laporan pendapatan dan audit obat.

Role: Petugas Front Desk / Kasir Apotek

Pendaftaran pasien baru/lama, pembuatan tiket antrean, input billing tindakan dokter, input rincian obat resep, proses pembayaran pasien, dan cetak kuitansi berobat.

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:
Pasien Terdaftar Hari Ini
Jumlah nomor antrean pasien yang berobat pada hari berjalan
Selesai Pemeriksaan
Total resep & tindakan yang telah selesai ditangani dan ditebus
Pendapatan Klinik & Apotek
Total akumulasi biaya konsultasi dokter, tindakan, dan obat bulan ini
Stok Obat Kritis
Item obat dengan stok menipis yang memerlukan pengadaan ulang segera
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: MED-INV-YYYYMMDD-XXXX (Contoh: MED-INV-20261023-0089)
Nomor invoice harus dibuat otomatis oleh sistem saat form dibuka atau saat transaksi disimpan, dengan format teratur dan unik.
Alur & Elemen Input Form Transaksi:
  • •Pencarian / Input Pasien: No. Rekam Medis (RM), Nama Pasien, Tanggal Lahir, Jenis Kelamin, Alamat
  • •Pilihan Dokter Pemeriksa dan Keluhan Utama
  • •Biaya Konsultasi & Tindakan Medis: Pilihan tindakan (misal: Konsultasi Umum, Nebulizer, Jahit Luka, Cek Gula Darah)
  • •Rincian Resep Obat: Multi-baris obat (Nama Obat, Dosis / Aturan Pakai misal 3x1 setelah makan, Kuantiti), otomatis potong stok obat
  • •Kalkulasi Billing: Total Biaya Tindakan + Total Biaya Obat, Biaya Administrasi Klinik, Grand Total
  • •Metode Pembayaran: Tunai, QRIS, Asuransi / BPJS (jika berlaku)
  • •Status: Menunggu Obat, Siap Diambil, Lunas & Selesai
Validasi & Integritas Data Wajib:
  • ✓Pemeriksaan stok obat di apotek; sistem harus menolak jika kuantiti resep melebihi stok tersedia
  • ✓Validasi integritas data: pencatatan log transaksi pemotongan kartu stok obat
  • ✓Validasi nomor rekam medis unik untuk setiap pasien
  • ✓Cetak Kuitansi Pembayaran Resmi dan Lembar Aturan Pakai Obat (Etiket Obat)
04

Modul Laporan & Ekspor Data (Reporting & Analytics)

Penyajian rekap data historis, filter periode, dan pencetakan dokumen

Parameter Filter Dinamis:

Periode tanggal pendaftaran, Dokter pemeriksa, dan Kategori Layanan (Umum, Gigi, Laboratorium)

Ringkasan Statistik (Summary Bar):

Total Pasien Dilayani, Total Pendapatan Tindakan, Total Pendapatan Obat, dan Nilai Rata-rata Biaya Berobat per Pasien

Struktur Kolom Tabel Laporan:

No. Kwitansi, Tanggal, No. RM, Nama Pasien, Dokter, Total Tindakan, Total Obat, Grand Total, Status Bayar

Kemampuan Ekspor:

Ekspor ke format PDF kuitansi rekap dan lembar kerja 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 Data akun pengguna (id, username, password_hash, nama_lengkap, role [admin/kasir], created_at)
patients Master data pasien (id, no_rm, nama_pasien, nik, tanggal_lahir, jenis_kelamin, no_hp, alamat)
doctors Master tenaga medis (id, kode_dokter, nama_dokter, spesialisasi, tarif_konsultasi)
medicines Master obat-obatan (id, kode_obat, nama_obat, jenis_obat, harga_jual, stok, satuan, tanggal_kadaluarsa)
medical_bills Header billing transaksi (id, no_kwitansi, patient_id, doctor_id, biaya_konsultasi, total_tindakan, total_obat, biaya_admin, grand_total, metode_bayar, status, created_at)
medical_bill_actions Detail tindakan medis (id, medical_bill_id, nama_tindakan, biaya)
medical_bill_medicines Detail resep obat (id, medical_bill_id, medicine_id, dosis_aturan, kuantiti, harga_satuan, 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