Diagram state, atau diagram mesin state, merupakan komponen yang kuat dari Bahasa Pemodelan Terpadu (UML) digunakan untuk memodelkan perilaku dinamis sistem. Mereka menggambarkan bagaimana suatu objek atau sistem berpindah antara keadaan yang berbeda sebagai respons terhadap peristiwa, sehingga sangat ideal untuk sistem reaktif seperti Mesin Penebus Otomatis Bank (ATM). Studi kasus ini mengeksplorasi bagaimana diagram state dapat merepresentasikan perilaku ATM, sistem dunia nyata yang umum dengan keadaan yang jelas dan transisi yang didorong oleh peristiwa. Dengan memeriksa siklus hidup ATM, kita akan menyoroti konsep-konsep utama diagram state, termasuk keadaan, transisi, tindakan, keadaan komposit, dan transisi tanpa pemicu. Studi kasus ini juga menunjukkan bagaimana alat seperti Visual Paradigm dapat mempercepat pembuatan diagram semacam ini.
Berikut adalah diagram mesin state yang dibuat dengan editor pemodelan diagram mesin state Visual Paradigm:

Diagram state menangkap perilaku sistem dengan mendefinisikan:
Keadaan: Kondisi atau situasi tertentu selama siklus hidup sistem (misalnya, “Tidak Aktif” atau “Melayani Pelanggan”).
Transisi: Perpindahan antar keadaan yang dipicu oleh peristiwa (misalnya, penyisipan kartu).
Tindakan: Kegiatan yang dilakukan saat memasuki, keluar dari, atau berpindah antar keadaan (misalnya, membaca kartu).
Keadaan Komposit: Keadaan yang berisi sub-keadaan untuk pemodelan hierarkis (misalnya, “Melayani Pelanggan” dengan sub-keadaan seperti “Autentikasi Pelanggan”).
Keadaan Awal dan Akhir: Titik awal dan titik akhir potensial dari perilaku sistem.
Transisi Tanpa Pemicu: Transisi otomatis tanpa peristiwa eksplisit (misalnya, berpindah dari keadaan uji diri ke keadaan tidak aktif).
Konsep-konsep ini sangat penting untuk memodelkan sistem di mana perilaku bergantung pada keadaan saat ini dan rangsangan eksternal, seperti ATM.
ATM Bank memfasilitasi transaksi pelanggan seperti penarikan tunai, setoran, dan pengecekan saldo. Perilakunya didorong oleh peristiwa, dengan keadaan-keadaan yang berbeda yang berubah berdasarkan tindakan pengguna (misalnya, menyisipkan kartu, memasukkan PIN) atau kondisi sistem (misalnya, lulus uji diri). Diagram state merupakan alat yang efektif untuk memodelkan perilaku ini karena secara jelas mendefinisikan keadaan, transisi, dan tindakan ATM, memastikan representasi terstruktur untuk desain, implementasi, dan pemeliharaan.
ATM beroperasi dalam keadaan-keadaan berikut:
Dimatikan
Deskripsi: ATM dalam keadaan mati dan tidak dapat berinteraksi dengan pengguna. Ini adalah keadaan awal sebelum sistem diaktifkan.
Karakteristik Kunci: Tidak ada operasi yang dapat dilakukan hingga ATM dinyalakan.
Uji Diri
Deskripsi: Saat dinyalakan, ATM memasuki keadaan ini untuk melakukan uji diagnostik, memeriksa komponen seperti pembaca kartu, keypad, dan penarik uang tunai.
Hasil:
Lulus: ATM beralih ke keadaan “Tunggu”.
Gagal: ATM beralih ke keadaan “Tidak Beroperasi”.
Karakteristik Kunci: Keadaan ini memastikan ATM berfungsi sebelum melayani pelanggan.
Tidak Beroperasi
Deskripsi: Dimasuki jika uji diri gagal atau terjadi kesalahan kritis (misalnya, kerusakan penarik uang tunai). ATM tidak berfungsi dan memerlukan perawatan.
Karakteristik Kunci: Berfungsi sebagai keadaan akhir hingga diperbaiki atau diatur ulang.
Tunggu
Deskripsi: ATM dalam keadaan menyala, berfungsi, dan menunggu pelanggan untuk memulai transaksi dengan memasukkan kartu perbankan atau kartu kredit.
Karakteristik Kunci: Keadaan tunggu utama untuk interaksi pelanggan.
Melayani Pelanggan
Deskripsi: Keadaan komposit yang dimasuki saat pelanggan memasukkan kartu. Ini mencakup semua interaksi pelanggan, mulai dari otentikasi hingga penyelesaian transaksi.
Aksi Masuk: bacaKartu(ATM membaca detail kartu).
Aksi Keluar: keluarkanKartu(ATM melepaskan kartu).
Sub-status:
Autentikasi Pelanggan
ATM meminta pelanggan memasukkan PIN dan memvalidasinya.
Jika PIN salah, ATM dapat mengizinkan percobaan ulang (misalnya, hingga tiga kali percobaan) sebelum mengeluarkan kartu.
Memilih Transaksi
Pelanggan memilih jenis transaksi (misalnya, penarikan, setoran, pengecekan saldo).
Transaksi
ATM memproses transaksi yang dipilih (misalnya, memberikan uang tunai, menerima setoran, menampilkan saldo).
Setelah selesai, ATM kembali ke status “Idle”.
ATM berpindah antar status berdasarkan peristiwa atau kondisi. Transisi utama adalah:
|
Transisi |
Dari Status |
Ke Status |
Pemicu |
Aksi |
|---|---|---|---|---|
|
Hidupkan |
Dimatikan |
Uji Diri |
ATM dihidupkan |
Lakukan startup (inisialisasi perangkat keras) |
|
Uji Diri Berhasil |
Uji Diri |
Idle |
Tidak ada (tanpa pemicu) |
Tidak ada |
|
Gagal Uji Diri |
Uji Diri |
Tidak dalam Layanan |
Uji gagal |
Tidak ada |
|
Masukkan Kartu |
Diam |
Melayani Pelanggan |
Pelanggan memasukkan kartu |
bacaKartu |
|
Autentikasi Berhasil |
Autentikasi Pelanggan |
Memilih Transaksi |
PIN yang valid dimasukkan |
Tidak ada |
|
Gagal Autentikasi (setelah percobaan) |
Autentikasi Pelanggan |
Diam |
PIN tidak valid (melebihi percobaan) |
keluarkanKartu |
|
Transaksi Dipilih |
Memilih Transaksi |
Transaksi |
Pelanggan memilih transaksi |
Tidak ada |
|
Transaksi Selesai |
Transaksi |
Diam |
Transaksi selesai |
keluarkanKartu |
|
Batal |
Setiap sub-state dalam Melayani Pelanggan |
Idle |
Pelanggan membatalkan |
keluarkanKartu |
Diagram status ini menunjukkan beberapa konsep inti dari diagram status:
Status: Perilaku ATM dibagi menjadi status yang berbeda (misalnya, Mati, Idle, Melayani Pelanggan), masing-masing mewakili kondisi tertentu.
Transisi: Kejadian seperti penyisipan kartu atau validasi PIN memicu perubahan status, dengan jelas mendefinisikan alur sistem.
Aksi: Aksi masuk (misalnya, bacaKartu) dan aksi keluar (misalnya, keluarkanKartu) menentukan aktivitas selama perubahan status.
Status Komposit: Status ‘Melayani Pelanggan’ berisi sub-status (Autentikasi Pelanggan, Memilih Transaksi, Transaksi), memungkinkan pemodelan hierarkis.
Status Awal dan Akhir: ‘Matikan’ adalah status awal, sementara ‘Tidak Berfungsi’ berfungsi sebagai status akhir hingga pemeliharaan dilakukan.
Transisi Tanpa Pemicu: Transisi dari ‘Uji Diri’ ke ‘Idle’ terjadi secara otomatis jika uji lulus, tanpa kejadian eksplisit.
Diagram status sangat ideal untuk memodelkan ATM karena:
Status Terbatas: ATM memiliki kumpulan status yang jelas (misalnya, Idle, Melayani Pelanggan) yang mendefinisikan perilakunya.
Perilaku Berbasis Kejadian: Transisi dipicu oleh tindakan pengguna (misalnya, penyisipan kartu, input PIN) atau kondisi sistem (misalnya, hasil pengujian diri).
Struktur Hierarkis: State komposit seperti “Melayani Pelanggan” memungkinkan pemodelan rinci interaksi yang kompleks.
Kejelasan bagi Pemangku Kepentingan: Diagram ini menyediakan representasi visual yang dapat dengan mudah dipahami oleh pengembang, desainer, dan pemangku kepentingan, membantu dalam desain dan pemeliharaan sistem.
Visual Paradigm adalah alat pemodelan UML yang kuat yang menyederhanakan pembuatan diagram status. Fitur-fiturnya meliputi:
Antarmuka Seret dan Letakkan: Mudah menambahkan status, transisi, dan tindakan.
Alat Simulasi: Uji transisi status untuk memvalidasi logika diagram.
Templat: Gunakan templat yang sudah dibuat sebelumnya untuk sistem seperti ATM untuk mempercepat pemodelan.
Generasi Kode: Hasilkan kerangka kode (misalnya, Java, C++) dari diagram.
Kolaborasi: Pengeditan tim secara real-time dan komentar untuk proyek kolaboratif.
Untuk membuat diagram status ATM di Visual Paradigm:
Buka Visual Paradigm dan pilihDiagram > Baru > Diagram Mesin Status.
Tambahkan status (misalnya, Mati, Pengujian Diri, Siaga) menggunakan editor seret dan letakkan.
Gambar transisi dengan pemicu yang sesuai (misalnya, “Hidupkan”, “Penyisipan Kartu”).
Tentukan tindakan (misalnya, bacaKartu, keluarkanKartu) untuk masuk, keluar, atau transisi.
Gunakan simulasi untuk menguji alur dan memastikan akurasi.
Diagram status ATM bank secara efektif menggambarkan bagaimana diagram status UML dapat memodelkan perilaku sistem dunia nyata. Dengan mendefinisikan status yang jelas, transisi yang didorong peristiwa, dan tindakan, diagram ini memberikan representasi terstruktur dari operasi ATM. Pendekatan ini meningkatkan pemahaman, memfasilitasi desain sistem, dan mendukung implementasi serta pemeliharaan. Alat seperti Visual Paradigm memudahkan pembuatan, pengujian, dan berbagi diagram semacam ini, memastikan akurasi dan kolaborasi dalam pengembangan sistem.