A Diagram Mesin State UML, juga dikenal sebagai diagram status atau statechart, adalah alat pemodelan yang kuat yang digunakan untuk merepresentasikan lifecycle dan perilaku dinamis dari satu objek atau komponen sistem. Ini mencatat bagaimana suatu objek berpindah antara berbagai status sebagai respons terhadap kejadian, memungkinkan visualisasi yang jelas dari logika yang didorong oleh kejadian.

✅ Berbeda dengan diagram urutan, yang berfokus pada interaksi antara beberapa objek seiring waktu, diagram mesin status menekankan evolusi status internal dari satu entitas—yang membuatnya ideal untuk memodelkan sistem kompleks yang reaktif.
Memahami elemen dasar ini sangat penting untuk membuat diagram status yang akurat dan bermakna.
| Elemen | Deskripsi | Representasi Visual |
|---|---|---|
| Status | Suatu kondisi atau situasi selama masa hidup suatu objek di mana objek tersebut memenuhi batasan tertentu, melakukan tindakan, atau menunggu suatu kejadian. | Persegi panjang melengkung |
| Status Awal | Menandai mulai dari mesin keadaan. Lingkaran hitam yang diisi. | ● |
| Keadaan Akhir | Menunjukkan akhir dari proses. Lingkaran konsentris (titik hitam di dalam lingkaran). | ○● |
| Transisi | Panah berarah yang menunjukkan pergerakan dari satu keadaan ke keadaan lain. | ➔ |
| Kejadian | Kejadian yang memicu transisi. Bisa berupa: • Kejadian Sinyal (contoh: PembayaranDiterima)• Kejadian Panggilan (contoh: startHeating())• Kejadian Waktu (contoh: setelah 5 detik)• Kejadian Perubahan (contoh: suhu > 80°C) |
kejadian [penjaga] / tindakan |
| Kondisi Penjaga | Ekspresi Boolean yang harus benar agar transisi dapat terjadi. | [saldo > 0] |
| Tindakan / Masuk/Keluar |
|
masuk / print("Memasuki Idle") |
| Aktivitas | Perilaku berkelanjutan yang dapat dihentikan sementara yang dilakukan selama suatu keadaan. | lakukan / jalankan diagnosa() |
| Subkeadaan (Keadaan Komposit) | Suatu keadaan yang berisi keadaan bersarang—digunakan untuk mengelola kompleksitas. | Keadaan bersarang dalam kotak yang lebih besar |
| Keadaan Sejarah | Suatu keadaan semu yang mengingat subkeadaan aktif terakhir sebelum meninggalkan suatu keadaan komposit. Memungkinkan dilanjutkan. | H (dengan lingkaran di sekitarnya) |
| Cabang | Memisahkan aliran tunggal menjadi paralel bersamaan aliran. | • (bulatan terisi) |
| Gabung | Menggabungkan beberapa aliran bersamaan kembali menjadi satu. | • (bulatan terisi) |
📌 Catatan: Transisi sering diberi label sebagai:
kejadian [penjaga] / tindakan
Contoh:PembayaranDiterima [saldo >= 0] / updateBalance()
Pilih entitas yang akan dimodelkan (misalnya Kontroler Gerbang Tol, Sistem Pemanas, Bola Suara Pemungutan Suara).
Tentukan semua kondisi yang bermakna yang dapat dimiliki objek:
Idle
Kendaraan Terdeteksi
Memproses Pembayaran
Pembayaran Diterima
Gerbang Terbuka
Kesalahan / Kegagalan Sistem
Direset
Mulai dengan Keadaan Awal (●).
Akhir dengan Keadaan Akhir (○●).
Tanya: Apa yang menyebabkan objek berubah keadaan?
| Dari Keadaan | Peristiwa | Pengawas | Ke Keadaan | Aksi |
|---|---|---|---|---|
| Diam | Kendaraan Terdeteksi | — | Kendaraan Terdeteksi | Mulai penghitung waktu |
| Kendaraan Terdeteksi | Pembayaran Diterima | saldo ≥ 0 | Pembayaran Diterima | Buka gerbang |
| Kendaraan Terdeteksi | Waktu habis | — | Kesalahan | Catat kegagalan |
Gunakan masuk, keluar, dan lakukan tindakan:
masuk / log("Memasuki Status Pembayaran")
lakukan / validateCard()
keluar / closeGate()
Pecah status besar menjadi substatus:
Status Pembayaran → Memvalidasi, Memproses, Dikonfirmasi
Gunakan status sejarah (H) untuk kembali ke substatus aktif terakhir setelah gangguan.
Gunakan Fork (•) untuk membagi menjadi aliran paralel:
Aliran satu: Proses pembayaran
Lainnya: Catat data kendaraan
Gabungkan dengan Gabungkan (•) untuk melanjutkan satu jalur.
| Sistem | Status | Peristiwa Kunci | Kasus Penggunaan |
|---|---|---|---|
| Gerbang Tol Otomatis | Idle → Kendaraan Terdeteksi → Pembayaran Diterima → Gerbang Terbuka → Reset | KendaraanTerdeteksi, PembayaranDiterima, Waktu Habis |
Kelola kendaraan, cegah penipuan |
| Sistem Pemanas | Idle → Pemanasan → Gagal | suhu < ambang batas, suhu > 90°C, KegagalanKipas |
Pemantauan keselamatan |
| Platform Pemungutan Suara Digital | Draf → Dikirim → Diverifikasi → Dihitung → Selesai | submitVote(), verifyIdentity(), timeLimitExceeded() |
Pemungutan suara yang aman dan dapat diaudit |
| Proses Lelang | Buka → Penawaran → Tutup → Pemrosesan Pembayaran | tawaranDitempatkan, akhirLelang, pembayaranDiverifikasi |
Penanganan tawaran dan pembayaran secara bersamaan |
| MGUK (Generator Motor Kinetik Formula 1) | Siaga → Menghasilkan Kembali → Pengisian → Reset | tingkatEnergi > 50%, sinyalResetDiterima |
Pemulihan energi berkinerja tinggi |
🔍 Diagram ini membantu insinyur dan desainermemprediksi kasus ekstrem, mengonfirmasi logika, danmengomunikasikan perilaku sistem dengan jelas di seluruh tim.
Model ini mencakup sub-state yang diminta untuk validasi plat dan pembuatan struk, serta alur hukuman dan reset.
@startuml
[*] --> Idle
Idle --> InRange : Kendaraan Terdeteksi
state InRange {
[*] --> PlateValidation
PlateValidation --> PlateRead : Berhasil
PlateValidation --> InvalidPlate : Penanganan Kesalahan
}
InRange --> PaymentReceived : Pembayaran Berhasil
state PaymentReceived {
[*] --> ReceiptGeneration
}
PaymentReceived --> Idle : Jalur Dibersihkan
InRange --> NoPayment : Pembayaran Gagal
NoPayment --> Penalty : Terapkan Hukuman
Penalty --> Idle : Reset Sistem
@endum
Contoh ini berfokus pada perilaku yang bergantung pada status yang dipicu oleh peristiwa suhu (Terlalu Panas/Terlalu Dingin) dan penanganan kegagalan.
@startuml
[*] --> Idle
Idle --> Heating : Terlalu Dingin
Idle --> Cooling : Terlalu Panas
state Cooling {
[*] --> Startup
Startup --> Ready : Kipas/Kompresor Berjalan
Ready --> Running
}
Heating --> Idle : OK
Cooling --> Idle : OK
Heating --> Failure : Peristiwa Kegagalan
Cooling --> Failure : Peristiwa Kegagalan
Failure --> Idle : Kegagalan Dihapus [5]
@endum
@startuml
[*] --> Idle
Idle --> Heating : Terlalu Dingin
Idle --> Cooling : Terlalu Panas
state Cooling {
[*] --> Startup
Startup --> Ready : Kipas/Kompresor Berjalan
Ready --> Running
}
Heating --> Idle : OK
Cooling --> Idle : OK
Heating --> Failure : Peristiwa Kegagalan
Cooling --> Failure : Peristiwa Kegagalan
Failure --> Idle : Kegagalan Dihapus
@endum
Model ini mencerminkan logika transisi khusus yang disebutkan dalam sumber, di mana status kesalahan menyebabkan reset sebelum kembali ke status idle.
@startuml
[*] --> Ready
Ready --> Error : Kesalahan Terdeteksi
Error --> Reset : Mulai Reset
Reset --> Idle : Reset Selesai
Ready --> Idle : Perintah Siaga
Idle --> Ready : Aktifkan
@endum
Diagram ini menggunakan Fork dan Join node untuk menunjukkan aktivitas sub-paralel: memproses penawaran dan mengotorisasi batas pembayaran.
@startuml
[*] --> EnteringAuction
state EnteringAuction {
state fork_node <<fork>>
[*] --> fork_node
fork_node --> ProcessingBid
fork_node --> AuthorizingPayment
state join_node <<join>>
ProcessingBid --> join_node
AuthorizingPayment --> join_node
join_node --> [*]
}
EnteringAuction --> Canceled : Keluar Pengguna
EnteringAuction --> Rejected : Penawaran/Pembayaran Tidak Valid
EnteringAuction --> Success : Lelang Ditutup
@endum
Berdasarkan niat untuk menangkap siklus pemungutan suara dari awal hingga pengajuan akhir.
@startuml
[*] --> Initiation
Initiation --> IdentityVerified : Pemeriksaan Kredensial
IdentityVerified --> CastingVote : Akses Diberikan
CastingVote --> Reviewing : Pemilihan Dilakukan
Reviewing --> Submitted : Konfirmasi Suara
Submitted --> [*] : Proses Selesai
Reviewing --> CastingVote : Edit Pemilihan
IdentityVerified --> Rejected : Verifikasi Gagal
@endum
Sumber menekankan bahwa menulis kode di atas memerlukan pengetahuan tentang sintaks khusus dan pemrograman manual, yang memiliki kurva pembelajaran yang lebih curam. Visual Paradigm AI menyederhanakan ini dengan memungkinkan Anda hanya mengetik: “Buat mesin status untuk sistem tol dengan validasi plat dan status hukuman” dan membuat perangkat lunak menghasilkan tampilan visual dan logika di baliknya secara instan untuk Anda.
The Pembuat Diagram Visual Paradigm AI mengubah pemodelan tradisional dengan mengubah bahasa alami menjadi diagram mesin status kelas profesional—cepat, akurat, dan cerdas.
Tidak perlu lagi menyeret dan menyelaraskan elemen secara manual.
AI menghasilkan sebuah diagram yang telah tersusun dengan baik dan terstruktur dengan baik dari sebuah permintaan sederhana dalam hitungan detik.
💬 Contoh Permintaan:
“Buat diagram mesin status untuk sistem gerbang tol yang mendeteksi kendaraan, memproses pembayaran, dan menangani kesalahan.”
Jelaskan sistem Anda dalam bahasa Inggris sederhana—tidak perlu belajar sintaks seperti PlantUML.
AI memahami maksud dan membangun struktur yang benar.
✅ Permintaan:
“Model sistem pemanas yang mulai memanaskan saat suhu turun di bawah 18°C, berhenti pada 22°C, dan memasuki kegagalan jika kipas gagal.”
→ AI menghasilkan:Idle → Memanaskan → Kegagalan, dengan peristiwa dan pengaman yang sesuai.
Terlibat dalam sebuah percakapan untuk menyempurnakan model:
“Ubah nama ‘Error’ menjadi ‘Kegagalan Sistem’”
“Tambahkan status reset antara error dan idle”
“Masukkan pengaman timeout setelah 10 detik dalam ‘Memproses Pembayaran’”
🔄 AI memperbarui diagram secara real-time berdasarkan umpan balik.
AI memastikan:
Notasi UML yang benar: Pemicu, pembatas, tindakan masuk/keluar diformat dengan benar.
Deteksi kesalahan: Menandai status yang tidak dapat diakses, transisi yang bertentangan, atau peristiwa yang hilang.
Tata letak optimal: Secara otomatis mengatur status untuk kemudahan pembacaan dan kejelasan visual.
Setelah puas:
Ekspor atauimpor langsung ke dalam Visual Paradigm Professional Edition.
Gunakan untuk:
Dokumentasi desain sistem
Presentasi untuk pemangku kepentingan
Generasi kode (melalui model UML)
Pengembangan berbasis model (MDD)
| Praktik | Mengapa Ini Penting |
|---|---|
| Jaga agar status bersifat atomik dan bermakna | Hindari status yang terlalu kompleks atau samar seperti “Sesuatu Terjadi” |
| Gunakan status komposit secara bijak | Pecah perilaku yang kompleks (misalnya, “Pemrosesan Pembayaran” → “Memvalidasi”, “Mentransfer”) |
| Selalu tentukan pembatas untuk transisi penting | Cegah perubahan status yang tidak diinginkan (misalnya, hindari penagihan jika saldo < 0) |
| Minimalkan status yang tidak dapat dijangkau | Pastikan setiap status dapat dijangkau dari status awal |
| Gunakan status sejarah untuk proses yang terganggu | Tingkatkan kenyamanan penggunaan (misalnya, lanjutkan pemungutan suara setelah waktu habis) |
| Batasi konkurensi dengan Fork/Join | Hindari membuat terlalu rumit dengan terlalu banyak alur paralel |
| Manfaat | Deskripsi |
|---|---|
| Kejelasan | Memvisualisasikan perilaku kompleks secara intuitif |
| Keprediktabilitas | Menunjukkan bagaimana peristiwa memicu perubahan status |
| Pencegahan Kesalahan | Mengungkap kasus-kasus tepi dan transisi yang tidak valid sejak dini |
| Komunikasi | Memungkinkan pengembang, penguji, dan pemangku kepentingan untuk menyelaraskan pemahaman tentang perilaku sistem |
| Dasar untuk Kode | Dapat digunakan untuk menghasilkan mesin status dalam kode (misalnya, dalam C++, Python, Java) |
Spesifikasi UML 2.5 – Standar resmi untuk mesin status
Visual Paradigm – Alat pemodelan UML lengkap dengan pembuatan diagram berbasis AI
PlantUML – Pemetaan berbasis teks (untuk pengguna tingkat lanjut)
Enterprise Architect, StarUML, Lucidchart – Platform pemodelan alternatif
🔄 Diagram mesin keadaan bukan hanya bantuan visual—ini adalah kontrak desain yang mendefinisikan bagaimana sistem Anda harus berperilaku dalam berbagai kondisi.
Dengan Pembuat Diagram AI Visual Paradigm, membuat, menyempurnakan, dan menerapkan diagram ini tidak pernah semudah ini. Baik Anda memodelkan sistem tol, platform pemungutan suara, atau komponen balap berkinerja tinggi, kini Anda dapat mengubah ide menjadi diagram yang akurat dan profesional—lebih cepat dan lebih cerdas dari sebelumnya.
✅ Mulai memodelkan hari ini:
🌐 Coba Pembuat Diagram AI Visual Paradigm
🧠 Jelaskan sistem Anda dalam bahasa Inggris sederhana — dapatkan diagram mesin keadaan UML yang sempurna dalam hitungan detik.
📌 Kiat Pro: Simpan diagram yang dihasilkan AI sebagai templat untuk penggunaan di masa depan—percepat desain pada sistem serupa seperti gerbang pembayaran, perangkat IoT, atau mesin alur kerja.
📘 Kelola seni mesin keadaan. Bangun sistem yang lebih cerdas. Berkomunikasi dengan kejelasan.
— Panduan Mesin Keadaan UML Anda, Didukung oleh AI