UNIFIED MODELING LANGUAGE
UML (Unified Modeling Language) adalah metode pemodelan secara visual sebagai sarana untuk merancang dan atau membuat software berorientasi objek. Karena UML ini merupakan bahasa visual untuk pemodelan bahasa berorientasi objek, maka semua elemen dan diagram berbasiskan pada paradigma object oriented. UML adalah salah satu tool / model untuk merancang pengembangan software yang berbasis object oriented. UML sendiri juga memberikan standar penulisan sebuah sistem blue print, yang meliputi konsep bisnis proses, penulisan kelas-kelas dalam bahasa program yang spesifik, skema database, dan komponenkomponen yang diperlukan dalam sistem software. Dengan menggunakan UML kita dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UMLmerupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). UML dibangun atas model 4+1 view
Design View
Implementation Use Case View
Proses View
Deployment View
Use Case View mendefinisikan perilaku eksternal sistem Design View mendefinisikan struktur logika yang mendukung fungsi-fungsi yang dibutuhkan use case (computer program, kelas-kelas, interkasi) Implementation View : menjelaskan komponen-komponen fifik dari sistem (file exe, library, database)
Process View berkaitan dengan concurrency di dalam sistem Deployment View menjelaskan bagaimana komponen-komponen fisik didistribusikan.
Diagram - Diagram Yang Terdapat Pada UML UML sendiri terdiri atas pengelompokkan diagram-diagram sistem menurut aspek atau sudut pandang tertentu. Diagram adalah yang menggambarkan permasalahan maupun solusi dari permasalahan suatu model. Diagram UML terdiri dari : 1. Diagram Use Case 2. Diagram Class 3. Behavior Diagram Statechart Diagram Activity Diagram Interaction Diagram
: -
Sequence Diagram Collaboration Diagram
4. Implentation Diagram Component Diagram Deployment Diagram
1.
Diagram Use Case
Diagram Use Case menggambarkan apa saja aktifitas yang dilakukan oleh suatu sistem dari sudut pandang pengamatan luar. yang menjadi persoalan itu apa yang dilakukan bukan bagaimana melakukannya. Diagram Use Case dekat kaitannya dengan kejadian-kejadian. Kejadian (scenario) merupakan contoh apa yang terjadi ketika seseorang berinteraksi dengan sistem. Notasi Use Case
Actor Actor merupakan pengguna sistem, sistem yang berhubungan dengan sistem lain, atau time/waktu Lambang :
Use Case Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, mengcreate sebuah daftar belanja, dan sebagainyayang disediakan sistem Lambang :
Asosiasi Menghubungkan antara actor dengan use case Lambang : Sistem Digambarkan dengan kotak
Tipe Relasi/Asosiasi pada Use Case : Include Memungkinkan 1 use case menggunakan fungsionalitas yang disediakan oleh usecase lain Extends Memungkinkan 1 use case secara optional menggunakan fungsionalitas yang disediakan oleh use case lain. Generalization/inheritance antara use case Dibuat ketika ada sebuah keadaan yang lain/perlakuan khusus Inheriting use case dibawah base/parent use case Contoh : Use Case Buka tabungan di bank
bukaTabungan
<
> <<extends>> Nasabah
Teller bukaInvestasi
IsiData
2.
Class Diagram Class adalah sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram menggambarkan struktur dan deskripsi class, package dan objek beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok : 1. Nama (dan stereotype) 2. Atribut 3. Method (operasi) Atribut dan metoda dapat memiliki salah satu sifat berikut : • Private(-), tidak dapat dipanggil dari luar class yang bersangkutan
• Protected(#), hanya dapat dipanggil oleh class yang bersangkutan dan anak-anak yang mewarisinya • Public(+), dapat dipanggil oleh siapa saja Contoh : public class Ujian { private nilai; public int hasil; public void total( ) {} protected int Rata(int n) { } } Bentuk : ujian -nilai : int +hasil : int +Total() #Rata(in n : int) : int
Untuk abstract class :
Binatang {abstract} -Jenis : String +berkembang()
Hubungan Antar Class 1. Asosiasi, yaitu hubungan statis antar class. Umumnya menggambarkan class yang memiliki atribut berupa class lain, atau class yang harus mengetahui eksistensi class lain. Panah navigability menunjukkan arah query antar class. Lambang : 2. Agregasi, yaitu hubungan yang menyatakan bagian (“terdiri atas..”) atau biasa disebut relasi mempunyai sebuah. Lambang : 3. Composition, yaitu sebuah kelas tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka class tersebut memiliki relasi composition. Lambang : 4. Dependency, yaitu hubungan yang menunjukan operasi pada suatu kelas yang menggunakan class yang lain. Lambang :
5. Generalisasi / Pewarisan, yaitu hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class asalnya dan menambahkan fungsionalitas baru, sehingga ia disebut anak dari class yang diwarisinya. Lambang : Multiplicity Multiplicity pada asosiati adlah jumlah banyakna obyek sebuah class yang berelasi dengan sebuah obyek class lain yang berasosiasi dengan class tersebut. Berikut tabel multiplicity :
Indikator
Arti
Keterangan/Contoh
0..1
Kosong atau satu
0..*
Kosong atau lebih
0..n
Kosong atau n, n > 1
1
Hanya satu
1..*
Lebih dari sama dengan satu
1..n
Satu atau n, n >1
*
Banyak atau Many
N
Hanya N, dimana N lebih dari satu
9
n..*
Lebih dari sama dengan N, N > 1
7..*
n..m
Lebih dari sama dengan N dan kurang dari sama dengan M. Dimana M dan N lebih dari satu.
3..10
0..3
1..5
Contoh : 1. Setiap 1 rekening tabungan dapat tidak memiliki ATM atau hanya memiliki 1 ATM
rekening
ATM 1
0..1
2. 1 Dosen dapat mengajar banyak mata kuliah dan 1 Mata kuliah dapat diajar 1 atau lebih dosen. Dosen
Mata Kuliah 1..*
1..*
Contoh Class Diagram pada Pemesanan Barang
Package, Interface dan Object Package adalah kumpulan elemen-elemen logika UML. Untuk mengatur pengorganisasian diagram Class yang kompleks, dapat dilakukan pengelompokan kelaskelas berupa package (paket-paket). Gambar di bawah ini mengenai model bisnis dengan pengelompokan kelas-kelas dalam bentuk paket-paket
Contoh :
MahlukHidup
Object diagram adalah diagram yang memberikan gambaran model instance-instance dari sebuah class. Diagram ini digunakan untuk menggambarkan sebuah sistem dari sudut pandang waktu tertentu. Contoh:
Dewa : Manusia kaki : int = 2
Pohon_mangga : Tumbuhan Jenis : String = Harum manis MasaBuah : int = 1
Interface adalah satu set operation yang memberikan spesifikasi bebera aspek dari prilaku dan operasi dari suatu class ke class lain.
Contoh : Keyboard -jmlTombol : int +ctrl() +alt()
3.
«interface» MesinTik +tekanTombol()
Statechart Diagram
Statechart atau biasa disebut dengan state diagram digunakan untuk mendokumentasikan beragam kondisi atau keadaan yang terjadi terhadap sebuah class dan kegiatan apa saja yang dapat merubah keadaan/kondisi tersebut. Pada umumnya statechart diagram menggambarkan class tertentu (satu class dapat memiliki lebih dari satu statechart diagram). Transisi antar state umumnya memiliki kondisi guard yang merupakan syarat terjadinya transisi yang bersangkutan. Action ( aktifitas: menjalankan atau membuat state berubah) yang dilakukan sebagai akibat dari event ( penyebab terjadinya perubahan ). Kategori action : 1. Entry : apa yang terjadi ketika system memasuk state 2. Do : apa yang terjadi ketika system berada dalam state 3. Exit : apa yang terjadi ketika system meninggalkan state
Notasi Pada statechart : 1. Start State
2. State
3.
End State
4.
Transition
State1
Contoh :
4.
Diagram Sequence
Diagram Class dan diagram Object merupakan suatu gambaran model statis. Namun ada juga yang bersifat dinamis, seperti Diagram Interaction. Diagram sequence merupakan salah satu diagram Interaction yang menjelaskan bagaimana suatu operasi itu dilakukan; message (pesan) apa yang dikirim dan kapan pelaksanaannya. Diagram ini diatur berdasarkan waktu. Obyek-obyek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut. Notasi pada diagram sequence : 1. Object Merupakan instance class dan dituliskan tersusun secara horizontal. Simbol : : Object
2. Actor Actor juga dapat berkomunikasi dengan object. Simbol :
3. Lifeline Mengindikasikan keberadaan sebuah obyek dalam basis waktu. Simbol :
4. Activation Mengindikasikan sebuah obyek yang melakukan sebuah aksi Simbol :
5. Message Mengindikasikan komunikasi antar obyek. Simbol :
Contoh , diagram sequence yang menggambarkan sistem mesin minuman otomatis
front
register
Dispenser
insert(input) Select(selection) user
send(input) send(input) Deliver(selection)