MAKALAH
ANALISIS DAN DESAIN PERANGKAT LUNAK DESCRIBE STATE BEHAVIOR
KELAS : ADPL-A
KELOMPOK 5
MOHAMMAD RIZZA FIRMANSYAH 5213100026
NIKOLAUS HERJUNO S.D.A 5213100078
MUHAMMAD HAFIZ EGAN PRADANA 5213100089
VALLIANT FERLYANDO 5213100094
PANDU SATRIO HUTOMO 5213100150
WIRATAMA PUTRA PRATIKTA 5213100501
JURUSAN SISTEM INFORMASI
FAKULTAS TEKNOLOGI INFORMASI
STATE MACHINE DIAGRAM
State machine diagram yang mendeskripsikan berbagai macam keadaan (state), atau biasa disebut lifecycle, suatu objek, event dan kondisi yang menyebabkan objek tersebut berpindah ke state berikutnya. Sebagai contohnnya adalah diagram yang menunjukkan keadaan suatu klaim asuransi (diterima, divalidasi, telah dibayar, belum dibayar, dll). Satu diagram menggambarkan satu objek dalam satu jangka hidup objek tersebut, biasanya juga berjangka waktu dalam beberapa sistem use-case.
Mengapa kita perlu menggunakan, atau membuat, state machine diagram, adalah karena diagram ini memberikan gambaran utuh tingkah laku suatu objek kepada seseorang akan suatu sistem. Sehingga, hal ini mengurangi resiko seseorang, baik itu developer maupun system analyst, meremehkan kompleksitas suatu system requirement.
Dalam menentukan objek mana yang perlu diberi state machine diagram, cukup dilihat dari keadaan dari objek tersebut. Jika objek tersebut memiliki jangka hidup yang kompleks, dan merupakan objek yang vital bagi proses bisnis, maka perlu diberi state machine diagram
IDENTIFY STATE OF CRITICAL OBJECT
Hal pertama yang harus dilakukan adalah state baru untuk mendefinisikan sebuah objek, cara mengidentifikasinya yaitu jika sistem memperlakukan objek berbeda karena perubahan atau objek tersebut yang berperilaku berbeda. Jika tidak terdapat perbedaan, maka hanya sebagian informasi dari objek yang berubah. Kita dapat mengganti sebagian dari informasi dari objek tersebut dengan atribut.
Contoh state dan atribut antara lain:
Merah dan biru bukan merupakan dua buah state dari objek, tetapi hanya mengindikasikan perbedaan nilai dari atribut warna
Mengembang dan mengempis dapat dikategorikan sebagai state karena mempengaruhi objek diperlakukan
Contoh lain dari state adalah sebagai berikut:
State pada saluran telepon: Busy, Off-the-Hook, Not-in-Use State pada faktur: Paid, Unpaid, Canceled
State pada registrasi mahasiswa: Accepted, Attending, Graduated
Tipe-Tipe State
Initial pseudostate: ini menunjukkan titik yang ada di diagram dan menjadi titik mula objek akan bergerak. Initial pseudostate dilambangkan dengan sebuah lingkaran hitam
Final State: State ini merupakan titik akhir dari proses objek dan dilambangkan seperti sebuah mata. Final state dapat diberi nama, dan bisa lebih dari satu final state untuk sebuah objek. Ada beberapa batasan untuk dapat menggunakan final state, antara lain: final state tidak memiliki outgoing transitions, dan tidak dapat di asosiasikan dengan perilaku yang spesifik, seperti aktifitas login, exit, dsb.
State yang lain juga dapat ditunjukkan dengan persegi panjang. Beberapa state tersebut antara lain:
Wait State: Objek tidak melakukan sesuatu yang penting, karena hanya menunggu sebuah tindakan terjadi atau kondisi menjadi benar.
Ongoing State: Objek melakukan aktifitas yang berkelanjutan dan tetap dalam keadaan yang sama sampai ada kejadian yang menginterupsi aktifitas tersebut. Finite State: Objek akan melakukan beberapa aktifitas yang memiliki akhir yang
pasti. Setelah aktifitas tersebut selesai objek akan keluar dari state.
Definisi: Transisi merupakan suatu perpindahan kondisi antara satu state dengan state yang lain.
IDENTIFY TRANSITION STATE
Tipe Transisi
Ada 2 jenis transisi, yaitu:
Completion transistion:Transaksi terjadi ketika objek sebelumnya telah selelsai tereksekusi atau selesai dijalankan. Contohnya ketika seorang pasien hendak membayar ke loket pembayaran. Ketika kasir telah memproses semua pembayaran maka pasuen dapat keluar dari rumah sakit setelahnya.
Labeled Transition: Merupakan suatu transisi yang terjadi karena adanya interupsi terhadap state sebelumnya. Contohnya adalah ketika pasien menunggu verifikasi berkas, pasien tersebut tetap akan menunggu sampai berkas terverifikasi.
Elemen-elemen yang sering muncul pada diagram:
Transition Activity: Aktifitas cepat, yang tak dapat diganggu ketika suatu transisi terjadi. Untuk mendokumentasikannya, setelah penulisan nama aktivitas, tambahkan slash lalu Asign Temporary Case Number.
Event: Sebuah pemicu yang mengakibatkan transisi. Dituliskan disamping simbol transisi.
Send Event : Sebuah pesan yang dikirim ke objek lain ketika suata transisi terjadi. Untuk mendokumentasikannya dapat dituliskan dengan format ^Target.Event]. Guard : Suatu kondisi yang harus bernilai benar agar transaksi terjadi. Dituliskan dengan format [nama guard].
Contoh penerapan event-event yang terjadi pada State Machine Diagram:
IDENTIFY STATE ACTIVITIES
State Activities
State activity adalah sebuah proses yang terjadi pada objek dalam keadaan tertentu. Proses ini dilakukan dan memerlukan waktu yang lebih lama dari pada transition state.
Ada beberapa keyword pada UML yang biasanya digunakan untuk menggambarkan state activities, yaitu:
Entry/ activity Aktivitas yang terjadi ketika objek memasuki state Do/activity Aktivitas yang terjadi saat objek didalam state Eventname/activity Aktivitas yang muncul jika ada external event Exit/activity Aktivitas yang terjadi ketika meninggalkan state
Case Study
1. Initiated : ketika case didalam state, Peace Committee menginterview peserta untuk berdebat dan menentukan tanggal untuk Peace Gathering.
2. Referred to Police : ketika case masuk ke state ini, Peace Gathering mengantar peserta ke kantor polisi.
3. Resolved no Gathering : begitu case masuk ke state ini, laporan kasus harus dimasukkan.
4. Under Review : ketika case didalam state ini, Convener mereview case.
5. Monitoring : Ketika case memasuki state ini, Convener menunjuk pemantau. Saat case didalam state ini pemantau melakukan pemantauan. Ketika pemantau sakit maka convener menunjuk
pemantau sementara. Kapanpun kasusnya selesai pemantau menyerahkan laporan pemantauan.
COMPOSITE STATE
Jika sejumlah state berbagi satu atau lebih transisi, kita bisa melakukan simplifikasi dengan menggambar sebuah Composite State.
Composite State mewariskan transition yang ada padanya ke Substate yang ada di dalamnya juga.
Berikut merupakan bentuk atau contoh dari Composite State, kita bisa menggambarkan initial pseudostate beserta dengan final state untuk mengetahui pada Composite State tersebut state mana yang berjalan terlebih dahulu.
Composite State merupakan sebuah state yang mengandung state lain. Composite State direpresentasikan dengan bentuk state pada umumnya, hanya saja ia melingkupi beberapa state yang lebih spesifik di dalamnya yang disebut Substate
Serving Customer
Authenticate Customer
Transact
Substate
[child]
Composite State
[parent]
STUDY CASE
Pada State Machine diagram tersebut banyak sekali perspektif yang ada:
1. State pertama adalah ketika CD Player dalam keadaan menyala dan terdapat CD di dalamnya CD Drawer tertutup Dibuka [CD Drawer terbuka] Dari Composite State No CD Loaded ini, diwarisi transition Power OFF, jadi baik dari CD Drawer closed maupun CD Drawer open, bisa langsung ke final state Ketika CD sudah dimasukan maka CD dimainkan Bisa di pause atau di stop atau setelah di pause kemudian di play lagi, atau di matikan sehingga menuju Final State.
2. Perspektif kedua adalah CD Player menyala kemudian CD sudah ada di dalamnya
artinya state langsung ditransisi menuju Composite State CD Loaded. Di
dalamnya terdapat beberapa substate yang dimulai dengan state CD Playing
CD drawer
closed
CD drawer
open
No CD Loaded
kemudian state dapat berpindah ke State ketika CD di pause (CD Paused) atau CD di hentikan (CD Stopped) Di Composite State CD Loaded ini, semua substate di dalamnya juga mewarisi transisi Power OFF sehingga substate-substate di dalamnya bisa langsung menuju ke Final State jika dikehendaki.
INDENTIFY CONCURENT STATE
Concurrent state merupakan sebuah keadaan dimana lebih dari satu state dalam kondisi berjalan bersamaan. Concurrent state juga disebut Orthogonal state. Meskipun berjalan dalam waktu bersamaan, Masing-masing state memiliki sifat independent, yakni berdiri sendiri atau tidak mempengaruhi state yang lain
Contoh Concurrent state