Title: Class Diagram
1Class Diagram
- Membantu dalam visualisasi struktur kelas-kelas
dari suatu system dan hubungan antar kelas
(inheritance, aggregation, and association) dan
penjelasan detail tiap kelas (methode/function/beh
avior dan atribut/property/data) - Diagram ini merupakan fondasi untuk component
diagram dan deployment diagram - Diagram paling penting pada object oriented
analysis and design - Class digambarkan dengan sebuah kotak dengan 3
section
- Disarankan untuk tidak menggambar tanpa 3 section
ini - Kadang-kadang boleh ada section tambahan untuk
menggambarkan keterangan class - Setiap atribut/methode/association diperbolehkan
ada sebuah keterangan atribut/methode yang
diletakkan diantara tanda - Sebuah class atau atribut/methode bisa mempunyai
dokumentasi dengan lambang dibawah ini dan
ditarik dengan garis putus tanpa panah
2Class Diagram
- Visibility
- Menyatakan level akses sebuah object
- Visibility dapat diterapkan pada atribut atau
methode - Tampilkan visibility secara urut berkelompok
mulai dari urutan tertinggi - Type data (int,float,char) dari sebuah atribut
dapat disertakan - design class model define the structure of your
object source code and therefore should reflect
the naming conventions for the implementation
language that you using - There are 4 types
Contoh
Visibility Symbol
Public
Protected
Private -
class A
A2 int 100 - A1 int
ENTRYA1( ) void ENTRYA1( ) void
3Class Diagram
class A
Private A1
Protected A2
Public Entry A1( ) EntryA2( )
Contoh konsep Inheritance pada class
Contoh Program
class B
class C
- includeltiostream.hgt
- class A
- int A1
- protected
- int A2
- public
- void ENTRYA1( )
- coutltlt"Entry A1 "
- cingtgtA1
- void ENTRYA2( )
- coutltlt"Entry A2 " cingtgtA2
private
public
Private A2 Entry A1( ) EntryA2( )
Protected
Public
Private
Protected A2
Public Entry A1( ) EntryA2( )
private
public
class CA int C1 public void ENTRYC()
coutltlt"C1 "cingtgtC1 // coutltlt"A1
"cingtgtA1//error coutltlt"A2 "cingtgtA2
class B public A int B1 public void
ENTRYB( ) coutltlt" B1 " cingtgtB1 //
coutltlt" A1 " cingtgtA1//error coutltlt" A2 "
cingtgtA2
void main() B JONI C TUTI JONI.ENTRYB(
) JONI.ENTRYA1( ) JONI.ENTRYA2( ) TUTI.ENTRYC(
) //TUTI.ENTRYA1( )//ERROR //TUTI.ENTRYA2(
)//ERROR
4Class Diagram
- Association classes/link classes (Many to Many
association) - Which is used to model association that have
methods and attributes - depicted as class attached via a dashed line to
association - Programming language such as C and java do not
(yet) have native support this concept - Do not name association that have association
classes - Center the dashed line of an association class
- Kurangi penggunaan association class ini,
sehingga tidak perlu menambah sebuah pekerjaan
pada tahap analisa
- Berikut ini adalah gambar class diagram dari
gambar diatas yang tanpa menggunakan association
class
5Class Diagram
- Relationship
- Association
- Inheritance/generalization
- Aggregation
- Composition
- Dependencies
- Realizations
Association
- When classes are connected together conceptually,
that connection is called an association - An association allows one class to know about the
public attributes and methode of another class - Center names on association
- Gunakan kalimat singkat
- Indicate directionality with a filled triangle (
? ) to clarify an association name - Sebuah association dimungkinkan adanya sebuah
constraint yang menggambarkan sebuah kondisi
(lihat gambar dibawah ada kata NAND) - Indicate role names when multiple associations
between 2 classes exist - Role names are optionally indicated on
association ends to indicate how a class is
involved in the association - Role names can be used to clarify recursive
associations
6Association - Class Diagram
- Association unidirectional menggunakan garis
berpanah terbuka - Association bi-directional menggunakan garis
tanpa panah - Association may be drawn as a diamond for
association with more than two ends
Indicator Meaning Example
0..1 Zero or one
0.. Zero or more
0..n Zero to n (where ngt1) 0..3
1 One only
1.. One or more
1..n One to n (where ngt1) 1..5
Many
n Only n (where ngt1) 9
n.. n or more, where n gt1 7..
n..m Where n m both gt1 3..10
Binary and Ternary association
Dibaca 1 object Mahasiswa punya 0.. object
Nilai dan 1 object Nilai dipunyai 1 object
Mahasiswa
7Inheritance/generalization - Class Diagram
- Two or more classes will share the same
attributres and/or the same methods - Inheritance use a line with a closed arrowhead (
? ) pointing from the sub class to the super
class - Place sub class below super class
- A sub class should inherit attributes and methods
of its superclass
8Aggregation and Composition - Class Diagram
- Represent is part of relationship, ketika
sebuah class dibuat berdasarkan class lainnya
maka gunakanlah aggregation atau composition - When deciding whether to use aggregation or
composition over association, you can say if in
doubt, leave it out - There is very little difference between
association, aggregation and composition at the
coding level - Aggregation
- Aggregation menggunakan lambang diamond terbuka ?
- Aggregation is a specialization of association,
specifying a whole part relationship between
objects - Composition
- Composition menggunakan lambang diamond tertutup
- Composition is a strong type of a aggregation
- Composition is a stronger form of aggregation
where the whole and parts have coincident
lifetimes, and it is very common for the whole to
manage the lifecycle of its parts
9Dependencies and Realizations - Class Diagram
- Dependencies
- Dependencies adalah Sebuah class yang membutuhkan
class lain untuk spesifikasi classnya - Dependencies is shown as a dashed open headed
arrow - Contoh
- Class mobil bergantung pada class Mesin
- Realizations
- Realizations adalah sebuah relasi antar 2 buah
class, dimana class lainnya mewakili sebuah class
implementation (implementation of the later) - Realizations is shown as a dashed close headed
arrow - Disebut dengan istilah lain Interfaces (lihat
materi berikutnya) - The relationship between a class and interfaces
is called realization
atau
10Interfaces - Class Diagram
- An interface is a set of operation that specifies
some aspect of a classs behavior - Interfaces adalah kumpulan fungsi yang dapat
dipakai pada class tanpa menjadi behavior suatu
class. Di bahasa C disebut friend function - Friend function become friend more than 1 class
- Friend function can access private from the other
class - Friend function isnt member a class
Contoh program //Static harus dicompile pake
turbo c includeltiostream.hgt class barang char
nama20 float harga,jumlah static float
bayar,total public void entry( ) cout
ltlt"entry nama "cingtgt nama cout ltlt"entry
jumlah"cingtgtjumlah cout ltlt"entry harga
"cin gtgtharga static void proses(barang
B1) bayar B1.harga B1.jumlah
total total bayar friend void tampil
(barang B1) float kasir( ) return total
void tampil(barang B1) cout ltlt"nama barang "
coutltltB1.nama ltltendl cout ltlt"harga barang
"ltltB1.harga ltltendl cout ltlt"jumlah barang
"ltltB1.jumlahltltendl cout ltlt"bayar "ltltB1.bayar
ltltendl main() barang buku,tas,pena
buku.entry( ) tas.entry( ) pena.entry(
) buku.proses(buku) buku.proses(tas )
buku.proses(pena) tampil(buku) tampil(tas
) tampil(pena) coutltlt"jumlah
bayar"ltltbuku.kasir( ) return 0
11Interfaces - Class Diagram
- The relationship between a class and interfaces
is called realization - Sebuah interfaces dapat digambarkan dengan cara
association sebuah class dengan cara - sebuah class ditulis ltltinterfacesgtgt dengan tidak
mempunyai attributes - small circle connected by a line to the class
- A class can realize more than 1 interfaces, and
an interfaces can be realized by more than 1 class
12Class Diagram
- Ttiga Jenis class utama ENTITY, BOUNDARY,
CONTROL
- Menentukan Stereotype Class
- Entity Class objects menyimpan seluruh data
pada application -
- Boundary Class digunakan actor utk berinteraksi
dg sistem - contoh form, menus, dialog boxes
- Control Class mengatur seluruh kegiatan dan
menangkap - main application logic
- contoh discount complex policy is
complex
13Catatan
Layar/GUI
Penentuan Matrikulasi
Sekretaris Program
Entry Pendaftaran
Staff Pendaftaran
Cetak Kwitansi Pendaftaran
Staff Keuangan
Modul Control
Table/Relasi
Object yg terlibat pada saat Use Case Fill order
14Object Diagram
- Hubungan antara object digambarkan dengan sebuah
garis tanpa panah yang berisi sebuah role/peran,
role ini boleh dipakai atau tidak
- Menggambarkan object dan hubungannya dalam urutan
time, umumnya sebuah special case dari class
diagram atau communication diagram - Digambarkan sebagai sample diagram (diagram yang
menggambarkan sample object dari sebuah class dan
relasi diantaranya) - Sebuah object dapat digambarkan dengan cara
- Nama object nama class
- nama class dan nilai atribut yang terdapat pada
section ke-2
Joni anggota
Anggota
NamaJoni