Studi kasus ini mengeksplorasi desain dan implementasi dari sebuah sistem penarikan ATM yang realistis dan tahan terhadap kegagalan menggunakan Diagram Urutan UML. Tujuannya adalah memodelkan interaksi yang aman dan langkah demi langkah antara pengguna, mesin ATM, dan Sistem Bank — mencakup tiga skenario yang berbeda:
otentikasi berhasil dan dana cukup
kartu tidak valid
kartu valid tetapi dana tidak mencukupi
Kami menggunakan PlantUML untuk menghasilkan diagram urutan yang bersih, mudah dibaca, dan sesuai dengan praktik terbaik yang menunjukkan manajemen aktivasi yang tepat manajemen aktivasi, penggunaan kembali lifeline, dan alur kontrol yang benar.
Lifeline merepresentasikan peserta (misalnya, Pengguna, ATM, Sistem Bank).
Batang aktivasi menunjukkan kapan suatu peserta sedang secara aktif melakukan operasi.
Deaktivasi harus terjadi di akhir setiap cabang untuk mencegah aktivasi yang terpisah.
alt, selain itu, akhiralt digunakan untuk mendefinisikan alur alternatif berdasarkan kondisi.
Setiap selain itu sesuai dengan kondisi tertentu (misalnya, kartu tidak valid, dana tidak mencukupi).
Hanya satu cabang yang dieksekusi, memastikan eksklusivitas saling.
Pesan dikirim secara berurutan: Pengguna → ATM → Sistem Bank.
Balasan dikembalikan dalam urutan terbalik, mempertahankan logika interaksi real-time.
Lifeline adalah tidak diaktifkan kembali dalam cabang yang berbeda.
Mereka adalah diaktifkan sekali pada awal interaksi dan dinonaktifkan hanya sekali, pada akhir seluruh skenario.
Ini menghindari aktivasi bersarang dan lifeline ganda, meningkatkan keterbacaan dan keakuratan.
| Praktik Terbaik | Cara Penerapannya |
|---|---|
| Hindari aktivasi yang terpisah | Semua aktifkan/nonaktifkan pasangan seimbang |
| Gunakan kembali lifeline | USR, ATM, BS diaktifkan sekali dan dinonaktifkan hanya di akhir |
| Alur pesan yang jelas | Setiap skenario memiliki jalur yang logis dan berurutan |
| Tidak ada reaktivasi yang berulang | Tidak aktifkan di selain itu cabang |
Kartu valid.
Pengguna memasukkan jumlah penarikan ≤ saldo.
ATM meminta uang dari Sistem Bank.
Bank mengonfirmasi dana → mencairkan uang.
Pengguna menerima uang.
Kartu gagal otentikasi.
ATM segera menolak kartu.
Tidak ada pemrosesan lebih lanjut.
Kartu valid.
Tetapi jumlah yang diminta > saldo yang tersedia.
Bank menolak transaksi.
ATM memberi tahu pengguna.
@startuml
skinparam sequence
skinparam {
FontSize 14
ArrowColor #4A4A4A
ArrowFontColor #4A4A4A
BackgroundColor #FFFFFF
BorderColor #DEDEDE
FontColor #333333
Participant {
BorderColor #0077B6
BackgroundColor #F0F8FF
FontColor #005691
}
Actor {
BorderColor #6A057F
BackgroundColor #F5EEF8
FontColor #510363
}
Sequence {
ArrowThickness 2
LifeLineBorderColor #444444
LifeLineBackgroundColor #F7F7F7
BoxBorderColor #AAAAAA
BoxBackgroundColor #FFFFFF
BoxFontColor #333333
}
}
actor "Pengguna" as USR
participant "ATM" as ATM
participant "Sistem Bank" as BS
USR -> ATM: Masukkan kartu
activate USR
activate ATM
ATM -> BS: Otentikasi kartu
activate BS
alt Otentikasi Berhasil
BS --> ATM: Otentikasi berhasil
deactivate BS
ATM -> USR: Masukkan jumlah penarikan
ATM -> BS: Permintaan jumlah uang
activate BS
BS --> ATM: Uang dikeluarkan
deactivate BS
ATM --> USR: Uang berhasil dikeluarkan
deactivate ATM
deactivate USR
else Kartu Tidak Valid
BS --> ATM: Otentikasi gagal
deactivate BS
ATM --> USR: Kartu tidak valid
deactivate ATM
deactivate USR
else Saldo Tidak Cukup
BS --> ATM: Saldo tidak mencukupi
deactivate BS
ATM --> USR: Saldo tidak cukup
deactivate ATM
deactivate USR
end
@enduml

| Langkah | Aksi | Peserta | Pesan |
|---|---|---|---|
| 1 | Pengguna memasukkan kartu | USR → ATM | Masukkan kartu |
| 2 | ATM mengirim kartu ke Bank | ATM → BS | Otentikasi kartu |
| 3 | Bank memeriksa validitas kartu | BS | → |
| 4 | Cabang 1: Sukses | BS → ATM | Otentikasi OK |
| 5 | ATM meminta jumlah | ATM → USR | Masukkan jumlah penarikan |
| 6 | ATM meminta uang tunai | ATM → BS | Permintaan jumlah uang tunai |
| 7 | Bank memeriksa saldo & mencairkan | BS → ATM | Uang tunai dikeluarkan |
| 8 | ATM mengonfirmasi keberhasilan | ATM → USR | Uang tunai berhasil dikeluarkan |
| 9 | Cabang 2: Kartu Tidak Valid | BS → ATM | Otentikasi gagal |
| 10 | ATM menolak kartu | ATM → PENGUNJUNG | Kartu tidak valid |
| 11 | Cabang 3: Dana Tidak Cukup | BS → ATM | Saldo tidak mencukupi |
| 12 | ATM memberi tahu pengguna | ATM → PENGUNJUNG | Dana tidak mencukupi |
✅ Catatan: Hanya satu cabang dieksekusi per transaksi. Semua
nonaktifkanpernyataan terjadi hanya sekali, pada akhir setiap skenario.
| Fitur | Manfaat |
|---|---|
| Aktivasi tunggal per jalur utama | Mencegah kerumitan visual dan menjamin konsistensi |
| Logika cabang yang jelas | Mudah diperluas (misalnya, tambahkan verifikasi PIN, batas harian) |
| Penanganan kesalahan tertanam | Kegagalan ditangani dengan baik tanpa membuat sistem gagal |
| Memenuhi standar UML | Berlaku untuk dokumentasi, pengujian, dan generasi kode |
| Mendukung pengujian otomatis | Setiap skenario dapat disimulasikan secara independen |
Pola ini banyak digunakan dalam:
Sistem perbankan
Gerbang pembayaran (misalnya, Stripe, PayPal)
Interaksi perangkat IoT (misalnya, kunci pintar, mesin penjual otomatis)
Komunikasi mikroservis (misalnya, pesanan → persediaan → pembayaran)
Studi kasus ini menunjukkan bagaimana Diagram Urutan UML dengan PlantUML dapat memodelkan sistem dunia nyata yang kompleks dengan alur kontrol yang jelas, penanganan kegagalan, dan pola aktivasi/deaktivasi yang benar.
Dengan mengikuti praktik terbaik — seperti menggunakan kembali lifeline, menghindari aktivasi bersarang, dan menyeimbangkan deaktivasi — pengembang dapat membuat dapat dipelihara, mudah dibaca, dan dapat diuji model yang mencerminkan perilaku sistem yang sebenarnya.
🛠️ Poin Utama: Diagram urutan yang dirancang dengan baik bukan hanya visualisasi — tetapi merupakandenah untuk desain perangkat lunak yang dapat diandalkan.
Instal PlantUML (melalui VS Code, IntelliJ, atau secara online di https://www.planttext.com).
Tempelkan kode ke dalam file .puml file.
Hasilkan diagram menggunakan:
java -jar plantuml.jar atm-withdrawal.puml
Output: Diagram yang bersih dan profesional PNG/SVG diagram yang menunjukkan ketiga skenario.
| Aspek | Rincian |
|---|---|
| Sistem | Penarikan ATM dengan Otorisasi Bank |
| Peserta | Pengguna, ATM, Sistem Bank |
| Skenario | 3 (Berhasil, Kartu Tidak Valid, Dana Tidak Cukup) |
| Alat | PlantUML |
| Praktik Terbaik | Lifeline yang digunakan kembali, tanpa aktivasi yang terpisah |
| Kasus Penggunaan | Perbankan dunia nyata, mikroservis, sistem aman |
🏁 Catatan Akhir: Desain dengan kejelasan. Kode dengan keyakinan. Uji dengan presisi.
Mari kita jelajahi bagaimana Generator Diagram AI dan Chatbot Visual Paradigm dapat melengkapi dan meningkatkan proses diagram urutan penarikan ATM yang baru saja kita bahas — mengubah pemodelan manual menjadi cerdas, dipercepat, dan kolaboratif alur kerja.
Diagram urutan UML yang kita bangun adalah akurat, terstruktur dengan baik, dan mengikuti praktik terbaik — tetapi membuatnya secara manual memerlukan:
Pemahaman mendalam tentang semantik UML
Perhatian seksama terhadap lifeline, aktivasi, dan percabangan
Waktu untuk menulis dan mengoreksi kode PlantUML
Masuk Generator Diagram AI dan Chatbot Visual Paradigm — sebuah alat generasi berikutnya yang mengubah deskripsi bahasa alami menjadi diagram profesional, siap produksi, mengotomatisasi dan meningkatkan seluruh siklus pemodelan.
Anda menulis kode PlantUML secara manual.
Harus mengingat sintaks: aktifkan, nonaktifkan, alt, selain, akhir, dll.
Risiko kesalahan (misalnya, kehilangan nonaktifkan, urutan pesan yang salah).
Masukan (Bahasa Alami):
“Modelkan pengguna yang memasukkan kartu ke ATM. ATM mengirim kartu ke Sistem Bank untuk otentikasi. Jika otentikasi berhasil, ATM meminta jumlah penarikan dan memeriksa saldo. Jika saldo cukup, uang dicairkan. Jika kartu tidak valid atau saldo tidak mencukupi, pengguna mendapatkan pesan kesalahan yang sesuai.”
Secara otomatis menghasilkan diagram urutan UML yang benar dan lengkap diformat.
Berlaku praktik terbaik: lifeline yang digunakan kembali, aktivasi/deaktivasi yang tepat, cabang yang bersih.
Keluaran berbagai format: PNG, SVG, XML, bahkan model UML yang dapat diedit (di dalam IDE Visual Paradigm).
✅ Manfaat:Mengurangi waktu pemodelan dari 15+ menit menjadi di bawah 1 menit, dengan kesalahan sintaks nol.
Anda ingin menambahkan langkah verifikasi PIN sebelum otentikasi kartu.
Pengguna: “Tambahkan langkah verifikasi PIN setelah kartu dimasukkan. ATM harus meminta PIN sebelum mengirim kartu ke Sistem Bank.”
Respons Chatbot AI:
Memodifikasi diagram: menyisipkan ATM -> USR: Masukkan PIN dan ATM -> BS: Otentikasi kartu + PIN
Memperbarui alt blok: sekarang memeriksa PIN valid vs PIN tidak valid
Mempertahankan alur aktivasi yang benar
Menampilkan diagram yang diperbarui secara real time
✅ Manfaat: Tidak perlu mempelajari ulang sintaks — cukup chat dan perbaiki model Anda.
AI Visual Paradigm memahami semantik UML, sehingga ia:
Menandai urutan pesan yang salah
Mencegah aktivasi yang terpisah
Memastikan aktifkan/nonaktifkan pasangan seimbang
Menyarankan perbaikan (misalnya, “Pertimbangkan menggabungkan cabang kesalahan untuk kejelasan”)
✅ Hasil: Anda mendapatkan pengendalian kualitas otomatis — seperti pelatih UML secara real time.
Setelah diagram selesai dibuat:
Visual Paradigm menghasilkan kerangka kode (Java, Python, C#, dll.) dari diagram urutan.
Dapat menghasilkan kasus uji berdasarkan setiap skenario (sukses, kartu tidak valid, dana tidak mencukupi).
Mendukung rekayasa balik: Anda dapat memulai dari kode dan menghasilkan diagram.
✅ Kasus Penggunaan:
Tim Pengembang: Menggunakan diagram yang dihasilkan AI untuk memahami perilaku sistem.
Tim QA: Mendapatkan skenario uji secara otomatis dari diagram.
Arsitek: Memastikan desain sesuai dengan aturan bisnis.
Manajer Produk: Menggambarkan kebutuhan dalam bahasa Inggris sederhana → AI menghasilkan diagram.
Pengembang: Meninjau, menyempurnakan, dan menghasilkan kode.
Pengujicoba: Menggunakan diagram untuk memvalidasi cakupan pengujian.
🔄 Putaran Umpan Balik:AI belajar dari perubahan tim dan meningkatkan saran di masa depan.
| Langkah | Manual (PlantUML) | Visual Paradigm AI (Ditingkatkan) |
|---|---|---|
| 1. Jelaskan sistem | Tulis kode PlantUML | Ketik bahasa alami |
| 2. Hasilkan diagram | Membutuhkan pengetahuan sintaks | AI menghasilkan secara instan |
| 3. Tambahkan logika baru | Edit kode secara manual | Obrolan: “Tambahkan verifikasi PIN” → AI memperbarui diagram |
| 4. Validasi kebenaran | Pemeriksaan diri | AI menandai masalah (misalnya, tidak ada nonaktifkan) |
| 5. Hasilkan kode | Pemetaan manual | Hasilkan kerangka kode secara otomatis |
| Bagikan dengan tim | Bagikan PNG/SVG | Ekspor, kolaborasi, kontrol versi |
✅ AI unggul dalam kecepatan, akurasi, aksesibilitas, dan kolaborasi.
Petunjuk untuk Chatbot AI Visual Paradigm:
“Tambahkan batas 3 percobaan untuk entry PIN. Jika pengguna gagal 3 kali, ATM akan menyimpan kartu. Tampilkan ini dalam diagram urutan.”
Respons AI:
Menambahkan loop:alt percobaan PIN < 3danselain itu percobaan PIN ≥ 3
MenambahkanATM -> USR: Jumlah percobaan maksimum tercapai
ATM -> USR: Kartu disimpan
Kelola siklus aktivasi dengan benar
Memvisualisasikan loop denganloopnotasi
🎨 Hasil:Sebuahkuat, sesuai dunia nyatamodel sistem ATM — dalam hitungan detik.
| Fitur | Manual (PlantUML) | AI Visual Paradigm |
|---|---|---|
| Masukan | Kode | Bahasa alami |
| Generasi diagram | Manual | Instan |
| Deteksi kesalahan | Diperiksa sendiri | Didukung AI |
| Penyempurnaan | Edit kode | Edit berbasis obrolan |
| Generasi kode | Tidak termasuk | Ya (Java, Python, dll.) |
| Kolaborasi | Terbatas | Real-time, ramah tim |
| Kurva pembelajaran | Tinggi | Rendah (tidak perlu sintaks) |
| Skalabilitas | Sedang | Tinggi (dapat diskalakan ke sistem yang kompleks) |
Pembuat Diagram dan Chatbot AI dari Visual Paradigm mengubah diagram urutan penarikan ATM dari hasil kerja statis dan manual menjadi mesin desain sistem yang dinamis, cerdas, dan kolaboratif.
Anda sedang merancang alur kerja bisnis yang kompleks (misalnya perbankan, e-commerce).
Anda ingin mempercepat desain, mengurangi kesalahan, dan memungkinkan pemangku kepentingan non-teknis untuk berpartisipasi.
Anda sedang membangun sistem yang harus menangani berbagai mode kegagalan (seperti contoh ATM kami).
Gunakan Visual Paradigm AI untuk menghasilkan diagram.
Kemudian ekspor kode PlantUML untuk digunakan dalam dokumentasi, alur CI/CD, atau integrasi dengan alat lain.
✅ Anda mendapatkan Kecepatan AI + portabilitas PlantUML.
Pergi ke https://www.visual-paradigm.com
Buka Pembuat Diagram AI atau Chatbot AI.
Tempelkan petunjuk ini:
“Modelkan pengguna memasukkan kartu ke ATM. ATM mengirim kartu ke Sistem Bank untuk otentikasi. Jika otentikasi berhasil, ATM meminta jumlah penarikan dan memeriksa saldo. Jika saldo cukup, uang tunai dikeluarkan. Jika kartu tidak valid atau saldo tidak mencukupi, pengguna mendapatkan pesan kesalahan yang sesuai. Gunakan diagram urutan UML.”
Saksikan keajaiban terjadi dalam hitungan detik.
AI tidak menggantikan UML — melainkan meningkatkannya.
Dengan Alat AI Visual Paradigm, Anda dapat:
Desain lebih cepat
Berkolaborasi lebih baik
Kode lebih cerdas
Skala dengan percaya diri
The Sistem penarikan ATM tidak hanya menjadi diagram — menjadi sebuah model sistem yang hidup dan cerdas yang berkembang bersama tim Anda.
🧠 Bayangkan ini sebagai: UML bertemu AI, didukung oleh logika dunia nyata.
🚀 Siap mengaktifkan model Anda secara maksimal?
👉 Gunakan AI Visual Paradigm — dan ubah ide berikut Anda menjadi diagram dalam hitungan detik.