38
Pemodelan Berorientasi Objek Adam Hendra Brata 1 Perancangan Sistem dengan Analisis Statis

Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

  • Upload
    others

  • View
    21

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Pemodelan Berorientasi

Objek

Adam Hendra Brata

1

Perancangan Sistem dengan

Analisis Statis

Page 2: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 3: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

3Pemodelan Kebutuhan Sistem

Ruang Lingkup

Masalah

Analisis

Kebutuhan

Pemodelan

Perangkat

Lunak

Diagram Use

Case

Diagram

Sekuensial

Diagram

Aktivitas

Diagram Kelas Diagram State

Page 4: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Materi Pertemuan 6

Perancangan Sistem dengan Analisis Statis

Analisis Berorientasi Objek

Analisis Statis

Kelas

Diagram Kelas

4

Page 5: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Analisis Berorientasi Objek

5

Page 6: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 7: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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 ?

Page 8: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 9: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 10: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Analisis Statis

10

Page 11: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 12: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 13: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 14: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 15: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

15Analisis Statis : Kelas

Page 16: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 17: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 18: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

18Analisis Statis : Diagram Kelas

Page 19: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Langkah – Langkah

Analisis Statis

19

Page 20: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 21: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Langkah pertama yang “sangat sulit”

21Menemukan Kelas

1

Page 22: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 23: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 24: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

24Menemukan Kelas

1

Kandidat Kelas :

Mahasiswa

Mata Kuliah

Jadwal

Kartu Rencana Studi

Page 25: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 26: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 27: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 28: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

28

3

Menggambarkan Draf

Diagram Kelas

Page 29: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

29

4

Menggambarkan Hubungan

Tiap Kelas di Diagram Kelas

Asosiasi

Agregasi

Komposisi

Turunan

Page 30: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 31: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 32: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

32

5

Menentukan Atribut dan

Operasi dari Tiap Kelas

• Definisikan atribut

dan operasi dari

tiap kelas dengan

“bijak”

Page 33: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 34: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 35: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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”

Page 36: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 37: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

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

Page 38: Pemodelan Berorientasi Objek · Temukan hubungan antar kelas (association, aggregation, composition atau inheritance) Temukan atribut –atribut dari setiap kelas Telusuri kembali

Terimakasih v^^

38