pertemuan 9b-apbo-diagram-klass-dan-relasi

28
CLASS DIAGRAM E. Haodudin Nurkifli Universitas Ahmad Dahlan Pertemuan

Upload: abi-bobon

Post on 26-Jun-2015

274 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Pertemuan 9b-apbo-diagram-klass-dan-relasi

CLASS DIAGRAM E. Haodudin Nurkifli

Universitas Ahmad Dahlan

Pertemuan

Page 2: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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)

Page 3: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 4: Pertemuan 9b-apbo-diagram-klass-dan-relasi

RELASI ANTAR CLASS Assosiation Dependency Links Generalization Realization

Page 5: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 6: Pertemuan 9b-apbo-diagram-klass-dan-relasi

RELASI CLASS - ASSOSIATION

Hubungan statis antar class nama relasi : has a (mempunyai) Dibedakan menjadi dua macam hubungan

khusus : Aggregration Composite

Page 7: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 8: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 9: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 10: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 11: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 12: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 13: Pertemuan 9b-apbo-diagram-klass-dan-relasi

CLASS DIAGRAM

Association:

Company Person

Association name

Work

Name Direction Arrow

Navigability:

Order Order Item

Navigability (Direction of association)

has

Page 14: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 15: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 16: Pertemuan 9b-apbo-diagram-klass-dan-relasi

CLASS DIAGRAM

Composition :

CarHandle

handle

Car

handle:Handleengine[]:Enginetire[4]:Tire

Engine

1

engine

1

1

1

Tiretire

4

1

Detail of the class

Page 17: Pertemuan 9b-apbo-diagram-klass-dan-relasi

Player TeamPlays on

Employee(pegawai)

employer

Player Team

Plays on

Employs (memperkerjakan)

Page 18: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 19: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 20: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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)

Page 21: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 22: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 23: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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)

Page 24: Pertemuan 9b-apbo-diagram-klass-dan-relasi
Page 25: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 26: Pertemuan 9b-apbo-diagram-klass-dan-relasi

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

Page 27: Pertemuan 9b-apbo-diagram-klass-dan-relasi

CONTOH CLASS DIAGRAM

Page 28: Pertemuan 9b-apbo-diagram-klass-dan-relasi

PACKEGE Sesuai dengan perkembangan class model, class

dapat dikelompokkan menjadi package. Kita juga dapat membuat diagram yang terdiri

atas package.