Download as pdf or txt
Download as pdf or txt
You are on page 1of 56

Object Oriented

Development & UML


Sistem Informasi
Priyanto
E-mail : priyanto@uny.ac.id
RPL
Requirements
Models for the
Traditional
and
OO Approaches

RPL
Conventional vs OO Approach

Conventional Object Oriented


Algoritmic Abstraction Object Abstraction
Verbs Nouns
Tree topology Graph topology

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

• Benda yang nyata dan/atau tampak


• Sesuatu yang dapat dipahami secara intelektual
• Definisi: Bagian dari realitas yang berada dalam
ruang dan waktu

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

Char Nama[20]; Amir


Char NIM[10]; 07702261014
Char Alamat[30]; Karangmalang, Sleman
Int Umur; 21

RPL
Object Behavior

Void setNama (char nama);


Void setNIM (char nim);
Void setAlamat (char alamat);
Void setUmur (int umur);

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)

• Constructor  an operation that creates an object


and/or initializes its state
• Destructor  an operation that frees the state of an
object and/or the object itself

RPL
Relationship Among Objects

• Using Relationship  antar objek dapat


mengirim pesan
• Containing Relationship  Objek berisi
beberapa objek

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

Current temp Sensor


Current temp
Pengontrol
Temperatur

• turnON
Pemanas
• turnOFF

Identifikasi objek actor, server, dan agent


RPL
Relationship Among Objects: Containing

Trade-offs
• Keuntungan: mengurangi jumlah objek
yang tampak
• Kerugian: menimbulkan kopling kuat
antar objek

RPL
Contoh Containing Relationship

Tampilan

Current temp Sistem Pemanas


Pengontrol Current temp Sensor
Temperatur
• turnON Pemanas
• turnOFF

RPL
RPL
Tujuan

• Memahami peran dan pentingnya Unified


Modeling Language (UML) dalam desain software
• Mengenal diagram struktural dan perilaku umum
UML
• Memahami hubungan antara model UML struktural
dan kode

RPL
Unified Modeling Language

• UML adalah bahasa visual dengan serangkaian


fitur luas yang sesuai untuk merancang sistem
perangkat lunak.
• UML adalah hasil dari kerja kolaboratif bertahun-
tahun dalam merancang pendekatan terpadu
untuk pemodelan sistem perangkat lunak.

RPL
UML merupakan Penggabungan

• The Booch method (devised by Grady Booch);


• the object-oriented software engineering
(OOSE) method (devised by Ivar Jacobson);
and
• The object modeling technique (OMT) method
(devised by James Rumbaugh)

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

UML Use case diagram


Diagrams Sequence diagram
Behavioral Communication diagram
diagrams
State machine diagram

Activity diagram
RPL
Mengapa UML?

Dua alasan utama untuk mempelajari UML:


• UML dapat meningkatkan analisis sistem dan
spesifikasi
• UML meningkatkan komunikasi

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

Node Classifier digunakan untuk model elemen fisik (misal,


komputer), kemampuan pengolahan, dan semantik lainnya;
dimodelkan menggunakan kubus

Artifact Classifier yang memodelkan elemen informasi fisik yang


dapat disebarkan (misal, exe, dll, scrip)

RPL
Class
RPL
Struktur Class

RPL
Class Diagram Relationships

RPL
Association

Association basically is Class A uses Class


B. As an example
• Computer uses keyboard as input device

RPL
Association

RPL
Aggregation

Aggregation: Class A berisi Class B , atau Class A


memiliki instance Class B.
Contoh: Mobil harus memiliki roda

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

Cancel NoChange RPL


Use Case Realization

RPL
Use Case Realization

RPL
RPL

You might also like