e-mail : cahyo3@gmail.com
blog : http://cahyo-adi.blogspot.com
Untuk kasus UML kali ini, saya mengambil contoh kasus pengambilan uang di ATM
dan beberapa contoh umum supaya pembaca gampang ngertinya . Oke, saya asumsikan
pembaca sekalian telah mengerti garis besar apa itu namanya UML dan Rational Rose. Bagi
yang belum tahu saya akan coba jelaskan secara garis besar. Sedangkan bagi yang master,
mohon jangan membaca e-book saya ini (Delete aja ! ).
Namun karena UML hanya merupakan bahasa pemodelan, maka UML bukanlah
rujukan bagaimana melakukan analisis dan desain berorientasi obyek. Untuk mengetahui
bagaimana melakukan analisis dan desain berorientasi obyek, sudah terdapat beberapa
metodologi yang bisa diikuti seperti Metode Booch, Metode Coad and Yourdan, Metode
Jacobson, Metode Rumbaugh, Metode Wirfs-Brock, atau mengikuti metode pengembangan
sistem RUP (Rational Unified Process). Didalam UML terdapat 8 diagram, antara lain Use
Case Diagram, Class Diagram, Sequence Diagram, Collaboration Diagram, Statechart
Diagram, Activity Diagram, Component Diagram, dan Deployment Diagram.
Software Rational Rose merupakan salah satu tools untuk membuat suatu UML.
Banyak tools selain Rational Rose dari yang gratis sampai yang berbayar, namun untuk
Rational Rose merupakan software yang berbayar. Rational Rose merupakan software
buatan IBM yang dapat didownload di http://www.rational.com. Dengan Rational Rose,
pemodelan dapat dilakukan dengan drag n' drop. Berikut adalah IDE dari Rational Rose :
Dalam UML terdapat notasi-notasi yang sering digunakan (walau banyak yang nggak
digunakan :D), antara lain :
1. Actor
2. Class
Class merupakan pembentuk utama dari sistem berorientasi obyek karen class
menunjukan kumpulan obyek yang memiliki attribut dan operasi yang sama. Class digunakan
untuk mengimplementasikan interface. Class digunakan untuk mengabstraksikan elemen-
elemen dari sistem yang sedang dibangun. Class juga bisa digunakan untuk
mengabstraksikan elemen-elemen dari sistem yang sedang dibangun. Class bisa untuk
mempresentasikan baik perangkat lunak maupun perangkat keras, baik konsep maupun
benda nyata.
Notasi class berbentuk persegi panjang yang berisi 3 bagian : persegi panjang paling atas
untuk nama class, persegi panjang paling bawah untuk operasi dan persegi panjang di
tengah untuk attribut. Attribut digunakan untuk menyimpan informasi. Nama attribut
menggunakan kata benda yang bisa dengan jelas merepresentasikan informasi yang
disimpan didalamnya. Operasi menunjukan sesuatu yang bisa dilakukan oleh obyek, dan
menggunakan kata kerja.
Identifikasi Class
Didalam sebuah class, class perlu diidentifikasikan. Class yang perlu diidentifikasikan
adalah Boundary Class, Control Class, dan Entity Class.
Boundary class adalah class yang menghubungkan user dengan sistem. Oleh karena
itu sering disebut juga sebagai user interface class. Biasanya dimulai dengan menetapkan 1
boundary class untuk setiap pasangan actor-use case. User interface class ini sering
disamakan dengan form yang digunakan sebagai interface antara sistem dengan user.
2. Control Class
Control class adalah class yang mengkoordinasi aktivitas dalam sistem. Class ini
menghubungkan boundary class dengan entity class. Jadi mengkoordinasi entity class mana
yang perlu dikunjungi, kapan dan apa yang ingin didapatkan dari entity class tersebut.
3. Entity Class
Entity Class adalah class yang behubungan dengan data atau informasi yang
digunakan oleh sistem. Entity class ini adalah class yang menyimpan dan mengolah data.
Use case menjelaskan kegiatan yang dilakukan actor dan sistem untuk mencapai
suatu tujuan tertentu. Walau menjelaskan kegiatan namun use case hanya menjelaskan apa
yang dilakukan oleh actor dan sistem, bukan bagaimana actor dan sistem melakukan
kegiatan tersebut.
5. Interaction
Interaction digunakan untuk menunjukan baik aliran pesan atau informasi antar
obyek maupun hubungan antar obyek. Biasanya interaction ini dilengkapi juga dengan teks
bernama “operation signature” yang tersusun dari nama operasi, paramater yang dikirim
dan tipe yang dikembalikan.
6. Package
Note digunakan untuk memberikan keterangan dan komentar dari suatu elemen
sehingga bisa langsung terlampir dalam model. Note ini bisa ditempelkan ke semua elemen
notasi yang lain.
8. Dependency
Dependency merupakan relasi yang menunjukan bahwa perubahan pada salah satu
elemen memberi pengaruh pada elemen yang lain. Elemen yang ada dibagian tanda panah
adalah elemen yang tergantung pada elemen yang ada dibagian tanpa tanda panah.
Extend menunjukan bahwa suatu bagian dari elemen di garis tanpa panah bisa
disisipkan ke dalam elemen yang ada digaris dengan panah; misal notasi A->B suatu fungsi
dari use case A bisa disisipkan kedalam use case B atau dengan kata lain A optional untuk B.
9. Generalization
10. Realization
Realization menunjukan hubungan bahwa elemen yang ada dibagian tanpa panah
akan merealisasikan apa yang dinyatakan oleh elemen yang ada dibagian dengan panah.
Misalnya class merealisasikan package, component merealisasikan class atau interface.
Selama saya kuliah, banyak teman-teman saya menanyakan apa beda business use case
dengan use case ? (pada sering lupa apa bedanya soalnya kelasnya siang sih, jadi
mahasiswanya ngantuk ) Dan akhirnya dosen menjelaskan bahwa bedanya :
2. Proses bisnis nya bisa bercerita tentang proses manual atau proses otomatis!
Use Case :
1. Menjelaskan apa yang akan dilakukan oleh sistem yang akan dibangun dan siapa yang
berinteraksi dengan sistem.
Pemohon diatas disebut Actor. Pemohon rolenya yaitu mendaftar dan mengambil surat ijin.
Business use case digambarkan seperti oval dan ada garisnya. Gambar diatas business use
case “mendaftar” sudah termasuk business use case “meminta persyaratan”. Istilah ini
disebut “include”.
Use Case :
Penjelasan :
Gambar use case diatas adalah use case diagram untuk sistem ATM. Actor customer melalui sistem
ATM bias apa aja? Jawabannya : bisa deposit funds, transfer fund, change pin, withdraw money,
view balance dan make payment. Begitu juga untuk actor bank officer dan credit system.
E. Class Diagram
Class Diagram menunjukan hubungan antar kelas dalam sistem yang sedang dibangun dan
bagaimana mereka saling berkolaborasi untuk mencapai suatu tujuan. Class Diagram umumnya
tersusun dari elemen class, interface, dependency, generalization, dan association.
Berikut contoh dari Class Diagram :
Class diagram diatas menggambarkan Class diagram untuk use case Withdraw Money pada kasus
use case yang penulis buat diatas. Terdapa 4 class yaitu : Card Reader, Account, ATM Screen dan
Cash Dispenser. Pada class Card Reader, memiliki “attribute” Card Number dan memiliki “operation”
Accept Card, Eject Card dan Read Card. Jadi inti dari attribute adalah dimisalkan isi table dari suatu
database dan untuk inti dari operation adalah “suatu class ngapain aja/bias apa aja”.
F. Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek di dalam dan di sekitar sistem
(termasuk pengguna, display, dan sebagainya) berupa message yang digambarkan terhadap waktu.
Sequence diagram terdiri atar dimensi vertikal (waktu) dan dimensi horizontal (objek-objek yang
terkait).
Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-
langkah yang dilakukan sebagai respons dari sebuah event untuk menghasilkan output tertentu.
Diawali dari apa yang men-trigger aktivitas tersebut, proses dan perubahan apa saja yang terjadi
secara internal dan output apa yang dihasilkan. Pembuatan Sequence Diagram merupakan aktivitas
yang paling kritikal dari proses desain karena inilah yang menjadi pedoman dalam proses
pemrograman nantinya dan berisi aliran control dari program.
Dari gambar diatas adalah misalkan customer namanya Joe, nah dia mau ambil uang $20 di ATM.
Sequence Diagramnya adalah seperti diatas. Mulai dari Joe memasukan kartu ke card reader (no.1)
yang kemudian oleh card reder dibaca nomernya dan sampai keluar kartunya (no.17). Saya tekannya
di sini bahwa sequence itu urutan kejadian/proses sistem.
G. Collaboration Diagram
Collabration Diagram menunjukan physical view dari suatu sistem yang akan dibangun. Collaboration
Diagram menekankan pada urutan message/pesan antar obyek sistem. Hal ini berbeda dengan
Sequence Diagram yang menekankan pada urutan waktu.
Pada Rational Rose, apabila telah membuat Sequence Diagram maka kita dapat langsung membuat
Collaboration Diagram hanya dengan menekan tombol F5 pada diagram Sequence. Berikut adalah
hasil dari Collaboration Diagram yang dihasilkan dari Sequence Diagram.
Activity diagrams menggambarkan berbagai alir aktivitas (work flow) dalam sistem yang sedang
dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana
mereka berakhir.
I. Statechart Diagram
Statechart Diagram menggambarkan tentang kelakuan (behavior) sistem yang akan dibangun.
Berikut adalah statechart dari class suatu produk.
Component Diagram merepresentasikan semua atau sebagian arsitektur komponen sistem yang
akan dibangun. Component diagram merupakan gambaran tentang isi-isi dari sistem yang dibuat. Isi-
isi sistem bisa berupa file library/.dll, file .exe dan sebagainya. Pada intinya, menggambarkan isi dari
sistem. Agar lebih mudah memahaminya, berikut contoh dari sistem ATM pada client :
K. Deployment Diagram
Deployment Diagram menunjukan alokasi proses ke processor dalam disain fisik suatu sistem yang
akan dibangun. Sama seperti Component Diagram, Deployment Diagram juga merepresentasikan
semua atau sebagian arsitektur komponen sistem yang akan dibangun.