BAB II TINJAUAN PUSTAKA
2.7 Unified Modeling Language (UML)
2.7.4 Diagram UML
Setiap sistem yang komplek memiliki pendekatan yang terbaik melalui suatu himpunan kecil dalam pandangan semua view dalam suatu model, tidak ada single view yang terpenuhi. Setiap model bisa dinyatakan pada tingkat yang berbeda dari ketepatannya.
Menurut Flowler (2005) diagram-diagram yang tersedia pada UML terbagi atas 2 kategori, yaitu :
Gambar 2.14 Klasifikasi Jenis Diagram UML (Flowler, 2005) 2.7.4.1 Class Diagram
Menurut Nugroho (2005) Class Diagram dapat di definisikan sebagai barikut: Diagram Structure Diagram Behaviour Diagram Activity Diagram Interaction Diagram
Use case Diagram
Sequence Diagram Class Diagram Component Diagram Collaboration Diagram
“Sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek”,(Nugroho, 2005).
Class menggambarkan keadaan (atribut/properti) suatu sistem, sekaligus menawarkan layanan untuk memanipulasi keadaan tersebut (metoda/fungsi). Class diagram juga menggambarkan struktur dan deskripsi class, package dan object beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain.
Sebuah Class memiliki tiga area pokok, (Nugroho, 2005): 1. Nama, merupakan nama dari sebuah kelas
2. Atribut, merupakan peroperti dari sebuah kelas. Atribut melambangkan batas nilai yang mungkin ada pada objek dari class
3. Operasi, adalah sesuatu yang bisa dilakukan oleh sebuah class atau yang dapat dilakukan oleh class lain terhadap sebuah class.
Berikut adalah notasi – notasi yang ada pada class diagram : Tabel 2.2 Notasi pada Class Diagram
Class Class adalah blok - blok pembangun pada
pemrograman berorientasi objek. Sebuah class digambarkan sebagai sebuah kotak yang terbagi atas 3 bagian.Bagian atas adalah bagian nama dari
class. Bagian tengah mendefinisikan property/atribut class. Bagian akhir mendefinisikan method-method dari sebuah class.
Assosiation Sebuah asosiasi merupakan sebuah relationship paling umum antara 2 class, dan dilambangkan oleh sebuah garis yang menghubungkan antara 2
class. Garis ini bisa melambangkan tipe-tipe relationship dan juga dapat menampilkan
hukum-hukum multiplisitas pada sebuah relationship (Contoh: One-to-one, one-to-many,
Composition Jika sebuah class tidak bisa berdiri sendiri dan harus merupakan bagian dari class yang lain, maka class tersebut memiliki relasi Composition terhadap class tempat dia bergantung tersebut. Sebuah relationship composition digambarkan sebagai garis dengan ujung berbentuk jajaran genjang berisi/solid
Dependency Kadangkala sebuah class menggunakan class yang lain. Hal ini disebut dependency. Umumnya penggunaan dependency digunakan untuk menunjukkan operasi pada
suatu class yang menggunakan class yang lain. Sebuah dependency dilambangkan sebagai sebuah panah bertitik-titik.
Aggregation Aggregation mengindikasikan keseluruhan bagian relationship dan biasanya disebut sebagai relasi
“mempunyai sebuah” atau “bagian dari”. Sebuah
aggregation digambarkan sebagai sebuah garis
dengan sebuah jajaran genjang yang tidak berisi/tidak solid.
Generalization Sebuah relasi generalization sepadan dengan sebuah relasi inheritance pada konsep berorientasi objek. Sebuah generalization dilambangkan dengan sebuah panah dengan kepala panah yang tidak solid yang mengarah ke kelas “parent”-nya/induknya.
Sumber : www.sparxsystems.com
Diagram kelas memodelkan struktur kelas dan isinya. Kelas terdiri dari Nama Kelas, Atribut dan Operasi.
Gambar 2.15 Contoh Class Diagram (Munawar, 2005)
Keterangan:
1. Class Name : bagian yang paling atas berisi nama kelas, nama kelas diambil dari domain permasalahan dan harus sejelas mungkin. Oleh karena itu, nama kelas haruslah berupa kata benda.
2. Attribut : kelas memiliki attribut yang menggambarkan karakteristik dari objek. Attribut kelas yang benar adalah yang dapat mencakup informasi yang dilukiskan dan mengenali instance tertentu dari kelas. Tipe atribut dapat berupa primitive attribut atau tipe lainnya.
3. Method : operasi digunakan untuk memanipulasi attribut atau menjalankan aksi-aksi.
Class diagram terdiri dari beberapa relationship, (Nugroho, 2005): a) Asosiasi (Association)
Asosiasi didefinisikan sebagai penghubung objek-objek pada kelas yang sama. Suatu bentuk asosiasi adalah agregasi yang menampilkan hubungan suatu objek dengan bagian-bagiannya.
Kita menggunakan pemahaman asosiasi adalah pada saat beberapa kelas saling terhubung satu sama lain secara konseptual. Sebagai contoh, misalkan seorang pegawai bekerja pada sebuah perusahaan. Maka “bekerja” merupakan sebuah asosiasi antara kelas pegawai dan kelas perusahaan. Selanjutnya bisa kita simpulkan bahwa sebuah asosiasi bias merupakan sebuah bentuk kata kerja yang merelasikan kelas yang satu dengan kelas yang lainnya.
Class Name Attribut Method Mesin cuci Merek Model No Seri Kapasitas Mas ukan baju() Keluarkan baju() Tam bah sabun() Nyalakan()
Gambar 2.16 Contoh Asosiasi (Assosiation) (Munawar, 2005). b) Batasan (Constraints)
Constraints adalah batasan-batasan asosiasi fungsional antar entitas dalam model objek. Kata entitas termasuk di dalamnya adalah objek-objek, kelas-kelas, link, serta asosiasi-asosiasi. Berikut (gambar 2.17) adalah contoh constraint dimana teller akan melayani para pelanggan telepon yang ingin melakukan segala urusan yang berhubungan dengan masalah telepon, tapi untuk dapat dilayani maka para pelanggan harus antri, maka “antri” kita jadikan constraint pada asosiasi tersebut.
Gambar 2.17 Contoh Constraint pada sebuah Asosiasi (Munawar, 2005) c) Associations Class
Sebuah asosiasi dapat memiliki atribut dan operasi seperti halnya sebuah class. Sebuah association class sebenarnya diperlukan apabila salah satu dari kelas yang terhubung mempunyai sebuah atau beberapa atribut yang tidak layak dimiliki oleh kelas tersebut, karena secara logis atribut tersebut lebih layak dimiliki oleh asosiasi yang menghubungkan kedua kelas tersebut.
Akan lebih mudah dipahami jika kita menganalogikan hal ini dengan diagram ERD, dimana sesuai dengan hukum-hukum tertentu maka jika ada sebuah relasi binary atau ternary maka harus dibuatkan sebuah entitas tambahan yang merupakan entitas transaksi untuk menampung record-record transaksi yang terjadi antar entitas murni. Entitas transaksi yang tercipta tersebut mirip sekali dengan association class. Berikut adalah contoh sebuah association class.
Teller Pelanggan
{antri} melayani
Gambar 2.18 Contoh Association Class, (Bahrami, 1999)
Seperti yang dilihat pada gambar 2.18 diatas, association class divisualisasikan sama halnya seperti class biasa, hanya saja untuk menghubungkan ke garis asosiasi digunakan garis putus-putus.
d) Multiplisitas (Multiplicity)
Multiplicity atau multiplisitas adalah jumlah banyaknya objek sebuah class yang berelasi dengan sebuah objek lain pada class lain yang berasosiasi dengan class tersebut. Untuk menyatakan multiplisitas anda dapat meletakkannya diatas garis asosiasi berdekatan dengan class yang sesuai.
Ada banyak multiplisitas yang mungkin untuk dipakai. Tabel berikut menjabarkan multiplisitas yang dapat digunakan.
Tabel 2.3 Notasi Multiplisitas
Multiplisitas Arti
* Banyak
0 Nol
1 Satu
0..* Nol atau banyak
1..* Satu atau banyak
0..1 Nol atau satu
1..1 Hanya satu Sumber : (Nugroho,Adi, 2005) Company Person Employer WorksFor Salary Employee
e) Generalisasi dan Pewarisan (Generalization & Inheritance)
Menurut Nugroho (2005) generalisasi dapat di definisikan sebagai barikut:
“Suatu cara yang sangat berdaya guna untuk berbagi apa yang dimiliki suatu kelas (objek) bagi kelas-kelas (objek-objek) yang lain”, (Nugroho, 2005).
Generalisasi adalah relasi keatas beberapa sub kelas diatasnya yang ditunjukan dengan tanda segitiga.
Gambar 2.19 Contoh Generalisasi, (Nugroho,Adi, 2005)
Sebuah class (child class atau subclass) dapat mewarisi atribut-atribut dan operasioperasi dari class lainnya (parent class atau super class) dimana parent class bersifat lebih umum daripada child class. Generalisasi pada konsep Object Oriented digunakan untuk menjelaskan hubungan kesamaan diantara class. Dengan menggunakan generalisasi bisa dibangun struktur logis yang bisa menampilkan derajat kesamaan atau perbedaan diantara class-class. Manfaat lain dari struktur hirarkis juga memungkinkan untuk penambahan subclass (child class) baru tanpa harus merubah struktur yang sudah ada.
Inheritance adalah sebuah mekanisme pengimplementasian generalisasi dan spesialisasi. Aturan inheritance dapat secara umum bisa diklasifikasikan sebagai berikut :
a) Subclass selalu mewarisi semua sifat dari superclass-nya.
b) Definisi subclass selalu mencakup paling tidak satu detil yang tidak diturunkan dari superclass-nya.
Kendaraan Nomor kendaraan Nama kendaraan Tahun pembuatan harga Truk Tipe Kabin Kapasitas Mobil Jumlah penumpang Jumlah pintu
a. Agregasi (Agregation)
Agregasi adalah sebuah hubungan dimana satu kelas “whole” yang lebih besar berisi satu atau lebih kelas “part” yang lebih kecil. Atau kelas “part” yang lebih kecil adalah bagian dari kelas “whole” yang lebih besar.
Agregasi disimbolkan dengan jajaran genjang yang diletakkan pada class yang mengandung objek.
Gambar 2.20 Contoh Agregasi Bertingkat, (Nugroho, 2005). b. Dependency Class
Pada penggunaan relasi kadangkala satu class menggunakan class yang lain, hal ini disebut dependency. Umumnya penggunaan dependency digunakan untuk menunjukkan operasi pada suatu class yang menggunakan class yang lain. Notasi untuk dependency pada UML dapat menggunakan garis putus-putus dan tanda panah pada ujungnya.
Gambar 2.21 Contoh Dependency (Munawar, 2005) 2.7.4.2 Use case Diagram
Use case dalam UML didefinisikan sebagai :
“a graph of actors, a set of use case enclosed by a system boundary , communication (participation), association between the actors and the use cases, and generalization among the use case”, (Bahrami, 1999).
System
Use case akan menggambarkan cara kerja suatu software dengan aktor. Dalam use case diagram akan digambarkan hubungan antara aktor dengan use case. Aktor adalah orang atau subsistem lain yang akan berinteraksi dengan sistem. Sementara use case menggambarkan proses yang akan dilakukan oleh aktor terhadap sistem.
Gambar 2.22 Contoh Notasi Use case Diagram, (Nugroho, 2005). Tabel 2.4 Notasi Use case Diagram
Actor Actor adalah pengguna sistem. Actor tidak terbatas
hanya manusia saja, jika sebuah sistem berkomunikasi dengan aplikasi lain dan membutuhkan input atau memberikan output, maka aplikasi tersebut juga bisa dianggap sebagai actor.
Actor
Use case Use case digambarkan sebagai lingkaran elips dengan
nama use case dituliskan didalam elips tersebut. Use Case Name
Association Asosiasi digunakan untuk menghubungkan actor dengan
use case. Asosiasi digambarkan dengan sebuah garis
yang menghubungkan antara Actor dengan Use case.
Depends on Menyatakan hubungan ketergantungan antar Use case, yakni pelaksanaan suatu use case baru bisa dilakukan setelah pelaksanaan use case lain selesai.
Sumber : www.sparxsystems.com
Berbicara mengenai use case diagram tidak akan terlepas dengan hal yang disebut stereotype. Stereotype adalah sebuah model khusus yang terbatas untuk kondisi tertentu. Untuk menunjukkan stereotype digunakan symbol “<<” diawalnya dan ditutup dengan “>>” diakhirnya. Terdapat 2 stereotype paling sering digunakan dalam use case diagram yaitu <<extend>> dan <<include>>. <<extend>> digunakan untuk menunjukkan bahwa satu use case merupakan
tambahan fungsional dari use case yang lain jika kondisi atau syarat tertentu dipenuhi. Sedangkan <<include>> digunakan untuk menggambarkan bahwa suatu use case seluruhnya merupakan fungsionalitas dari use case lainnya.
Berikut adalah contoh use case diagram :
Gambar 2.23 Contoh Use case Diagram (Nugroho, 2005).
Notasi di bawah ini berarti pelaksanaan ‘use case1’ tergantung kepada pelaksanaan ‘use case2’, dengan kata lain ‘use case1’ baru bisa dilakukan setelah ‘use case2’ terpenuhi/selesai dijalankan.
Berikut adalah contoh Hubungan Depends-On :
Gambar 2.24 Contoh Hubungan Depends-On(Whitten dkk, 2004). 2.7.4.3 Sequence Diagram
Sequence diagram menggambarkan interaksi antar objek didalam dan disekitar sistem (termasuk pengguna, display dan sebagainya) berupa message yang digambarkan terhadap waktu. Sequence diagram biasa digunakan untuk menggambarkan skenario atau rangkaian langkah-langkah yang dilakukan sebagai respon dari sebuah event untuk menghasilkan output tertentu.
Establis h Bank Account Make a Withdrawal Make a Deposit <<depends on>> <<depends on>>
Sequence diagram terdiri dari sumbu vertikal putus-putus yang merepresentasikan “lifetime” objek dan sumbu horizontal yang menunjukan sekumpulan objek yang saling berinteraksi dalam sistem. Diagram ini menjelaskan bagaimana objek berinteraksi dengan objek yang lainnya yaitu dengan cara mengirim dan menerima pesan. Komunikasi antar objek tersebut ditandai dengan garis horizontal yang disertai dengan nama operasinya.
Gambar 2.25 Contoh Sequence Diagram, (Bahrami, 1999). Berikut adalah notasi Sequence Diagram
:
Tabel 2.5 Notasi Sequence Diagram
Object Object merupakan instance dari sebuah class dan
dituliskan tersusun secara horizontal. Digambarkan sebagai sebuah class (kotak) dengan nama objek didalamnya yang diawali dengan sebuah titik koma.
Actor Actor juga dapat berkomunikasi dengan objek, maka actor
juga dapat diurutkan sebagai kolom. Simbol Actor sama dengan simbol pada Actor Use case Diagram.
Actor
Lifeline Lifeline mengindikasikan keberadaan sebuah objek dalam
basis waktu. Notasi untuk Lifeline adalah garis putus-putus vertikal yang ditarik dari sebuah objek.
Activation Activation dinotasikan sebagai sebuah kotak segi empat
yang digambar pada sebuah lifeline. Activation mengindikasikan sebuah objek yang akan melakukan sebuah aksi.
Call er Exchange Recei ver T al k
OffHo ok Dial T one Di alNumber RingT one OffHo ok OnHo ok
Actor
Massage Message, digambarkan dengan anak panah horizontal antara Activation. Message mengindikasikan komunikasi antara objek-objek
Sumber : www.sparxsystems.com 2.7.4.4 Collaboration Diagram
Collaboration diagram menggunakan prinsip yang sama dengan sequence diagram yaitu digunakan untuk memperlihatkan aliran-aliran pada use case. Sementara sequence diagram berurutan menurut waktu, collaboration diagram berfokus pada relasi-relasi yang terjadi antara objek yang satu dengan objek-objek yang lainnya. Pada collaboration diagram ini, objek-objek dan message (pesan) yang ada digambarkan mirip seperti flowchart. Untuk menjaga urutan pesan yang diterima oleh masing-masing objek, pesan tersebut diberi nomor urutan pesan. Tabel 2.6 Notasi Collaboration Diagram
Object Object merupakan instance dari sebuah class. Digambarkan
sebagai sebuah class (kotak) dengan nama objek didalamnya yang diawali dengan sebuah titik koma.
Actor Actor juga dapat berkomunikasi dengan objek, maka actor juga
dapat disertakan ke dalam collaboration diagram. Simbol Actor sama dengan simbol pada Actor Use case Diagram.
Message Message, digambarkan dengan anak panah yang mengarah
antar objek dan diberi label urutan nomor yang mengindikasikan urutan komunikasi yang terjadi antar objek.
Sumber : www.sparxsystems.com
Berikut adalah sebuah contoh collaboration diagram yang mengilustrasikan sebuah sistem panggilan genggam (Telephone Call) :
Gambar 2.26 Contoh Collaboration Diagram, (Bahrami, 1999). 2.7.4.5 Activity Diagram (Diagram Aktifitas)
Diagram aktifitas mempunyai kesamaan dengan flowchart karena dapat memodelkan alur kerja dan aktfitas dari sebuah sistem.
Activity diagram didefinisikan sebagai berikut (Bahrami, 1999):
“An activity diagram is a variation or special case of the state machine, in which the states are activities representing the performance of operations and the transitions are triggered by the completion of the operations”, (Bahrami, 1999).
Activity diagram didefinisikan sebagai berikut (Whitten dkk, 2004):
“sebuah diagram yang dapat digunakan untuk menggambarkan secara grafis aliran proses bisnis, langkah-langkah sebuah use case atau logika behaviour (metode) object”, (Whitten dkk, 2004).
Diagram aktifitas dapat mempermudah kita dalam memahami proses kerja suatu sistem secara keseluruhan.
Activity diagram digunakan untuk mendokumentasikan alur kerja pada sebuah sistem, yang dimulai dari pandangan business level hingga ke operational level. Pada dasarnya, activity diagram merupakan variasi dari statechart diagram. Activity diagram mempunyai peran seperti halnya flowchart, akan tetapi perbedaannya dengan flowchart adalah activity diagram bisa mendukung perilaku parallel sedangkan flowchart tidak bisa.
Caller Exchange Talk Receiver 1: OffHook 4: RingTone 5: OffHook 3: DialNumber Message 2: DialTone 6: OnHook Object
Berikut adalah notasi activity diagram : Tabel 2.7 Notasi Activity Diagram
Simbol Keterangan
Titik Awal Titik Akhir Activity
Pilihan Untuk mengambil Keputusan
Fork; Digunakan untuk menunjukkan kegiatan yang dilakukan secara parallel / menggabungkan dua kegiatan peralel menjadi satu.
Rake; Menunjukkan adanya dekomposisi Tanda Waktu
Tanda pengiriman Tanda penerimaan Aliran akhir (Flow Final) Sumber : www.sparxsystems.com
Berikut adalah sebuah contoh activity diagram yang menggambarkan sebuah sistem processing mortgage request :
Gambar 2.27 Contoh Activity Diagram, (Bahrami, 1999).