![A 16:10 hero banner styled graphic featuring a clean, modern illustration. The background is subtle and uses glowing accents, circuit board traces, and digital symbols with blues, greens, and white colors. Vertical columns define main participants like "Card Reader", "ATM Interface", "Bank Server", and "Cash Dispenser" across the top. Arrows with numbered steps (1, 2, 3...) indicate the sequential flow of communication, beginning with a "Customer" actor on the left. Key sections highlight the main decision structures using "alt [PIN Invalid] / [PIN Valid]" and "alt [Insufficient Funds] / [Account Approved]", clearly detailing both successful and alternative paths of interaction. No product logos are included. At the very top center, the main title in clean fonts reads "BUILDING A ROBUST ATM SEQUENCE DIAGRAM" with a subtitle "STEP-BY-STEP PLANTUML GUIDE".](https://www.vpascode.com/wp-content/uploads/2026/08/atm-sequence-diagram-plantuml-guide.jpg)
Merancang transaksi keuangan sistemik membutuhkan kejelasan mutlak. Baik Anda merancang mesin perbankan, mendokumentasikan alur kerja warisan, atau melatih tim teknik, sebuah diagram urutan PlantUML adalah salah satu cara paling efektif untuk memvisualisasikan interaksi yang diurutkan menurut waktu antar komponen sistem.
Dalam tutorial ini, saya akan membimbing Anda melalui proses berpikir saya secara tepat untuk membangun sebuah Diagram Urutan Penarikan Tunai ATM dari awal menggunakan PlantUML. Kami akan membahas pengaturan peserta, alur pesan, dan percabangan bersarang kondisional untuk penanganan kesalahan—semuanya menggunakan VPasCode, alat gratis kami alat diagram sebagai kode dan editor online editor PlantUML.

Langkah 1: Menyiapkan Judul dan Penomoran Langkah Otomatis
Saya selalu memulai diagram PlantUML saya dengan menetapkan konfigurasi global yang jelas. Saat memodelkan operasi keuangan seperti penarikan tunai ATM, melacak urutan eksekusi sangat penting bagi pengembang maupun auditor.
Untuk mencapai hal ini, saya mulai dengan @startuml tag, menentukan judul yang deskriptif, dan mengaktifkan autonumberfitur.
@startuml
title Diagram Urutan Penarikan Tunai ATM
autonumber
Mengapa menggunakan autonumber?Tanpa penomoran otomatis, para peninjau harus melacak secara manual garis urutan untuk memahami urutannya. Memaksa penomoran berurutan secara otomatis mengindeks setiap permintaan dan respons, membuat referensi silang selama tinjauan arsitektur menjadi benar-benar mudah.
Langkah 2: Menentukan Aktor dan Peserta Sistem
Berikutnya, saya mengidentifikasi entitas-entitas yang berbeda yang berpartisipasi dalam transaksi ini. Saya ingin memisahkan aktor manusia dari komponen backend dan subsistem perangkat keras.
Alih-alih membiarkan PlantUML mendeklarasikan peserta secara implisit saat pesan digambar, saya mendefinisikannya secara eksplisit di bagian atas. Ini menjamin mereka muncul dalam urutan logis, kiri ke kanan, yang mencerminkan batas arsitektural mereka:
aktor Pelanggan
peserta "Antarmuka ATM" sebagai ATM
peserta "Pembaca Kartu" sebagai Pembaca
peserta "Server Bank" sebagai Bank
peserta "Pengeluar Uang Tunai" sebagai Pengeluar
Alasan Desain:
aktor Pelanggan: Mewakili pengguna manusia yang memulai tindakan.peserta ... sebagai Alias: Memberikan alias pendek sepertiATM,Pembaca, danBankmembuat bagian lain dari skrip tetap bersih dan mudah dibaca tanpa mengulang string tampilan yang panjang.- Dengan menempatkan
Pembacadi antaraPelanggandanAntarmuka ATM, saya secara akurat mencerminkan urutan fisik masuknya kartu sebelum interaksi antarmuka perangkat lunak.
Langkah 3: Memodelkan Alur Otorisasi Awal
Dengan peserta yang telah dideklarasikan, saya mulai memetakan inisialisasi jalur utama: memasukkan kartu, membaca data, meminta PIN, dan menghubungi server bank pusat.
Pelanggan -> Pembaca: Masukkan Kartu ATM
Pembaca -> ATM: Baca Detail Kartu
ATM -> Pelanggan: Permintaan PIN
Pelanggan -> ATM: Masukkan PIN
ATM -> Bank: Verifikasi Kartu & PIN
Perhatikan bagaimana pesan sinkron menggunakan panah padat (->). Perangkat keras kartu memicu perangkat lunak ATM, yang meminta pengguna, menangkap input, dan meneruskan kredensial otentikasi secara aman ke Bank server.
Langkah 4: Menata Percabangan Otorisasi dengan blok altBlok
Sistem dunia nyata bisa gagal, dan diagram urutan harus secara eksplisit menyampaikan kondisi kesalahan. Setelah ATM meminta verifikasi dari bank, dua hasil dapat terjadi: otorisasi gagal atau berhasil.
Untuk mewakili logika kondisional dalam PlantUML, saya menggunakan alt / else / end blok:
alt PIN Salah
Bank --> ATM: Otentikasi Gagal
ATM -> Pelanggan: Tampilkan Pesan "PIN Salah"
ATM -> Pembaca: Keluarkan Kartu
Pembaca --> Pelanggan: Kembalikan Kartu
else PIN Benar
Bank --> ATM: Otentikasi Berhasil
ATM -> Pelanggan: Permintaan Pemilihan Transaksi & Jumlah
Pelanggan -> ATM: Pilih "Penarikan" & Masukkan Jumlah
ATM -> Bank: Permintaan Izin Penarikan (Jumlah)
...
end
Teknik Utama yang Digunakan:
- Panah balik titik-titik (
-->) menandakan pesan respons asinkron kembali ke komponen pemanggil. - Label blok yang jelas seperti
[PIN Salah]dan[PIN Benar]langsung memberi tahu pengembang perangkat lunak bagaimana aliran pengecualian berakhir (misalnya, menampilkan pesan kesalahan, mengeluarkan kartu, dan mengembalikan perangkat keras).
Langkah 5: Menyisipkan Logika untuk Otorisasi Akun dan Pemberian Uang Tunai
Setelah otentikasi diverifikasi, pengguna meminta penarikan. Namun, bank harus memverifikasi saldo akun dan batas harian. Untuk mewakili validasi sekunder ini, saya menyisipkan blok kedua alt blok di dalam PIN Benar cabang.
Jika dana tidak mencukupi, transaksi berakhir dengan aman. Jika disetujui, bank mengurangi saldo akun, memicu pemberi uang tunai, menampilkan uang tunai, mengeluarkan kartu, dan menawarkan struk cetak opsional.
alt Dana Tidak Cukup / Batas Harian Melebihi
Bank --> ATM: Transaksi Ditolak
ATM -> Pelanggan: Tampilkan Pesan Kesalahan
ATM -> Pembaca: Keluarkan Kartu
Pembaca --> Pelanggan: Kembalikan Kartu
else Akun Disetujui
Bank -> Bank: Kurangi Saldo Akun
Bank --> ATM: Transaksi Disetujui
ATM -> Pemberi Uang Tunai: Berikan Uang Tunai
Pemberi Uang Tunai --> ATM: Uang Tunai Siap
ATM -> Pelanggan: Tampilkan Uang Tunai
Pelanggan -> ATM: Ambil Uang Tunai
ATM -> Pembaca: Keluarkan Kartu
Pembaca --> Pelanggan: Kembalikan Kartu
ATM -> Pelanggan: Cetak Struk (Opsional)
end
Kiat Pro:Perhatikan pemanggilan internal Bank -> Bank: Kurangi Saldo Akun. Panah yang mengarah kembali pada dirinya sendiri di PlantUML sangat ideal untuk menyoroti pembaruan status backend internal yang tidak melibatkan pesan jaringan eksternal.
Skrip PlantUML Lengkap
PlantUML favorit Anda untuk mengedit atau merender grafik vektor:editor PlantUML gratis untuk mengedit atau merender grafik vektor:
@startuml
title Diagram Urutan Penarikan Tunai ATM
autonumber
aktor Pelanggan
partisipan "Antarmuka ATM" sebagai ATM
partisipan "Pembaca Kartu" sebagai Pembaca
partisipan "Server Bank" sebagai Bank
partisipan "Pengeluar Uang Tunai" sebagai Pengeluar
Pelanggan -> Pembaca: Masukkan Kartu ATM
Pembaca -> ATM: Baca Detail Kartu
ATM -> Pelanggan: Permintaan PIN
Pelanggan -> ATM: Masukkan PIN
ATM -> Bank: Verifikasi Kartu & PIN
alt PIN Salah
Bank --> ATM: Otentikasi Gagal
ATM -> Pelanggan: Tampilkan Pesan "PIN Salah"
ATM -> Pembaca: Keluarkan Kartu
Pembaca --> Pelanggan: Kembalikan Kartu
else PIN Benar
Bank --> ATM: Otentikasi Berhasil
ATM -> Pelanggan: Permintaan Pemilihan Transaksi & Jumlah
Pelanggan -> ATM: Pilih "Penarikan" & Masukkan Jumlah
ATM -> Bank: Permintaan Otorisasi Penarikan (Jumlah)
alt Dana Tidak Cukup / Batas Harian Melebihi
Bank --> ATM: Transaksi Ditolak
ATM -> Pelanggan: Tampilkan Pesan Kesalahan
ATM -> Pembaca: Keluarkan Kartu
Pembaca --> Pelanggan: Kembalikan Kartu
else Akun Disetujui
Bank -> Bank: Kurangi Saldo Akun
Bank --> ATM: Transaksi Disetujui
ATM -> Pengeluar: Keluarkan Uang Tunai
Pengeluar --> ATM: Uang Siap
ATM -> Pelanggan: Tampilkan Uang Tunai
Pelanggan -> ATM: Ambil Uang Tunai
ATM -> Pembaca: Keluarkan Kartu
Pembaca --> Pelanggan: Kembalikan Kartu
ATM -> Pelanggan: Cetak Kwitansi (Opsional)
end
end
@enduml 
Mengapa Merender Diagram Urutan Anda dengan VPasCode?
Membuat diagram kompleks menggunakan kode seharusnya tidak memerlukan konfigurasi lingkungan lokal yang membosankan atau kompilasi manual melalui baris perintah.VPasCode oleh Visual Paradigm membawa rendering instan dan bantuan AI yang kuat langsung ke browser Anda:
- Deteksi Format Otomatis:Tempel skrip PlantUML, Mermaid, Graphviz, atau D2—VPasCode langsung mengenali format DSL dan merender secara real time.
- Perbaikan Kesalahan Kode AI:Tertahan karena bug sintaks? Klik “Perbaiki oleh AI” untuk melihat perbandingan sampingan yang transparan dan secara otomatis memperbaiki kesalahan sintaks.
- Terjemahan AI Multi Bahasa:Terjemahkan label dan pesan diagram dengan mudah untuk tim teknis internasional dalam hitungan detik.
- Ekspor Resolusi Tinggi:Unduh grafik vektor SVG yang bersih dan dapat diskalakan atau gambar PNG resolusi tinggi untuk dokumentasi teknis dan slide presentasi.



