Professional Documents
Culture Documents
08 RPL S1pti Uml
08 RPL S1pti Uml
RPL
Conventional vs OO Approach
RPL
Traditional vs OO Approach
Conventional Approach OO Approach
Is
Data Stucture
replaced
Hierarchy by
Class Hierarchy
Procedure
Hierarchy
RPL
Conventional vs OO Approach
Conventional Approach OO Approach
Class A
Is
Data Stucture State A
replaced
Hierarchy by Behavior A
Procedure
Hierarchy
RPL
Conventional vs OO Approach
Tree (Otoriter) Graph (Egaliter)
x O-1
O-2 O-6
a d O-3
O-7
O-4
b c e
O-5
f g h
RPL
OO Approach
• Uses object-orientation as a basis of modeling
• Models a system as a set of objects that interact with
each others
• No semantic gap
• Seamless development process
RPL
The Nature of an Object
RPL
The Nature of an Object
• An Object has state, behavior, and identity
• State: encompasses all of the (usually static) properties of the
object plus the current (usually dynamic) values.
• Behavior: how object acts and reacts, in term of its state
change and message passing)
• Identity: property of an object wich distinguishes it from all
other objects
RPL
Object State
RPL
Object Behavior
RPL
Object Behavior
• Modifier an operation that alter the state of object
(writer or accessor operation)
• Selector an operation that accesses the state of an
object, but does not alter the state (reader operation)
RPL
Relationship Among Objects
RPL
Relationship Among Objects: Using
• Using Relationship antar objek dapat mengirimkan
pesan
Contoh: Pengontrol temperatur USING sensor dan
pemanas.
• Actor: objek yang dapat mengoperasikan objek lain
tetapi tidak pernah dioperasikan oleh objek lain
• Server: objek yang tidak pernah mengoperasi objek
lain, hanya dioperasikan oleh objek lain
• Agent: objek yang dapat mengoperasikan dan
dioperasikan objek lain
RPL
Contoh Using Relationship
Tampilan
• turnON
Pemanas
• turnOFF
Trade-offs
• Keuntungan: mengurangi jumlah objek
yang tampak
• Kerugian: menimbulkan kopling kuat
antar objek
RPL
Contoh Containing Relationship
Tampilan
RPL
RPL
Tujuan
RPL
Unified Modeling Language
RPL
UML merupakan Penggabungan
RPL
Tujuan Proyek Penyatuan
Ditentukan oleh Booch, Rumbaugh, dan Jacobson
(2005):
• Untuk memodelkan sistem, dari konsep ke artefak
yang dapat dieksekusi, menggunakan teknik
berorientasi objek
• Untuk mengatasi masalah skala yang melekat dalam
sistem yang kompleks
• Untuk membuat bahasa pemodelan yang dapat
digunakan oleh manusia maupun mesin
RPL
Klasifikasi Diagram-diagram UML
• Struktural
Berkaitan dengan menangkap dan menetapkan unsur
statis dan hubungan antar mereka yang diperlukan
untuk mendukung solusi untuk masalah yang diberikan,
dalam konteks tertentu
• Perilaku
Berkaitan dengan menangkap dan menetapkan perilaku
dinamis dan kompleksitas yang melekat ada dalam
aspek perilaku sistem perangkat lunak
RPL
UML - Standard Diagrams
Class diagram
Structural Object diagram
diagrams
Component diagram
Activity diagram
RPL
Mengapa UML?
RPL
Dasar UML
Classifier Deskripsi
Use case Classifier digunakan untuk model perilaku sistem tunggal;
diwakili dengan ikon bentuk elips
Component Merupakan bagian sistem modular dan dapat diganti;
dimodelkan menggunakan kotak dengan kata kunci
<< komponen >> dan opsional komponen ikon di pojok
kanan atas
Class Classifier digunakan untuk model tipe dalam hal operasi,
atribut, hubungan, dan semantik lainnya; dimodelkan
dengan kotak persegi panjang
RPL
Dasar UML
Classifier Deskripsi
Active class Classifier digunakan untuk model kelas yang memiliki aliran
eksekusi independen dan dapat mengawali aktivitas
pengendalian;
dimodelkan sebagai kelas dengan garis ganda di setiap sisi
Interface Classifier yang memodelkan set operasi yang menentukan
layanan yang diberikan oleh kelas atau komponen;
direpresentasikan sebagai kelas stereotip atau menggunakan
notasi bola-dan-socket
RPL
Dasar UML
Classifier Deskripsi
RPL
Class
RPL
Struktur Class
RPL
Class Diagram Relationships
RPL
Association
RPL
Association
RPL
Aggregation
RPL
Aggregation
• An aggregation is a special case of association
denoting a “consists of” hierarchy.
• The aggregate is the parent class, the
components are the children class.
Exhaust System
1 0..2
Muffler Tailpipe
RPL
Aggregation
RPL
Aggregation Class B
{
public:
Class A B();
{ ~B();
public: SayHello()
A(); {
~A(); a = new A();
}; }
private:
A *a;//A aggregation to B
}; RPL
Composition
• Composition Class A memiliki Class B.
Contoh: Tubuh terdiri dari lengan, Kepala, Kaki
• Disebut "STRONG relationship”:
Instansiasi objek terkait hard coded di dalam
constructor dari objek
• Whole-part relationship : bagian yang tidak boleh
dipisahkan
RPL
Composition
• A solid diamond menunjukkan composition,
bentuk agregasi yang kuat dimana komponen
tidak dapat eksis tanpa agregat.
Buku
3
Halaman
RPL
Composition
Class A Class B
{ {
public: public:
A(); B();
~A(); ~B();
}; private:
A a;//A composition to B
};
RPL
Generalization
RPL
Sample Class Diagram
RPL
Use Case
RPL
Use Case Diagram
RPL
The <<Include>> Relationship
• Use case <<include>> adalah hubungan terarah
antara dua use case yang digunakan untuk
menunjukkan bahwa perilaku use case yang
dimasukkan (penambahan) dimasukkan ke dalam
perilaku dari use case (base use).
• Hubungan <<include>> bisa digunakan:
– untuk menyederhanakan use case besar dengan
membaginya menjadi beberapa use case,
– untuk mengekstrak bagian umum dari perilaku dua
atau lebih use cases.
RPL
The <<Include>> Relationship
RPL
The <<Include>> Relationship
• Include adalah Relasi use case tambahan ke
sebuah use case dimana use case yang
ditambahkan memerlukan use case ini untuk
menjalankan fungsinya.
• Include yaitu dimana use case yang dituju harus
melewati sebuah proses yang lain.
RPL
The <<Include>> Relationship
• Include adalah Relasi use case tambahan ke sebuah use case dimana use case
yang ditambahkan memerlukan use case ini untuk menjalankan fungsinya.
• Include yaitu dimana use case yang dituju harus melewati sebuah proses yang
lain.
RPL
Contoh <<include>>
RPL
Contoh <<include>>
RPL
The <<extend>> Relationship
• Extend adalah Relasi use case tambahan ke
sebuah use case dimana use case yang
ditambahkan dapat berdiri sendiri walau tanpa use
case tambahan itu.
• Extend yaitu dimana use case yang dituju berdiri
sendiri tanpa harus melewati sebuah proses yang
lain.
RPL
The <<extend>> Relationship
Passenger
PurchaseTicket
<<extend>>
<<extend>>
<<extend>>
OutOfOrder <<extend>> TimeOut
RPL
Use Case Realization
RPL
RPL