Diagram mesin status adalah perilaku yang menentukan urutan status yang dikunjungi objek selama masa hidupnya sebagai respons terhadap peristiwa, bersama dengan responsnya terhadap peristiwa tersebut.
Status
Sebuah status adalah kondisi selama kehidupan sebuah objek di mana ia memenuhi beberapa kondisi, melakukan beberapa aktivitas, atau menunggu beberapa peristiwa eksternal.
Contoh:

Karakteristik Status
- Status mewakili kondisi objek pada titik tertentu dalam waktu.
- Objek (atau Sistem) dapat dilihat sebagai bergerak dari status ke status.
- Sebuah titik dalam siklus hidup elemen model yang memenuhi beberapa kondisi, di mana beberapa tindakan tertentu sedang dilakukan atau di mana beberapa peristiwa sedang ditunggu.
Gambar di bawah menunjukkan deskripsi rinci tentang sebuah status. Status tersebut diperluas dengan tindakan internal (lakukan, bantu). Berbeda dengan tindakan lainnya, tindakan ini dapat dihentikan. Jika ”batalkan” terjadi, tindakan lakukan atau bantu dihentikan. Tindakan internal dilakukan setelah bagian ”masuk” dan dibatalkan ketika status ditinggalkan.

Status Awal dan Akhir
- Status awal dari diagram mesin status, yang dikenal sebagai pseudo-status awal, ditunjukkan dengan lingkaran padat. Sebuah transisi dari status ini akan menunjukkan status nyata pertama.
- Status akhir dari diagram mesin status ditunjukkan sebagai lingkaran konsentris. Mesin status loop terbuka mewakili objek yang mungkin berhenti sebelum sistem berhenti, sementara diagram mesin status loop tertutup tidak memiliki status akhir; jika demikian, maka objek tersebut hidup sampai seluruh sistem berhenti.
Contoh:

Peristiwa
Sebuah peristiwa adalah spesifikasi dari kejadian yang signifikan. Untuk mesin status, sebuah peristiwa adalah terjadinya stimulus yang dapat memicu transisi status.
Transisi
Sebuah transisi adalah hubungan antara dua status yang menunjukkan bahwa sebuah objek dalam status pertama akan, ketika sekumpulan peristiwa dan kondisi tertentu terpenuhi, melakukan tindakan tertentu dan memasuki status kedua.
Sebuah transisi memiliki: Komponen Transisi yang mencakup (1) status sumber (2) pemicu peristiwa (3) sebuah tindakan (4) status target.
Transisi Diri
Sebuah transisi diri adalah transisi yang sumber dan status targetnya sama.
Tindakan
Sebuah tindakan adalah komputasi yang dapat dieksekusi, atomik (dengan referensi ke mesin status). Tindakan dapat mencakup operasi, penciptaan atau penghancuran objek lain, atau pengiriman sinyal ke objek lain (peristiwa).
Contoh Perpustakaan
Gambar di bawah menunjukkan diagram mesin status yang sederhana. Komponen utama dari diagram semacam itu adalah:
- Status: contoh ini memiliki dua status: ”Dipinjam” dan ”Di rak”.
- Status awal: ini adalah status di mana sistem dimulai.
- Transisi: transisi menggambarkan perubahan status yang mungkin. Diagram ini memiliki dua transisi: dari ”Dipinjam” ke ”Di rak” dan sebaliknya.
- Peristiwa: peristiwa diberi label pada transisi. Mereka mewakili peristiwa yang dilakukan pada sebuah transisi. Ketika berpindah dari status ”Dipinjam” ke status ”Di rak”, peristiwa ”returned()” dilakukan.
Tindakan adalah modifikasi dari variabel status. Dalam contoh di bawah, tindakan ditentukan pada transisi. Ketika transisi dari ”Di rak” ke ”Dipinjam” diambil, variabel status buku berkurang.

Tindakan dapat ditentukan pada transisi, tetapi juga di status. Dalam hal ini, seseorang dapat menentukan apakah tindakan harus dilakukan saat memasuki atau meninggalkan status. Gambar di bawah menunjukkan opsi-opsi ini.
- Opsi pertama menunjukkan spesifikasi tindakan ketika transisi diambil. Tindakan dilakukan pada perubahan status.
- Opsi kedua menunjukkan spesifikasi tindakan dalam sebuah status. Kata kunci ”masuk” menunjukkan bahwa tindakan harus dilakukan saat status dimasuki.
- Akhirnya, opsi ketiga menunjukkan bagaimana cara menentukan bahwa tindakan diambil saat meninggalkan status. Perhatikan kata kunci ”keluar”.

Notasi Diagram Mesin Status Sederhana

Diagram Mesin Status — Konsep Lanjutan
Keterbatasan
Dimungkinkan untuk menambahkan batasan pada transisi. Pertimbangkan Gambar di bawah. Batasan ”[bukan salinan terakhir]” dan ”[salinan terakhir]” digunakan untuk membedakan dua transisi dengan peristiwa ”copyBorrowed()”. Semantiknya adalah bahwa sebuah transisi diaktifkan ketika batasan tersebut benar.

Substatus
Sebuah status sederhana adalah yang tidak memiliki substruktur. Sebuah status yang memiliki substatus (status bersarang) disebut status komposit. Substatus dapat bersarang hingga tingkat mana pun. Mesin status bersarang dapat memiliki paling banyak satu status awal dan satu status akhir. Substatus digunakan untuk menyederhanakan mesin status datar yang kompleks dengan menunjukkan bahwa beberapa status hanya mungkin dalam konteks tertentu (status yang membungkus).
Contoh Substatus — Pemanas

Diagram Mesin Status sering digunakan untuk menghasilkan kasus pengujian, berikut adalah daftar ide pengujian yang mungkin:
- Status diam menerima peristiwa Terlalu Panas
- Status diam menerima peristiwa Terlalu Dingin
- Status Pendinginan/Pemula menerima peristiwa Kompresor Berjalan
- Status Pendinginan/Siap menerima peristiwa Kipas Berjalan
- Status Pending/Dingin menerima acara OK
- Status Pending/Dingin menerima acara Kegagalan
- Status Kegagalan menerima acara Kegagalan Dihapus
- Status Pemanasan menerima acara OK
- Status Pemanasan menerima acara Kegagalan
Status Sejarah
Kecuali ditentukan lain, ketika transisi memasuki status komposit, tindakan dari mesin status bersarang mulai lagi dari status awal (kecuali transisi menargetkan substatus secara langsung). Status sejarah memungkinkan mesin status untuk masuk kembali ke substatus terakhir yang aktif sebelum meninggalkan status komposit. Contoh penggunaan status sejarah disajikan pada gambar di bawah.

Status Bersamaan
Seperti yang disebutkan di atas, status dalam diagram mesin status dapat bersarang. Status terkait dapat dikelompokkan bersama menjadi satu status komposit. Menyusun status di dalam yang lain diperlukan ketika suatu aktivitas melibatkan sub-aktivitas bersamaan. Diagram mesin status berikut memodelkan lelang dengan dua substatus bersamaan: memproses tawaran dan mengotorisasi batas pembayaran.
Contoh Diagram Mesin Status Bersamaan — Proses Lelang
Dalam contoh ini, mesin status yang pertama kali memasuki Lelang memerlukan percabangan di awal menjadi dua utas awal yang terpisah. Setiap substatus memiliki status keluar untuk menandai akhir utas. Kecuali ada keluar yang tidak normal (Dibatalkan atau Ditolak), keluar dari status komposit terjadi ketika kedua substatus telah keluar.

Tautan Terkait
Contoh Diagram Status Buat Sendiri dengan Visual Paradigm Online
- Contoh dan template Diagram Mesin Status gratis yang dapat diedit dalam perangkat lunak Diagram Mesin Status online: Visual Paradigm Online.
- Gunakan template sebagai titik awal untuk membuat Diagram Mesin Status Anda sendiri.








Alat Perangkat Lunak UML Gratis
Anda telah belajar apa itu Diagram Mesin Status dan bagaimana cara menggambar Diagram Mesin Status. Saatnya untuk menggambar Diagram Mesin Status Anda sendiri. Dapatkan Visual Paradigm Community Edition, perangkat lunak UML gratis, dan buat Diagram Mesin Status Anda sendiri dengan alat Diagram Mesin Status gratis. Ini mudah digunakan dan intuitif.
This post is also available in Deutsch, English, Español, فارسی, Français, 日本語, Polski, Portuguese, Ру́сский, Việt Nam, 简体中文 and 繁體中文.