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
2PERHATIAN
3Pemodelan Kebutuhan Sistem
Ruang Lingkup
Masalah
Analisis
Kebutuhan
Pemodelan
Perangkat
Lunak
Diagram Use
Case
Diagram
Sekuensial
Diagram
Aktivitas
Diagram Kelas Diagram State
Materi Pertemuan 6
Perancangan Sistem dengan Analisis Statis
Analisis Berorientasi Objek
Analisis Statis
Kelas
Diagram Kelas
4
Analisis Berorientasi Objek
5
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++
6Review OOA, OOD & OOP
#ThrowBack
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
7Why We Need OOA ?
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
8Analisis Berorientasi Objek
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
9Analisis Berorientasi Objek
Analisis Statis
10
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
11Analisis Statis
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
12Analisis Statis : Kelas
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
13Analisis Statis : Kelas
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
14Analisis Statis : Kelas
15Analisis Statis : Kelas
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
16Analisis Statis : Kelas
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)
17Analisis Statis : Diagram Kelas
18Analisis Statis : Diagram Kelas
Langkah – Langkah
Analisis Statis
19
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
20Analisis Statis
Langkah pertama yang “sangat sulit”
21Menemukan Kelas
1
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
22Menemukan Kelas
1
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 ?
23Menemukan Kelas
1
24Menemukan Kelas
1
Kandidat Kelas :
Mahasiswa
Mata Kuliah
Jadwal
Kartu Rencana Studi
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
Turunan
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
tapi berbeda “wujud”
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 !
Kerjakan sebagai latihan dan siap–siap
pertemuan minggu depan akan ada yang
ditunjuk maju secara acak untuk presentasi ^^
37Latihan
Terimakasih v^^
38