Pertemuan10 - adidwiprasetyo.files.wordpress.com fileSimbol UML untuk state chart diagram adalah ......
Transcript of Pertemuan10 - adidwiprasetyo.files.wordpress.com fileSimbol UML untuk state chart diagram adalah ......
Pertemuan 10
State Machine Diagram
State Machine Diagram
State Machine Diagram adalah teknik yang umumdigunakan untuk menggambarkan behaviour sebuahsistem. Hal ini digunakan untuk membantu analis,perancang dan pengembang untuk memahami perilakuobyek pada sistem.
Tidak cukup hanya mengimplementasikan sebuah obyek,pengembang juga harus membuat obyek tersebutmelakukan sesuatu. State diagram memastikan bahwaobyek-obyek tersebut akan menebak apa yang seharusnyadilakukan. Dengan gambaran yang jelas tentang perilakuobyek, kemungkinan tim pengembang akan memproduksisebuah sistem yang sesuai dengan requirement.
Simbol
Simbol UML untuk state chart diagram adalah segiempatyang tiap pojoknya dibuat rounded. Titik awalnyamenggunakan lingkaran solid yang diarsir dan diakhiridengan mata.
State
Initial StateFinal State
Status dari objekEvent
Simbol
UML juga memberi pilihan untuk menambahkan detil kedalam simbol tersebut dengan membagi tiga area yaitunama state, variabel dan aktivitas.
State variabel seperti timer dan counter yang kadangkalasangat membantu.
NState Name
Variabel Name
Activity
Simbol
Activity terdiri atas events dan action, tiga hal yang seringdigunakan dalam activity adalah:1.Entry
Apa yang terjadi ketika sistem masuk ke state2.Exit
Apa yang terjadi ketika sistem meninggalkan state3.Do
Apa yang terjadi ketika sistem ada di state
State, Event dan Transition
Statechart diagram menampilkan state-state yang mungkindari sebuah obyek, event yang bisa dideteksi dan responatas event-event tersebut. Secara umum, pendeteksiansebuah event dapat menyebabkan sebuah obyek bergerakdari satu state ke state yang lain yang disebut dengantransition. Sebagai contoh jika sebuah CD Player dalamkeadaan terbuka, penekanan tombol load akanmenyebabkan drawer CD Player berpindah ke state close,sebagaimana digambarkan sebagai berikut:
Notasi
1. Event Transition
Suatu kejadian yang dapat membuat state dari objek berubah
2. Event Iteration
Event berulang pada state yang sama
3. Guard
Suatu kondisi atau keterangan
/ event
/ event
[guard]
State, Event dan Transition
Closed
Playing Open
Play
Load
Stop
Stop
StopPlay Load
Stop
Load
Initial dan Final State
Gambar pada slide sebelumnya menjelaskan bagaimanaketika CD Player sedang dipakai, tetapi tidak menjelaskanapa yang terjadi ketika mesin di matikan atau dihidupkan.Untuk menunjukkan perilaku ini kita bisa menambahkaninitial state diagram. Gambar berikut ini menunjukkanbahwa initial state untuk CD Player selalu diposisi closesetelah mesin dihidupkan. Tidak ada event yang harusdituliskan pada initial state.Event yang menyebabkan final state bisa tercapai adalahsaat CD Player dimatikan (event = off)
Initial dan Final State
Closed
Playing Open
Play
Load
Stop
Stop
StopPlay Load
Stop
Load
Off
Off
Guard Condition
Dalam gambar sebelumnya salah satu masalah adalah CDplayer tidak selalu pada state playing ketika tombol playditekan. Seharusnya state playing dilakukan jika ada CD didrawer atau tetap dalam kondisi close jika tidak ada CD didrawer.Untuk menampilkan informasi tersebut dengan statechartbisa ditambahkan guard condition untuk transition play.Guard condition adalah bagian spesifikasi dari transitiondan ditulis dengan sepasang kurung kotak/[] sesudahnama event yang memberi label transition
Guard Condition
Closed
Playing Open
Play[ CD present]
Stop
Stop
Stop
Play[no CD] Play [no CD]
Load
Load
Play
Play[ CD present]
Guard Condition
Jika ada lebih dari satu transition yang mempunyai hasilguard condition true, maka hanya ada satu saja yang akandijalankan. Sebagai contoh anggaplah CD player padaposisi state open dan tombol play ditekan, yang pertamakali terjadi adalah drawer akan ditutup. Hal ini pentingkarena mesin akan bisa mendeteksi apakah ada CD atautidak di drawer bila drawer dalam posisi tertutup. Dalamkondisi masih state open, guard condition dievaluasi padatransition play untuk melihat transition mana yang harusdijalankan. Jika CD ada, transition akan berubah dari openmenjadi playing.
ActionAction ditulis setelah nama event dengan diawali tanda slash (/).Action bisa dideskripsikan dalam pseudo-code atau denganmenggunakan notasi bahasa pemrograman yang akan dipakai.Transition dapat membawa condition dan action sekaligus.
Action dibuat dalam bentuk pendek, mengandung bagian kecildari proses yang tidak butuh waktu lama. Karakteristik actionharus bisa selesai sebelum transition mencapai state yang baru.Hal tersebut mengindikasikan bahwa action tidak dapatdiinterupsi oleh event yang lain yang mungkin dideteksi olehobyek, namun tetap harus bisa selesai dilakukan.
Action
Closed
Playing Open
Play[ CD present]
Stop
Stop
Stop
Play[no CD]Play [no CD] / close drawer
Load / Open drawer
Load/ open drawer
Play
Load/ close drawer
Play[ CD present] / close drawer
Entry dan Exit ActionEntry action dijalankan setiap saat jika state menjadi aktif,segera setelah action transition selesai. Sebagai contoh jika CDplayer dalam state open dan tombol play ditekan, drawer akanmenutup dan transition play akan dijalankan. Hasilnya stateplaying menjadi aktif dan entry action pada state playing segeradilakukan. Exit action akan dijalankan kapanpun saat sebuahaction ditinggalkan.
PlayingEntry/find start of track
Entry/lower head
Entry/raise head
Open
PlayStop
Play[CD present]/close drawer
Load/open drawer
ActivitySaat posisi state playing, melakukan sesuatu yang disebutmemainkan current track dari CD, operasi ini yang disebutactivity. Seperti pada action maka activity ditulis dalam stateyang diawali dengan do.
Beda antara action dan activity adalah action lebih merupakaninstance sedangkan activity merupakan perluasan dari waktu.
Ketika state menjadi aktif, entry action dijalankan dan activitynyadimulai. Activity berjalan secara kontinyu sepanjang periodedimana state tersebut aktif.
Activity
Entry action harus dijalankan sampai selesai sebelumobyek dapat merespon event apapun. Akan tetapi activitybisa diinterupsi oleh event apapun yang mengakibatkantransition keluar.
PlayingEntry/find start of track
Entry/lower head
Entry/raise head
Do/play track
Play
Completion TransitionCompletion transition adalah transition yang tidakmempunyai nama event. Ini bisa ditrigger ketika sebuahstate activity internal berhenti secara normal tanpainterupsi oleh event dari luar. Ketika CD player dimainkanuser bisa menekan tombol play atau stop untuk interupsi.Jika salah satu dari event ini terdeteksi maka track akanberakhir. Dengan demikian calon transition yang harusdijalankan tinggal completion transition. Yang terjadiberikutnya tergantung pada apakah track yang baru sajaselesai adalah track terakhir atau bukan.
Completion Transition (lanjutan)
Completion transition mempunyai guard condition untukmembedakan diantara dua kasus. Jika yang baru selesai adalahtrack terakhir, transition pada state closed akan dijalankan danCD berhenti, tetapi jika tidak transition ke dirinya sendiri akandijalankan dan penhitung track akan naik, state playing akanmasuk kembali dan CD player akan menjalankan trackberikutnya.
PlayingEntry/find start of track
Entry/lower head
Entry/raise head
Do/play track
Play
[no last track] / increment track count
Closed
Last track played
Stop
Internal TransitionInternal transition ditulis didalam state yang diberi namadengan event yang menyebabkannya. Sebagai contohadalah informasi yang ditampilkan dalam CD player.
PlayingEntry/find start of track
Entry/lower head
Entry/raise head
Do/play track
Info/display time
Play
Composite StateComposite state mempunyai properties sebagai berikut:1. Jika composite state active, salah satu dari sub state harus
aktif.2. Jika sebuah event terdeteksi ketika sebuah obyek ada
didalam composite state, maka akan bisa mentriggertransition keluar dari composite state itu sendiri maupun darisub state aktif saat itu.
Sebagai contoh, asumsikan CD player dalam state closed, jikaevent load terdeteksi transition state open akan dijalankan danstate open menjadi aktif. Ini adalah transition internal dari statenot playing dan masih aktif tetapi dengan sub state aktif yanglain.
Composite State (lanjutan)
Sebaliknya jika event play terdeteksi, tidak ada transitionbernama “play” yang meninggalkan state closed. Namunada beberapa transition yang meninggalkan state no play.Jika state ini aktif, transition akan menjadi enable,tergantung apakah ada CD didrawer atau tidak. Jika CDada, state play menjadi aktif, jika tidak state closed menjadiaktif. Hal ini berarti self-transition meninggalkan state notplay.
History StateKetika tombol pause ditekan, maka saat tombol play ditekan lagiCD player otomatis akan melanjtkan jalannya CD dari kondisiterakhir pada saat tombol pause ditekan dan tidak memulai dariawal lagi.
UML menangkap ide ini dengan mengunakan history state yangdinyatakan dengan huruf H dalam lingkaran. Cara kerja historystate dilakukan dengan cara composite state mengingat substate yang aktif saat obyek keluar dari transition composite state.Dengan adanya transition ke history state akan mengakibatkansubstate yang saat ini aktif akan menjadi aktif lagi
History State (lanjutan)
BusyEntry/find start of track
[no last track]/increment track
play Not playing
Last track played
Stop
Play[CD present]
PausedH
Playing
Do/play track
Contoh StateChart Login
[tekan tab untuk ke password]
[pindah kursor ke username]
[submit]
[Submit]
[valid]
[Not Valid]
[Ulangi, masukkan UserName&password]
[Keluar/batal]
Reject
GettingUserName
GettingPasswordValidating
Mulai
Selesai
Selesai
Contoh soal
Ketika dosen melakukan login ke sistem akan divalidasiuser name dan password, jika valid akan muncul tampilanpilihan olah nilai, absensi, forum diskusi atau logout
Buatlah statemachine diagram diatas
Studi Kasus
PT. Bendi Car adalah sebuah perusahaan yang bergerakdibidang penyewaan mobil Semua transaksi di perusahaanmasih dilakukan secara manual. Berikut ini adalah kegiatankegiatan yang dilakukan oleh petugas dalam melaksanakantransaksi penyewaan mobil di dalam perusahaan.1. Prosedure peminjamanPenyewa mobil yang ingin melakukan peminjaman dapat melihatharga penyewaan mobil pada daftar harga sewa mobil. Penyewadapat menggunakan jasa supir atau tidak sesuai dengankebutuhan penyewa sendiri. Setiap jenis kendaraan memilikiharga sewa yang berbeda-beda begitu juga harga sewa jasasopir untuk daerah Jabodetabek dan diluar jabodetabek punberbeda. Setelah itu penyewa mengisi Formulir Penyewaan (FS)disertai fotocopy identitas diri. Kemudian Formulir penyewaanyang telah diisi beserta pembayaran dimuka diserahkan kepadapetugas kemudian petugas membuatkan kwitansi pembayaransebagai bukti pembayaran.
Studi Kasus
2. Prosedure pengembalianPada saat pengembalian kendaraan oleh penyewa,petugas membawa Formulir Pengembalian danmemeriksa kondisi kendaraan apakah terdapat kerusakanatau tidak. Bila ada (misalnya spion pecah, body penyok,cat tergores, dll), maka diperhitungkan penggantiannya dandibebankan kepada penyewa. Bila tidak rusak/terlambatmaka tidak perlu mengisi Formulir pengembalian. NamunBila penyewa terlambat dalam pengembalian, maka jumlahketerlambatan mobil dan sopir akan dibebankan kepadapenyewa. Setelah membayar kerusakan danketerlambatan, maka petugas membuatkan kwitansisebagai tanda bukti pembayaran denda
Studi Kasus
3. Prosedure laporanDiakhir bulan petugas membuat laporan penyewaanberikut denda atas kerusakan atau keterlambatan yangterjadi dan laporan kendaraan. Laporan tersebutdiserahkan ke pemilik penyewaan Bendi car
Buatlah state diagram dari sistem diatas