Download - Pertemuan 9b-apbo-diagram-klass-dan-relasi
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 :
1. Nama (dan stereotype)
2. Atribut
3. 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 DIAGRAMClass Diagram Format and sample class:
Package::Class
visibility attribute:Type= Default value
visibility Operation (Parameter):Return Type
+ 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
Visibility
Person
- name:String- address:String
+setAddress(address:String)+getAddress():String+setName(name:String)+getName():String
RELASI ANTAR CLASS Assosiation Dependency Links Generalization Realization
RELASI ANTAR CLASSClass Diagram Format and association:
Class Name
Attributes
Operations(Methods)
Class Name
Attributes
Operations(Methods)
Multiplicity
Associationname
1 : One and only one0..* : None or more1..* : One or more0..1 : None or one
Multiplicity Notation
1 1..*
NavigabilityRole name
Role name
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
1..1
1..*
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..*
1..1
1..*
1..1
1..1
1..1
1..1
1..1
1..1
1..1
1..*
1..1
1..1
1..1
*
Home Computer
Speaker CPUBoxKeyBoard Monitor
Mouse
DiskDrive HardDrive RAM CDRom GraphicChard SoundChard Button MouseBall
CPU BoxKeyboard
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 :
• 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)
Restaurant
Table
TableTop
Employee
Waiter(pelayan) Chef(kepala Tukang masak)
Leg
1 4
ASSOSIATION TYPE
1. Unary Assosiation (suatu class berhubungan dengan dirinya sendiri
2. Binary Assosiaton (dua buah class saling berhubungan
3. Ternary Assosiation : Tiga buah class saling berhubungan
4. n-ary Assosiation : banyak kelas saling berhubungan
ASSOSIATION TYPE
+ manages
Employee Class name
atribute
Operations
Class name
atribute
Operations
Assosiation name
Multiplicity
Class name
atribute
Operations
Class name
atribute
Operations
Class name
atribute
Operations
Assosiation name
1. Unary Assosiation 2. Benary Assosiation
2. Ternary Assosiation
CLASS DIAGRAM
Association:
Company Person
Association name
Work
Name Direction Arrow
Navigability:
Order Order Item
Navigability (Direction of association)
has
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 :
Company Person
Multiplicity
Owner(pemilik) Role
Company
owner:Personemployee[]:Person
Person
1
Employee(pegawai)
1..*
1
1
Aggregation Indicator
Detail of the class
CLASS DIAGRAM
Composition :
CarHandle
handle
Car
handle:Handleengine[]:Enginetire[4]:Tire
Engine
1
engine
1
1
1
Tiretire
4
1
Detail of the class
Player TeamPlays on
Employee(pegawai)
employer
Player Team
Plays on
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
HighSchoolStudent
academic
Commercial
{or}
Choose
Choose
BankTeller Customer{ordered}
servers
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:TeamPlays on
Links
:Player :TeamPlays 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
Player
{abstract}
-----
nameheightweightrunningSpeedverticalLeap
: std::string: int: int: int: int
++++
dribbleBall ()passBall ()rebound ()shoot ()
: void: void: void: void
Guard
++
runOffense ()bringBallUpcount ()
: void: void
Forward Center
+ slamDunk () : void
Clock
{abstract}
+ trackTime () : void
GameClock ShortClock
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.
Televisi/computerUser
Rem
ote Controller
Turn On(assosiation)
Message to turn on(Realization)
Interface
Person
Washing Machine
Control knob(interface)
RELASI CLASS - REALIZATION Hubungan antara sebuah class dengan suatu interface Menggunakan simbol garis putus-putus dan segtiga
tidak di blok
Washing Machine
<<interface>>
Control knobPerson
Washing Machine
Person
UML 1.5 Symbol
UML 2.0 symbol
CotrolKnob
dependencyRealization
INTERFACE & PORTS 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
ComputerMouse MousePort
CONTOH CLASS DIAGRAM
PACKEGE Sesuai dengan perkembangan class model, class
dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri
atas package.