Apa itu State Machine Diagram?
Sebelum masuk pada penjelasan tentang State Machine Diagram atau biasa disebut juga State Diagram, saya akan menjelaskan sedikit apa itu UML.
Unified Modeling Language atau biasa dikenal UML adalah sebuah bahasa yang berdasarkan grafik/gambar untuk memvisualisasi, menspesifikasikan, membangun, dan pendokumentasian dari sebuah sistem pengembangan software berbasis OO (Object-Oriented). UML digunakan untuk menciptakan suatu bahasa pemodelan yang dapat digunakan oleh manusia maupun mesin. Sehingga, UML tidak hanya merupakan sebuah bahasa pemograman visual saja, namun juga dapat secara langsung dihubungkan ke berbagai bahasa pemograman, seperti JAVA, C++, Visual Basic, atau bahkan dihubungkan secara langsung ke dalam sebuah object-oriented database.
Berdasarkan spesifikasinya, UML dibagi menjadi 2: Structure Diagram dan Behavioral Diagram
Berdasarkan bagan di atas, dapat dilihat bahwa State Diagram merupakan Behavioral Diagrams. State Diagram sendiri merupakan diagram yang menggambarkan perubahan dan transisi keadaan (dari satu status ke status lainnya) sebuah objek pada program sebagai akibat dari stimulan yang diterima.
Termasuk ke dalam Behavioral Diagrams karena diagram ini berfungsi untuk memodelkan metode/behavior (lifecycle) sebuah kelas atau objek untuk menunjukkan urutan kejadian sesaat (status) yang dilewati sebuah objek, transisi dari sebuah status ke status lainnya.
State Diagram menggambarkan seluruh state/status yang membolehkan objek-objek dalam kelas dapat dipunyai dan kejadian yang memicu status berubah. Perubahan dalam suatu status juga disebut transisi (transition).
Notasi State Diagram
1. State
Notasi state merupakan notasi yang menggambarkan suatu kondisi yang terjadi pada objek yang dapat memenuhi beberapa kondisi untuk melakukan kegiatan/activity atau menunggu suatu event.
2. Transition
Sebuah tanda panah yang menunjukkan hubungan antara dua state di mana objek di state pertama akan melakukan tindakan tertentu dan memasuki state kedua saat peristiwa tertentu terjadi dan kondisi akan terpenuhi.
Event
Suatu kejadian yang dapat membuat state dari object berubah. Digunakan untuk menggambarkan keadaan saat masuk (entry point) atau keluar (exit point).
3. Initial State dan Final State
Initial State: Initial state yang disebut juga initial pseudo-state ini digunakan untuk menggambarkan awal dari kejadian.
Final State: Final State digunakan untuk menjelaskan/menggambarkan akhir
(end) dari kejadian di dalam State Diagram.
Contoh State Diagram
Contoh State Diagram Upload
Di atas adalah contoh state diagram untuk objek produk. Sistem diawali dengan merchant menginput data produk, kemudian status akan berubah menjadi data produk terupload. Kemudian merchant menyimpan data produk, dan sistem akan merespon dengan laporan data berhasil tersimpan.
Contoh State Diagram Order
Contoh state diagram di atas untuk objek order. Sistem diawali pada status pembuatan data order. Setelah data berhasil tergenerate, customer masih dapat melakukan pembatalan pesanan. Namun, bila tidak ingin membatalkan, maka order akan berubah status menjadi pengemasan, kemudian order akan dikirim. Setelah order berhasil dikirim, maka customer akan merubah status menjadi order telah diterima.
Contoh State Diagram Login
Berikut contoh state diagram login. Diawali dengan user masuk pada halaman login. Bila user telah terdaftar, maka user akan memasukkan credentials (biasanya username & password). Ketika login berhasil, maka status berubah menjadi login berhasil. Dan bila credential tidak sesuai, maka sistem akan menolak dan status menjadi login gagal.
Kemudian, bila user belum terdaftar, maka user harus mengisi form regitrasi. Setelah data registrasi dikirim ke sistem, maka sistem akan merespon dengan memberikan kode verifikasi. Ketika kode verifikasi benar, maka sistem akan memverifikasi data dan status berubah menjadi login sukses. Namun bila kode verifikasi yang diinput oleh user salah, maka sistem akan menolak memverifikasi dan status kembali menjadi data belum terverifikasi sehingga user belum berhasil untuk login.
Referensi: