Read this post in: de_DEen_USes_ESfr_FRhi_INjapl_PLpt_PTru_RUvizh_CNzh_TW

Studi Kasus Pengembangan Proyek TI: Pengembangan Agile Sistem Pemesanan Janji Temu Rumah Sakit Menggunakan Pemodelan UML

1. Pendahuluan

Judul Proyek: Pengembangan Agile Sistem Pemesanan Janji Temu Rumah Sakit Berbasis Cloud
Klien: CityCare Medical Group (jaringan rumah sakit multi-spesialis dengan 5 klinik)
Durasi Proyek: 6 bulan (3 sprint masing-masing 2 minggu)
Jumlah Anggota Tim: 6 anggota (Tim Scrum: Product Owner, Scrum Master, 2 Pengembang Frontend, 1 Pengembang Backend, 1 Insinyur QA)
Tumpukan Teknologi: React.js (Frontend), Node.js + Express (Backend), MongoDB (Database), AWS (Penempatan Cloud), JWT (Autentikasi), Docker (Kontainerisasi)
Metodologi: Agile (Scrum) dengan pemodelan UML untuk desain dan dokumentasi


2. Konteks Bisnis

CityCare Medical Group menghadapi meningkatnya ketidakpuasan pasien akibat jadwal janji temu yang tidak efisien. Pemesanan manual melalui telepon atau meja depan menyebabkan:

  • Waktu tunggu yang lama

  • Masalah pemesanan ganda

  • Ketidakmampuan untuk melihat ketersediaan dokter secara real-time

  • Tidak ada pengingat atau konfirmasi digital

Rumah sakit berupaya mengembangkan sistem pemesanan janji temu digital yang dapat diskalakan, aman, dan ramah pengguna untuk meningkatkan pengalaman pasien, mengurangi beban administratif, dan meningkatkan kepatuhan terhadap janji temu.


3. Pendekatan Agile (Kerangka Kerja Scrum)

Proyek ini mengikuti Scrum, dengan:

  • Durasi Sprint: 2 minggu

  • Rapat Harian: sinkronisasi 15 menit

  • Perencanaan Sprint, Tinjauan, Refleksi:Diadakan di awal dan akhir setiap sprint

  • Pemeliharaan Backlog Produk:Sesi penyempurnaan mingguan

Prinsip Agile Utama yang Diterapkan:

  • Fitur yang diprioritaskan berdasarkan nilai bisnis (misalnya, login pasien sebelum analitik lanjutan).

  • Pengiriman iteratif: MVP (Produk Minimum yang Layak) dikirimkan setelah Sprint 2.

  • Umpan balik terus-menerus dari pemangku kepentingan (dokter, perawat, pasien).

  • Kemampuan beradaptasi: Lingkup disesuaikan di tengah sprint berdasarkan umpan balik pengguna.


4. Pemodelan UML untuk Desain Sistem

UML (Bahasa Pemodelan Terpadu) digunakan sepanjang proyek untuk memvisualisasikan, menentukan, membangun, dan mendokumentasikan sistem.

4.1 Diagram Kasus Penggunaan (Pemain dan Interaksi Sistem)

Pemain:

  • Pasien

  • Dokter

  • Perawat/Admin

  • Sistem (peringatan otomatis)

Diagram Kasus Penggunaan:

@startuml
skinparam linetype ortho
skinparam defaultFontSize 14
skinparam defaultFontColor #333333

‘ Gaya pemain
skinparam actor {
BackgroundColor #E8F5E9
}

‘ Gaya kasus penggunaan
skinparam usecase {
BackgroundColor #BBDEFB
BorderColor #1976D2
ArrowColor #1976D2
}

arah kiri ke kanan

aktor “Pasienn (Utama)” sebagai pasien
aktor “Doktern (Utama)” sebagai dokter
aktor “Perawat/Adminn (Utama)” sebagai perawatAdmin
aktor “Sistemn (Sekunder)” sebagai sistem

persegi panjang “Sistem Rumah Sakit” {
usecase “Jadwalkan Janji Temu” sebagai UC1
usecase “Lihat Jadwal” sebagai UC2
usecase “Batalkan Janji Temu” sebagai UC3
usecase “Kirim Pemberitahuan” sebagai UC4
usecase “Kelola Dokter” sebagai UC5
usecase “Kelola Ketersediaan” sebagai UC6
usecase “Hasilkan Laporan” sebagai UC7
usecase “Terima Pengingat” sebagai UC8
}

‘ Asosiasi antara aktor utama dan use case
pasien -[#hitam]- UC1
pasien -[#hitam]- UC2
pasien -[#hitam]- UC3
pasien -[#hitam]- UC8

dokter -[#krimson]- UC2
dokter -[#krimson]- UC6

perawatAdmin -[#emas]- UC5
perawatAdmin -[#emas]- UC6
perawatAdmin -[#emas]- UC7

‘ Asosiasi antara use case dan aktor sekunder (Sistem)
UC4 -[#turkis gelap]- sistem
UC8 -[#turkis gelap]- sistem

‘ Hubungan include (perilaku bersama wajib)
UC1 …> UC6 : <<include>>
UC2 …> UC6 : <<include>>

‘ Hubungan perluasan (perilaku opsional)
UC1 <… UC8 : <<extend>>

@enduml

Tujuan: Mengidentifikasi fungsionalitas inti dan peran pengguna. Digunakan dalam Sprint 1 untuk prioritas backlog.


4.2 Diagram Kelas (Model Domain Inti)

Kelas Kunci:

  • Pasien (id, nama, email, telepon, kata sandi)

  • Dokter (id, nama, spesialisasi, ketersediaan)

  • Janji Temu (id, idPasien, idDokter, dateTime, status, catatan)

  • Pengguna (kelas dasar abstrak: id, email, kata sandi, peran)

  • Notifikasi (id, penerima, pesan, dikirimPada, jenis)

Asosiasi:

  • Satu Dokter memiliki banyak Janji Temu

  • Satu Pasien memiliki banyak Janji Temu

  • Janji Temu terhubung ke Notifikasi melalui kirimNotifikasi() metode

@startuml

skinparam {
‘ Gaya keseluruhan
roundcorner 8

‘ Warna
WarnaPanah #444444
WarnaFontPanah #444444
WarnaBatas #444444

‘ Gaya kelas
Kelas {
WarnaBatas #1A237E
WarnaLatarBelakang #E8EAF6
WarnaFont #1A237E
}

‘ Gaya antarmuka
Antarmuka {
WarnaBatas #A7C5C5
WarnaLatarBelakang #E0F2F1
WarnaFont #444444
}

‘ Gaya paket
Paket {
WarnaBatas #6D876D
WarnaLatarBelakang #E6F0E6
WarnaFont #3D553D
}
}

package “Sistem Manajemen Rumah Sakit” {
class “Pasien” {
-id : String
-nama : String
-email : String
-noTelepon : String
-kataSandi : String
}

class “Dokter” {
-id : String
-nama : String
-spesialisasi : String
-ketersediaan : String
}

class “JanjiTemu” {
-id : String
-idPasien : String
-idDokter : String
-waktuTanggal : Tanggal
-status : String
-catatan : String
}

class “Notifikasi” {
-id : String
-penerima : String
-pesan : String
-dikirimPada : DateTime
-jenis : String
}
}

‘ Hubungan

Pasien –|> Janji Temu : “memiliki banyak”
Dokter –|> Janji Temu : “memiliki banyak”
Janji Temu ..> Notifikasi : “mengirim notifikasi melalui sendNotification()”

sembunyikan lingkaran kelas
@enduml

Tujuan:Memandu desain skema basis data dan pengembangan API backend.


4.3 Diagram Urutan (Alur Pemesanan Janji Temu)

@startuml

skinparam sequenceParticipant underline
skinparam {
‘ Gaya keseluruhan
UkuranFont 14

‘ Warna
WarnaPanah #4A4A4A
WarnaFontPanah #4A4A4A
WarnaLatarBelakang #FFFFFF
WarnaBatasan #DEDEDE
WarnaFont #333333

‘ Gaya peserta
Peserta {
WarnaBatasan #0077B6
WarnaLatarBelakang #F0F8FF
WarnaFont #005691
}

‘ Gaya aktor
Aktor {
WarnaBatasan #6A057F
WarnaLatarBelakang #F5EEF8
WarnaHuruf #510363
}

‘ KhususUrutan
Urutan {
KetebalanPanah 2
WarnaBatasGarisHidup #444444
WarnaLatarBelakangGarisHidup #F7F7F7
WarnaBatasKotak #AAAAAA
WarnaLatarBelakangKotak #FFFFFF
WarnaHurufKotak #333333
}
}

aktor “Pasien” sebagai PAT
peserta “SistemJanjiTemu” sebagai AS
peserta “DatabasePengguna” sebagai UD
peserta “DatabaseKetersediaan” sebagai AD
peserta “LayananEmail” sebagai ES

PAT -> AS: JadwalkanJanjiTemu()
aktifkan PAT
aktifkan AS

AS -> UD: ValidasiPengguna
aktifkan UD

alt ValidasiPenggunaBerhasil
UD –> AS: PenggunaDikonfirmasi
nonaktifkan UD
AS -> AD: PeriksaKetersediaan
aktifkan AD

alt SlotTersedia
AD –> AS: SlotTersedia
nonaktifkan AD
AS -> ES: Kirim Email Konfirmasi
aktifkan ES
ES –> AS: Email dikirim
nonaktifkan ES
AS –> PAT: ID janji temu diterima
nonaktifkan AS
nonaktifkan PAT
selain itu Tidak Ada Slot Tersedia
AD –> AS: Tidak ada slot tersedia
nonaktifkan AD
AS –> PAT: Janji temu tidak dapat dipesan
nonaktifkan AS
nonaktifkan PAT
akhir
selain itu Validasi Pengguna Gagal
UD –> AS: Pengguna tidak ditemukan
nonaktifkan UD
AS –> PAT: Kredensial pengguna tidak valid
nonaktifkan AS
nonaktifkan PAT
akhir

@enduml

Tujuan: Memperjelas alur interaksi untuk perjalanan pengguna inti. Digunakan untuk menulis pengujian integrasi dan membimbing logika frontend.


4.4 Diagram Aktivitas (Alur Kerja Pembatalan Janji Temu)

 

 

@startuml
<style>
element {LebarMaksimum 150}

mulai {
Warna latar belakang #00695C
}

berhenti {
Warna latar belakang #C2185B
}

aktivitas {
Warna latar belakang #81D4FA
LebarMaksimum 150
}

berlian {
Warna latar belakang #FFB74D
LebarMaksimum 80
}

panah {
WarnaGaris #424242
WarnaFont #000000
}

lajur {
WarnaFont #000000
UkuranFont 14
}
</style>

|#F0F8FF|Pasien|
awal
:Masuk ke sistem;

|#F0F8FF|Pasien|
:Lihat janji temu mendatang;

|#F0F8FF|Pasien|
:Pilih janji temu untuk dibatalkan;

|#F0F8FF|Sistem|
:Periksa apakah pembatalan diperbolehkan (> 24 jam sebelum janji temu?);

jika (Ya) maka (Ya)
|#F0F8FF|Sistem|
:Membatalkan janji temu;
:Perbarui status menjadi “Dibatalkan”;

|#F0F8FF|Sistem|
:Kirim email pengembalian dana/pemberitahuan;

|#F0F8FF|Pasien|
:Menerima konfirmasi;

berhenti
selain itu (Tidak)
|#F0F8FF|Sistem|
:Tampilkan pesan: “Pembatalan tidak diperbolehkan dalam waktu 24 jam”;
berhenti
selesai jika
@enduml


Tujuan: Mengidentifikasi aturan bisnis dan keterbatasan. Memastikan kepatuhan terhadap kebijakan rumah sakit.


5. Implementasi Agile (Sprint demi Sprint)

Sprint 1: Pondasi MVP

  • Tujuan: Autentikasi inti dan pemesanan janji temu

  • Hasil yang Dicapai:

    • Pendaftaran pengguna/login (JWT)

    • Tampilan ketersediaan dokter

    • Formulir pemesanan janji temu dasar

    • Diagram UML selesai

  • Hasil: MVP dirilis kepada staf internal untuk pengujian.

Sprint 2: Fungsi yang Ditingkatkan

  • Tujuan: Tingkatkan kemudahan penggunaan dan tambahkan notifikasi

  • Hasil yang Dikirim:

    • Kalender ketersediaan secara real-time

    • Pengingat melalui email/SMS (24 jam sebelum janji temu)

    • Dasbor pasien dengan riwayat janji temu

  • Hasil: Umpan balik positif dari 90% pengujicoba. Perbaikan kecil pada antarmuka pengguna (UI/UX).

Sprint 3: Admin dan Pelaporan

  • Tujuan: Tambahkan alat administrasi

  • Hasil yang Dikirim:

    • Panel admin untuk menambahkan/mengedit dokter

    • Laporan janji temu mingguan (berdasarkan dokter, spesialisasi, tingkat ketidakhadiran)

    • Integrasi dengan CRM rumah sakit

  • Hasil: Sistem lengkap diimplementasikan ke AWS. Sesi pelatihan dilakukan.


6. Hasil dan Metrik

Metrik Sebelum Setelah
Waktu pemesanan rata-rata 15 menit 2 menit
Tingkat ketidakhadiran 30% 12%
Kepuasan pasien (survei) 3.2/5 4.7/5
Beban kerja admin (per minggu) 10 jam 3 jam
Waktu aktif sistem (3 bulan) T/A 99.9%

ROI:Mengurangi biaya operasional sebesar 40% dan meningkatkan retensi pasien sebesar 25%.


7. Tantangan & Pelajaran yang Dipelajari

  • Tantangan:Perluasan cakupan awal akibat permintaan fitur.

    • Solusi:Merevisi prioritas antrian menggunakan MoSCoW (Harus ada, Sebaiknya ada, Bisa ada, Tidak akan ada).

  • Tantangan:Pembaruan ketersediaan secara real-time menyebabkan kondisi persaingan.

    • Solusi:Menerapkan Redis untuk caching dan kunci mutex di backend.

  • Pelajaran yang Dipelajari:Diagram UML menghemat waktu pengembangan sekitar 30% dengan mengurangi ambiguitas dan pekerjaan ulang.


8. Kesimpulan

Dengan menggabungkan Metodologi Agile Scrum dengan pemodelan UML, Kelompok Medis CityCare berhasil meluncurkan sistem janji temu yang dapat diskalakan, aman, dan ramah pengguna hanya dalam 6 minggu pengembangan aktif (3 sprint). Penggunaan UML memastikan komunikasi yang jelas, desain yang akurat, dan implementasi yang lebih cepat. Sistem ini sejak itu telah diadopsi di semua 5 klinik, dengan rencana untuk memperluasnya ke aplikasi seluler dan integrasi telekesehatan.

9. Memanfaatkan Platform All-in-One Visual Paradigm dan AI untuk Mempercepat Pengembangan Agile

Untuk lebih meningkatkan efisiensi, menyederhanakan kolaborasi, dan mempercepat pengiriman dalam proyek Sistem Janji Temu CityCare, tim mengintegrasikan Platform Pemodelan UML All-in-One Visual Paradigm—solusi canggih berbasis cloud yang mengintegrasikan pemodelan, dokumentasi, kolaborasi, dan otomatisasi berbasis AI. Integrasi ini terbukti sangat penting dalam mengurangi beban desain, meningkatkan keselarasan tim, dan mempercepat tahap pengembangan kunci.

9.1 Bagaimana Visual Paradigm Menyederhanakan Pemodelan UML

Visual Paradigm menyediakan lingkungan lingkungan terpusat, real-time untuk membuat dan mengelola semua diagram UML yang digunakan sepanjang proyek:

  • Pembuatan Diagram yang Mulus:
    Tim menggunakan antarmuka seret-dan-lepas yang intuitif dari Visual Paradigm untuk menghasilkan Diagram Use Case, Class, Sequence, dan Activity dalam hitungan menit—mengurangi waktu menggambar manual hingga lebih dari 60% dibandingkan alat tradisional seperti Lucidchart atau sketsa tangan.

  • Penyelarasan Otomatis & Validasi:
    Aturan validasi bawaan secara otomatis menandai ketidaksesuaian (misalnya, asosiasi yang hilang, multiplisitas yang salah), memastikan akurasi model sejak hari pertama.

  • Kolaborasi Real-Time:
    Pengembang, desainer UX, dan analis bisnis bekerja sama secara real-time pada diagram bersama. Perubahan terlihat langsung di seluruh tim, menghilangkan konflik versi dan salah komunikasi.

9.2 Otomatisasi Berbasis AI: Dari Model ke Kode dan Dokumentasi

Visual Paradigm’s fitur berbasis AI secara signifikan mempercepat pengembangan dan mengurangi tugas berulang:

  • Generasi Kode Berbasis AI:
    Menggunakan “Hasilkan Kode dari UML” fitur, tim menghasilkan kode dasar backend (Node.js/Express) langsung dari diagram Class dan Sequence. Sebagai contoh:

    • Kelas Appointment model kelas dikonversi menjadi skema Mongoose dan kontroler CRUD yang sepenuhnya fungsional hanya dengan satu klik.

    • Ini menghemat sekitar 12 jam pengkodean manual selama proyek.

  • Generasi Dokumentasi Cerdas:
    AI secara otomatis menghasilkan dokumentasi proyek, termasuk:

    • spesifikasi API (format OpenAPI)

    • manual pengguna

    • ringkasan arsitektur sistem
      Dokumentasi ini dibagikan dengan pemangku kepentingan dan digunakan dalam sesi pelatihan.

  • Pelacakan Kebutuhan yang Ditingkatkan oleh AI:
    Visual Paradigm’s matriks pelacakan yang didorong oleh AI menghubungkan setiap kasus penggunaan langsung ke diagram kelas dan urutan yang sesuai, memastikan cakupan penuh terhadap persyaratan fungsional. Ini membantu tim QA memverifikasi semua fitur telah diuji.

9.3 Saran Desain Berbasis AI & Refactoring

  • Saran Cerdas untuk Peningkatan Desain:
    AI menganalisis Diagram Kelas dan menyarankan:

    • Refactoring Appointment untuk menyertakan durasi dan tipe (contoh: tindak lanjut, konsultasi).

    • Memperkenalkan kelas TimeSlot kelas untuk memperbaiki logika ketersediaan.
      Saran-saran ini diadopsi pada Sprint 2, meningkatkan skalabilitas sistem.

  • Dukungan Refactoring Otomatis:
    Ketika tim perlu mengganti nama Patient menjadi User untuk dukungan peran ganda di masa depan, Visual Paradigm’s mesin refactoring berbasis AI secara otomatis memperbarui semua diagram dan artefak kode yang tergantung, meminimalkan kesalahan manusia.

9.4 Integrasi dengan Alur Kerja Agile (Jira & CI/CD)

  • Sinkronisasi Jira yang Mulus:
    Visual Paradigm terintegrasi dengan Jira, secara otomatis mengonversi use case dan user stories menjadi tugas sprint. Ini menjaga backlog tetap selaras dengan model UML.

  • Integrasi Pipeline CI/CD:
    Kode yang dihasilkan dipush langsung ke repositori Git, memicu pengujian dan pengembangan otomatis melalui GitHub Actions—memastikan desain dan implementasi tetap selaras.


Ringkasan Dampak: Visual Paradigm + AI dalam Aksi

Manfaat Sebelum Visual Paradigm Setelah Visual Paradigm
Waktu untuk membuat diagram UML 2–3 jam per diagram 20–30 menit per diagram
Waktu untuk menghasilkan kode dari model Manual (4–6 jam) 10–15 menit (AI)
Waktu pembuatan dokumentasi 1 hari penuh 1 jam (dihasilkan oleh AI)
Siklus tinjauan desain dan umpan balik 3–5 hari 1–2 hari
Penyelarasan dan komunikasi tim Terputus Real-time, bersama

✅ Hasil:Proyek ini berhasil dikirim15% lebih cepatlebih cepat dari yang direncanakan, dengan40% lebih sedikit bug yang berkaitan dengan desaindanpelacakan penuhdari kebutuhan hingga kode.


Kesimpulan: Mengapa Visual Paradigm Merupakan Pemutar Balik Permainan

Visual Paradigm’s platform all-in-one dengan kemampuan AImengubah cara tim mendekati pemodelan UML—dari tugas dokumentasi statis menjadimesin pengembangan dinamis, cerdas, dan kolaboratif. Dengan mengotomatisasi tugas berulang, menegakkan konsistensi, dan menjembatani kesenjangan antara desain dan kode, ini memberdayakan tim Agile untuk fokus pada inovasi, bukan beban kerja.

Kutipan dari Pemilik Produk:
“Dengan Visual Paradigm, pertemuan desain kami menjadi lebih produktif. Kami tidak hanya menggambar diagram—kami membangun sistem secara real time, dengan AI membantu kami berpikir lebih jauh ke depan.”


Catatan Akhir:
Untuk tim yang mengadopsi Agile dan UML, Visual Paradigm bukan hanya alat pemodelan—ia adalah mitra strategis dalam membangun perangkat lunak yang lebih cerdas, lebih cepat, dan lebih andal.

Alat UML dan AI

Leave a Reply