Pemodelan Berorientasi
Objek
Adam Hendra Brata
1
Perancangan Sistem dengan
Analisis Statis
Mulai dari sekarang, diharapkan semua
mahasiswa memperdalam materi PBO secara
lebih mandiri dengan :
membaca buku OOAD yang sudah diupload
bersama
materi pendukung
, yang sudah
diupload sebelum UTS untuk mendukung
pemahaman tentang PBO
membaca materi dan tutorial PBO dan UML
yang bisa didapat dari sumber lain
2
3
Pemodelan Kebutuhan Sistem
Ruang Lingkup
Masalah KebutuhanAnalisis
Pemodelan Perangkat Lunak Diagram Use Case Diagram Sekuensial Diagram Aktivitas
Materi Pertemuan 6
Perancangan Sistem dengan Analisis Statis
Analisis Berorientasi Objek
Analisis Statis
Kelas
Diagram Kelas
Analisis Berorientasi Objek
Object-oriented analysis,
design
and
programming
are related but distinct
OOA
is concerned with developing an object
model of the application domain
OOD
is concerned with developing an
object-oriented system model to implement
requirements
OOP
is concerned with realizing an OOD using
an OO programming language such as Java
or C++
6
Review OOA, OOD & OOP
Analysis is about discovering
what the system is
going to handle, rather than deciding how to
do the handling
We need to decompose a complex set of
requirements into the essential elements and
relationships on which we will base our solution
Analysis is our first opportunity to get to grips
with modeling the real world as objects
7
Analisis Berorientasi Objek dapat dikategorikan
menjadi 2 jenis, yaitu :
Analisis Statis
Dimodelkan dengan diagram kelas
Diagram kelas akan menggambarkan objek –
objek apa saja yang akan di-handle oleh sistem
dan bagaimana objek – objek tersebut
berhubungan antara yang satu dengan yang lain
Analisis Dinamis
Dimodelkan dengan diagram komunikasi untuk
menunjukkan bahwa model statis kita sudah
layak dan benar
8
Langkah – langkah ABO
Gunakan kebutuhan sistem untuk menemukan
kandidat kelas yang dapat mendeskripsikan objek yang relevan dengan sistem dan gambarkan dalam diagram kelas
Temukan hubungan antar kelas (association,
aggregation, composition atau inheritance)
Temukan atribut – atribut dari setiap kelas
Telusuri kembali use case dari sistem yang sudah
dibuat, periksa apakah kelas-kelas yang sudah dibuat dapat mendukung use case tersebut
Catat, perbaharui dan perbaiki jika ada perubahan
dalam analisis
9
Analisis Statis
Analisis statis melibatkan bagian logika atau
bagian fisik dari sistem dan bagaimana
mereka saling terkait satu sama lain
Singkat kata, analisis statis akan
mendeskripsikan bagaimana kita akan
melakukan konstruksi dan inisialisasi sistem
Konstruksi sistem berorientasi objek
Kelas
11
Kelas adalah struktur dasar dari
pengembangan sistem berorientasi objek
Kelas adalah adalah ‘cetak biru’ atau
‘blueprint’ dari objek
Kelas digunakan hanya untuk membuat
kerangka dasar, yang akan kita pakai
nantinya adalah hasil cetakan dari kelas, yakni
objek
Kelas dapat dikatakan adalah definisi abstrak
dari objek
Objek adalah hasil cetak dari kelas, atau hasil
‘konkrit’ dari kelas
12
Struktur kelas secara umum terdiri dari 2
bagian, yaitu :
Atribut / Attribute / Field / Property
Berlaku sebagai data, didefinisikan oleh
kelas,individu, berbeda satu dengan lainnya
Menggambarkan tampilan, status, kualitas dari
objeck
Didefinisikan dalam kelas dengan menggunakan
variabel
13
Perilaku / Behaviour / Operations / Method
Berlaku sebagai method (operasi)
Menggambarkan bagaimana sebuah instance
dari kelas beroperasi misal bagaimana reaksi dari kelas jika diminta untuk melakukan sesuatu hal
Didefinisikan dalam kelas dengan menggunakan
fungsi
14
15
Di dalam notasi struktur kelas dikenal istilah hak
akses atau visibility
Public ( + )
Atribut atau operasi pada kelas tersebut dapat
diakses oleh semua kelas
Private ( - )
Atribut atau operasi pada kelas tersebut hanya
dapat diakses oleh kelas itu sendiri
Protected ( # )
Atribut atau operasi pada kelas tersebut hanya
dapat diakses oleh kelas itu sendiri atau kelas lain hasil turunannya
16
Diagram kelas adalah diagram UML yang
menggambarkan kelas-kelas dalam sebuah sistem
dan hubungannya antara satu dengan yang lain,
serta dimasukkan pula atribut dan operasi
Diagram kelas adalah diagram yang menunjukan
kelas - kelas yang ada dari sebuah sistem dan hubungannya secara logika. Diagram kelas
menggambarkan struktur statis dari sebuah sistem. Karena itu diagram kelas merupakan tulang
punggung atau kekuatan dasar dari hampir setiap metode berorientasi objek termasuk UML
(Henderi, 2008)
Diagram kelas adalah gambar grafis mengenai
struktur objek statis dari suatu sistem, menunjukan
kelas-kelas objek yang menyusun sebuah sistem dan juga hubungan antara kelas objek tersebut
(Whitten L. Jeffery et al 2004)
17
Analisis Statis : Diagram Kelas
18
Analisis Statis : Diagram Kelas
Langkah – Langkah
Analisis Statis
Analisis statis secara umum memiliki langkah –
langkah sebagai berikut :
1. Menemukan kelas
2. Menentukan hubungan tiap kelas
3. Menggambarkan draf diagram kelas
4. Menggambarkan hubungan tiap kelas di diagram
kelas
5. Menentukan atribut dan operasi dari tiap kelas 6. Menentukan ada atau tidaknya kelas baru hasil
hubungan antar kelas
7. Menentukan objek yang Tangible dan Intangible 8. Evaluasi dan revisi secara iteratif sampai terbentuk
diagram kelas yang paling baik mewakili sistem yang akan dibangun
20
Langkah pertama yang “sangat sulit”
21
Menemukan Kelas
Identifying object classes is often a difficult part of
object oriented design
There is no 'magic formula' for object identification,
it relies on the skill, experience and domain
knowledge of system designers
Object identification is an iterative process, you are
unlikely to get it right first time
Use domain analysis as before
Use a grammatical approach based on a natural
language description of the system
Base the identification on tangible things in the
application domain
22
Menemukan Kelas
Hint :
Derive them from the use cases
(descriptions/scenarios)
Candidate classes are often indicated by nouns
in the use cases
Look for data which must be stored or analysed
Are there external systems ?
Are there any devices under the control of the
system ?
Are there any organizational parts ?
23
Menemukan Kelas
24
Menemukan Kelas
1
Kandidat Kelas :
Mahasiswa Mata Kuliah Jadwal
Relasi / Relation
Inheritance
A subclass inherits all of the attributes and behavior
of its superclass(es)
Association
Objects of one class are associated with objects of
another class.
Aggregation
Strong association – an instance of one class is
made up of instances of another class
Composition
Strong aggregation – the composed object can’t
be shared by other objects and dies with its composer
25
2
Menentukan Hubungan Tiap
Kelas
Multiplikasi / Multiplication
n : Exactly n
m..n : Any number in the range m to n
(inclusive)
p..* : Any number in the range p to infinity
* : Shorthand for 0..*
0..1: Optional
26
2
Menentukan Hubungan Tiap
Kelas
Choosing between relationships can be tricky
you need to use intuition, experience and
guesswork
As far as design and implementation are
concerned, the differences between
association, aggregation and composition
can be difficult to spot
27
2
Menentukan Hubungan Tiap
Kelas
28
3
Menggambarkan Draf
Diagram Kelas
29
4
Menggambarkan Hubungan
Tiap Kelas di Diagram Kelas
Asosiasi
Agregasi
Komposisi
30
4
Menggambarkan Hubungan
Tiap Kelas di Diagram Kelas
• A Car has one Engine • An Engine is part of
one Car
• A Car has four or five Wheels
• Each Wheel is part of one Car
• A Car is always composed of one Body
• A Body is always part of one Car and it dies with that Car
• A Car can have any number of Drivers
Atribut dan operasi menentukan “kegunaan”
dari kelas
Definisikan atribut dan operasi dengan “bijak”
sehingga benar-benar dapat mewakili kelas
itu sendiri
Jika masih belum tahu tipe data apa yang
akan digunakan, maka diperbolehkan ditulis
namanya saja tanpa memakai tipe data
Jika sudah memutuskan menggunakan tipe
data apa, tipe data dapat ditulis di bagian
kanan setelah tanda titik dua ( : )
31
5
Menentukan Atribut dan
Operasi dari Tiap Kelas
32
5
Menentukan Atribut dan
Operasi dari Tiap Kelas
• Definisikan atribut
dan operasi dari
tiap kelas dengan
“bijak”
Sering kali dalam proses pendefinisian kelas
ditemukan kelas atau objek baru yang
memiliki sifat sebagai “penjelas” hubungan
dari tiap kelas, umumnya pada asosiasi
33
6
Menentukan Ada atau Tidaknya Kelas
Baru Hasil Hubungan Antar Kelas
Hindari
penggunaan kelas asosiasi (kelas yang
terbentuk dengan garis putus – putus), karena
memerlukan analisa ulang yang rumit
Gunakan kelas konkrit secara langsung
34
6
Menentukan Ada atau Tidaknya Kelas
Baru Hasil Hubungan Antar Kelas
Tangible :
berwujud, nyata
Intangible : tidak berwujud, tidak nyata
35
7
Menentukan Objek yang Tangible
dan Intangible
Informasi mobil yang
dimiliki oleh orang dan
yang ditunjukkan oleh
katalog adalah
sama
Lakukan proses analisis statis dan
pembentukan diagram kelas secara iteratif,
sampai ditemukan formulasi yang paling baik
dan paling mewakili sistem secara utuh dan
keseluruhan
There is no 'magic formula' for object
identification, it relies on the skill, experience
and domain knowledge of system designers
36
8
Evaluasi dan Revisi Secara
Iteratif
Buat diagram kelas dengan menggunakan
analisis statis dari contoh diagram use case ini !