PERTEMUAN 10 Aggregation, Composite, Interface & Realization
AGREGASI Asosiasi bisa digunakan untuk memodelkan relasi diantara obyek-obyek. Di UML, ada relasi dengan perlakuan khusus yang disebut dengan ‘part of’ yang menangani antar obyek-obyek yang lain. Dengan kata lain sebuah obyek terdiri atas obyek-obyek yang lain. Agregasi adalah terminology yang digunakan di UML untuk menjelaskan hal tersebut. Sebuah agregasi adalah kasus khusus dari asosiasi. Agregasi disimbolkan dengan jajaran genjang yang diletakkan pada class yang mengandung obyek.
AGREGASI * * Contoh Agregasi Email Header Body Attachment 1 1 1 1 * Header Body Attachment Seperti terlihat pada gambar, multiplicity bisa digunakan pada relasi agregasi seperti halnya asosiasi normal.
CONSTRAINT PADA AGREGASI Constrain pada agregasi untuk menunjukkan sebuah komponen atau komponen yang lain sebagai bagian dari keseluruhan. Email 1 {atau} 1 1 1 1 Sop Salad Makanan Utama Makanan penutup
COMPOSITE Composite adalah sebuah tipe agregasi yang kuat dimana bagian dari obyek tergantung pada keseluruhan obyek. Sedemikian kuatnya hubungan ini, bila sebuah obyek composite dibuang, maka bagian yang tergantung pada komponen tersebut akan terbuang juga pada saat yang bersamaan. Notasi composite disimbolkan dengan
COMPOSITE Contoh Composite Email Header Body Attachment Bila email dihapus maka header dan body-nya pun akan terhapus. Relasi antara email dan attachment tidak bisa menggunakan composite, karena attachment bisa dimiliki oleh lebih dari satu email pada saat yang bersamaan serta attachment bisa disimpan, sehingga meskipun emailnya dihapus, attachmentnya tetap masih ada.
INTERFACE & REALISASI Interface adalah satu set operation yang memberikan spesifikasi beberapa aspek dari perilaku dan operation di suatu class ke class yang lain. Relasi antara class dan interface disebut realization, dituliskan dengan garis putus-putus. Contoh Keyboard Pemodelan interface sama dengan pemodelan pada class, hanya saja pada interface tidak mempunyai attribute. Untuk membedakan interface dengan class, pada penamaan interface perlu ditambahkan “<<interface>>” atau ditambahkan huruf “I” didepan nama interface.
<<interface>> INTERFACE & REALISASI Keyboard merk jmlTombol ctrl() alt() PageUp() <<interface>> mesinKetik tekanTombol() Atau bisa juga dituliskan sebagai berikut keyboard Mesin ketik
VISIBILITY Yang sangat dekat hubungannya ke interface dan realisasi adalah konsep visibility. Visibility ditetapkan ke attribute atau operation. Simbol Visibility Keterangan + - # ~ Public Private Protected Package Fitur bisa diakses oleh class manapun Fitur ini hanya boleh digunakan oleh instance dari class Fitur ini hanya boleh digunakan oleh instance class dan anak-anaknya Fitur ini hanya bisa diakses langsung oleh instance sebuah class pada package yg sama
VISIBILITY bankAccount nextAccountNumber : Integer accountName : String (Not Null) availableBalance : Money +open (accountName : String) : Boolean +credit (amount : Money) : Boolean +debit (amount : Money) : Boolean ………… #getBalance () : Money ……… Class Account Bank dengan visibility-nya