12 – State Diagram
Salah satu karakteristik dari suatu sistem adalah adanya perubahan state di dalam meresponi event dan terhadap perubahan waktu yang diberikan kedalam sistem tersebut. Misalnya, saat anda memilih cannel baru dari remote televisi maka akan terjadi perubahan state terhadap yang anda lihat.
State diagram memperlihatkan perubahan-perubahan yang terjadi di dalam sistem, mulai dari state awal, perpindahan state di dalam sistem dan state akhir secara berurutan (sekuens). State diagram juga direpresentasikan sebagai state machine.
State diagram berbeda dengan class diagram. State diagram memperlihatkan state-state dari suatu objek tunggal.
Simbol
Suatu state disimbolkan dengan segi empat bulat (rounded rectangle), garis berarah menyatakan aliran perpindahan state yang terjadi pada objek tersebut. Awal dari suatu state disimbolkan dengan lingkaran penuh (solid cicle), dan akhir state disimbolkan dengan lingkaran penuh setengah (bull’s eye) seperti yang ditunjukkan pada gambar 12.1.
: awal state
: transisi state
: akhir state
: state
Gambar 12.1 State diagram
State diagram dapat juga dinyatakan dengan tiga bagian area yaitu bagian atas menyatakan nama state, bagian tengah menyatakan variabel state dan bagian bawah menyatakan aktivitas-aktivitas yang berlangsung pada state. Seperti yang ditunjukkan pada gambar 12.2.
Gambar 12.2 state yang dibagi atas tiga bagian
State variable dapat berupa timer atau counter yang kadang-kadang dapat membantu dalam pengembangan sistem. Activities terdiri dari events dan actions. Ada tiga hal yang sering diperhatikan dalam suatu state yaitu entry( apa yang terjadi saat sistem masuk state), exit (apa yang terjadi saat sistem meninggalkan state), dan do (apa yang terjadi saat sistem berada dalam state).
Gambar 12.3 state diagram fax machine
Fax machine merupakan suatu contoh dari objek yang memilki state variable dan activities. Saat pengiriman fax - misalkan nama statenya Faxing – fax machine mencatat tanggal dan waktu awal pengiriman fax (nilai state variables “date” dan “time”), dan mencatat nomor telepon maupun namanya (nilai state variable “phone number” dan “owner”). Saat state ini berlangsung, fax machine melakukan aktivitas penambahan datestamp dan timestamp kepada fax, menambahkan nomor telepon dan namanya. Aktivitas-aktivitas dalam state ini mesin mengeluarkan kertas (pull pages through), menulis ke kertas (paginate), dan menyelesaikan pengiriman (transmission). Saat mesin dalam diam (idle), mesin fax menampilkan date dan time. State diagram dinyatakan pada gambar 12.3
Penambahan informasi pada Transition : Events dan Actions
Saudara dapat juga menambahkan informasi detail pada garis transisi. Saudara dapat menyatakan suatu event yang menyebabkan suatu transisi terjadi (a trigger event), dan komputasi (action) yang mengeksekusi dan membuat perubahan state. Penambahan informasi ini dinyatakan dengan penulisan informasi di dekat garis transisi. Kadang-kadang suatu event menyebabkan suatu transisi tanpa berhubungan dengan suatu action, dan suatu transisi yang menyebabkan menyelesaikan aktivitas state secara sempurna (dari pada menyebabkan suatu event). Jenis transisi ini disebut triggerless transition.
Misalkan saat kita menyalakan PC dengan melakukan turn on, PC akan melakukan inisialisasi dengan booting, setelah selesai kita akan dapat melakukan pekerjaan pada PC. Saat kita telah selesai bekerja kita akan mematikan PC dengan turn off sehingga PC tidak aktif lagi. State diagram dari aktivitas-aktivitas yang terjadi pada PC tersebut dapat direpresentasikan seperti pada gambar 12.4.
Gambar 12.4 state dan transition GUI yang mentrigger events, actions, dan triggerless transitions
Penambahan informasi pada Transition : Guard Contions
Misalkan dalam contoh komputer PC diatas, PC Screen Sever di setting untuk menampilkan gambar screen sever setiap 15 menit jika pengguna tidak melakukan aksi pada PC. Maka dalam hal ini waktu 15 menit merupakan guard condition dari state ini. Sehingga state diagramnya dapat dinyatakan seperti yang ditunjukkan pada gambar 12.5.
Gambar 12.5 state diagram GUI, ScreenSaver state dan suatu guard condition
Substate
Saat bekerja pada GUI anda yaitu pada state Working terdapat berbagai aktivitas yang dapat anda lakukan. GUI dapat melakukan aktivitas menunggu masukan (Awaiting input) yang anda lakukan, baik berupa keystroke, perpindahan mouse mapun penekanan button. Kemudian GUI mendaftarkan (register) input yang anda berikan dan mengubah tampilan (visualizing) untuk memperlihatkan aksi yang anda lakukan pada monitor anda. Setiap state ini- Awaiting, Registering, dan Visualizing- merupakan substate dari state Working. Perpindahan state di dalam substate dapat dibagi atas dua bagian, yaitu sequential dan concurrent.
Sequential substate merupakan urutan substate yang terjadi dalam suatu state secara berurutan atau sekuens. Seperti yang ditunjukkan pada gambar 12.6.
Gambar 12.6 sequential substate GUI’s Working
Concurreny substate merupakan aktivitas-aktivitas sekelompok substate yang dapat bekerja secara bersamaan dengan sekelompok substate lainnya secara bersamaan. Visualisasi dalam concurrency substate dinyatakan dengan garis putus-putus (dotten line) di dalam suatu state.
Gambar 12.7 Concurrent substates pada waktu yang sama
Saat anda bekerja pada GUI PC anda, system clock PC anda akan tetap menampilkan waktu dan melakukan peng-update-an waktu pada selang waktu tertentu. Karena kedua aktivitas ini dapat berlangsung secara bersamaan saat anda bekerja pada GUI maka representasi dari aktivitas ini dapat direprensentasikan seperti yang ditunjukkan pada gambar 12.7.
Suatu state yang terdiri dari sequential substate disebut juga dengan suatu composite state.
Tidak ada komentar:
Posting Komentar