E. Haodudin Nurkifli Universitas Ahmad Dahlan Pertemuan Class Diagram E. Haodudin Nurkifli Universitas Ahmad Dahlan Pertemuan
CLASS DIAGRAM Sebuah class adalah merupakan sebuah kategori/kelompok benda-benda dialam atau kelompok dari benda-benda yang mempunyai atribute yang sama dan prilaku (behaviour) yang sama 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). Menggambarkan struktur dan deskripsi class, package dan object beserta hubungan satu sama lain seperti containment, pewarisan, asosiasi, dan lain-lain. Class memiliki tiga area pokok : Nama (dan stereotype) Atribut Metoda Sifat Atribut serta Metoda : Private (tidak dapat dipanggil dari luar class ) Protected ( dapat dipanggil oleh class yang bersangkutan dan yang mewarisinya) Public (dapat dipanggil oleh siapa saja)
Class Diagram Class Diagram Format and sample class: Package::Class Person visibility attribute:Type= Default value - name:String - address:String visibility Operation (Parameter):Return Type +setAddress(address:String) +getAddress():String +setName(name:String) +getName():String Visibility + Public : Able to access from any classes # Protected : Able to access from same class and its inherited classes ˜ Package : Able to access within same package - Private : Able to access from same class
Relasi Antar Class Assosiation Dependency Links Generalization Realization
Relasi antar class Class Diagram Format and association: Class Name Role name Association name Role name Navigability Attributes Attributes 1 1..* Operations (Methods) Operations (Methods) Multiplicity Multiplicity Notation 1 : One and only one 0..* : None or more 1..* : One or more 0..1 : None or one
Relasi Class - Assosiation Hubungan statis antar class nama relasi : has a (mempunyai) Dibedakan menjadi dua macam hubungan khusus : Aggregration Composite
Assosiation - Aggregation hubungan yang menyatakan class dan bagian komponennya Dinyatakan sebagai suatu bagian sebuah class yang utuh (the whole class) dan class componennya Sebuah garis menghubungkan antara “whole class” dan ccomponen class dengan sebuah belah ketupat yang tertutup di ujung dekat whole class Contoh : relasi class Komputer dengan komponenny
Class computer- Aggregation CPU Box Keyboard
Assosiation - composite agrregration yg sangat kuat Setiap komponen dalam relasi composite dapat memiliki hanya satu “whole class” Simbol : belah ketupat yang diblok Contoh : relasi meja dengan komponennya
Class Diagram: Composit,Generalization The Class Diagram illustrates how the object classes of a use case are related. It consists of Class, Interface, and Relationship : Restaurant Employee Table 1 4 TableTop Leg Waiter(pelayan) Chef (kepala Tukang masak) Chef is-a employee (Generalization) Waiter is-a employee (Generalization) Restaurant has-a table (Composition) Restaurant has-a employee (Aggregation) Table has-a Table Top & Leg (composite)
Assosiation Type Unary Assosiation (suatu class berhubungan dengan dirinya sendiri Binary Assosiaton (dua buah class saling berhubungan Ternary Assosiation : Tiga buah class saling berhubungan n-ary Assosiation : banyak kelas saling berhubungan
Assosiation Type 1. Unary Assosiation 2. Benary Assosiation + manages Employee Class name atribute Operations Assosiation name Multiplicity 2. Ternary Assosiation Class name atribute Operations Assosiation name
Class Diagram has Association: Navigability: Association name Work Company Person Name Direction Arrow Navigability: Navigability (Direction of association) has Order Order Item
Multiplicity (kardinalitas) Jumlah relasi dimana sebuah object mengambil bagian dalam assosiasi Jumlah relasi diindikasikan dengan dua nilai : pertama minimum relasi dan maksimum Multiplicity Explanation 1 One and only one 0..* None or more 1..* One or more 0..1 None or one n..n A continuous range, such as 2 to 4
Class Diagram Aggregation : Aggregation Indicator Multiplicity 1 1 Person Company 1 Owner (pemilik) Role 1..* Person Employee (pegawai) Company owner:Person employee[]:Person Detail of the class
Class Diagram Composition : 1 1 Handle Car handle 1 1 1 Engine engine handle:Handle engine[]:Engine tire[4]:Tire 4 Tire tire Detail of the class
Employs (memperkerjakan) Player Plays on Team Employee(pegawai) employer Plays on Player Team Employs (memperkerjakan)
Constrain assosiation Terkadang sebuah assosiation antara dua class mengikuti sebuah rule sesuai batasannya (constraint) BankTeller melayani customer tapi setiap customer di layani dalam suatu order Untuk mengidikasikan sebuah konstraint dengan memberikan role name ordered yang ditulis diantara tanda {...} pada class customer BankTeller Customer {ordered} servers HighSchoolStudent academic Commercial {or} Choose
Relasi class - Links Link digunakan untuk merelasikan dua buah class secara spesifik Merupakan assosiation yang sangat spesifik Assosiation name ditulis dengan underline Contoh untuk merelasikan siapa yang bermain dalam suatu tim khusus Budi:Player GoldTeam:Team Plays on Links :Player :Team Plays on Assosiation
Relasi Class - Generalization Hubungan hirarkis antar class. Class dapat diturunkan dari class lain dan mewarisi semua atribut dan metoda class. Nama relasi : is a (adalah) Employee Waiter(pelayan) Chef (kepala Tukang masak)
Relasi Class - Dependency Digunakan untuk menunjukkan sebagai tanda bahwa suatu operasi dari suatu class menggunakan class yang lain Mesalnya : penggunaan menu untuk memilih form yang akan diisi System dispalyForm() Form
Abstract classes Sama dengan class biasa bedanya abstract class memiliki method yang kosong untuk didefinisikan oleh user sendiri Tidak bisa dibuat obyeknya karena ada method yang kosong Hanya dapat di turunkan (di- inherit-kan) ke subclass dan sub class tersebut akan mendefinisikan method yang kosong tersebut Dalam class diagram nama dari abstract class di tulis dengan huruf miring atau dengan memberikan role / keyword “{abstract}” pada class name-nya Contoh : Basketball model
Interface adalah suatu pengaturan operasi (set of operations) yang menetapkan beberapa aspek/pengarah dari suatu perilaku kelas. Interface tidak dapat langsung diinstansiasikan, tetapi harus diimplementasikan dahulu menjadi sebuah class. Dengan demikian interface mendukung resolusi metoda pada saat run-time.
Relasi Class - Realization Hubungan antara sebuah class dengan suatu interface Menggunakan simbol garis putus-putus dan segtiga tidak di blok Realization dependency UML 1.5 Symbol Washing Machine <<interface>> Control knob Person UML 2.0 symbol CotrolKnob Washing Machine Person
Interface & Ports Computer Port Digunakan untuk menghubungkan antara sebuah interface dengan sebuah class Contoh : mouse adalah sebuah interface untuk sebuah computer (class) sedangkan mouseport adalah sebuah port yang menghubungkan mouse (interface) denga komputer (class) Object mouse didefinisikan sebagi sebuah object yang memiliki event-event seperti : click(), move(), up(),down(),dan programmer yang akan menggunakan event mouse dalam programnyadiharuskan mendefinisikan seluruh behaviour(event) yang dimiliki mouse tersebut. Jika tidak ingin melakukan apa-apa ketika mouse digerakkan maka cukup mendeklarasikan ulang method kosong dari interface tersebut UML 2.0 symbol Computer Mouse MousePort
CONTOH CLASS DIAGRAM
Packege Sesuai dengan perkembangan class model, class dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri atas package.