Anda di halaman 1dari 9

TI 1163

Pemrograman Berorientasi Objek

Class vs Modul

Analisis & Pemodelan Software system terdiri dari modul-modul,


Sistem Berbasis Objek dimana masing-masing modul memiliki
peran/fungsi yang khusus. Modul-modul
tersebut saling berinteraksi dalam sistem.

Restyandito
e-mail : dito@ukdw.ac.id
website : http://lecturer.ukdw.ac.id/~dito

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 2

Class vs Modul Class vs Modul


Mengapa Modul?
Î tidak ada orang yang benar-benar memahami Pada program yang berorientasi obyek
keseluruhan sistem. modul-modul tersebut berupa class.
Î orang berbuat kesalahan dan sistem dapat break
down. Class ≈ Modul
Î hanya interface modul yang perlu dipahami
Î modul dapat di-share dengan sistem yang lain ) Bagaimana menentukan class yang diperlukan oleh sistem?

Î suatu modul dapat diganti/ditingkatkan tanpa


merubah modul yang lain.
TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 3 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 4

Use Case Use Case


• sekumpulan skenario tentang kegunaan Use case direpresentasikan menggunakan Use Case Diagram:
suatu sistem dilihat dari sudut pandang
Structural Element
user
• apa yang diinginkan designer untuk
dilakukan oleh sistem

Actor Use Case System

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 5 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 6

© Restyandito Analisis & Pemodelan Sistem Objek - 1


TI 1163
Pemrograman Berorientasi Objek

Use Case Use Case


Use case direpresentasikan menggunakan Use Case Diagram: Contoh Kasus: PERPUSTAKAAN

Relationship Reserve buku

Association Pinjam buku


Peminjam
Generalization Buku
Mengembalikan
buku
Dependency
Memperpanjang
Aggregation pinjaman

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 7 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 8

CRC Cards CRC Cards


Class
ƒ nama class
CLASS ƒ menunjukkan domain permasalahan
Responsibilities
Responsibilities Collaborators
ƒ apa yang dilakukan oleh suatu class
ƒ informasi yang harus disimpan
Collaborators
ƒ class-class lain yang dibutuhkan
ƒ bukan hubungan simetris

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 9 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 10

CRC Cards CRC Cards


HOW HOW
1. Aktivitas kelompok (group exercises) 3-4
orang
2. Kartu dipertukarkan, beri komentar, ‘act out’
3. Buat perubahan pada kartu
4. Catatan :
Suatu class tidak boleh memiliki terlalu banyak responsibility
(biasanya 3-4) → low cohession
Suatu class tidak boleh memiliki terlalu banyak collaborators
→ high coupling

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 11 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 12

© Restyandito Analisis & Pemodelan Sistem Objek - 2


TI 1163
Pemrograman Berorientasi Objek

CRC Cards CRC Cards


HOW Contoh Kasus: PERMAINAN BLACK JACK
1. List semua kata benda dan kata kerja
Tujuan dari aplikasi software ini adalah
2. Cari kata benda yang dapat dijadikan
mengimplementasikan permainan blackjack. Dalam
class, cari fungsi / tanggung jawab class permainan ini, satu atau lebih pemain dapat bermain
tersebut melawan bandar (atau dealer). Walaupun demikian,
3. Simulasikan / act out skenario yang ada masing-masing pemain hanya bermain melawan
bandar, dan bukan pemain lain.
4. Catat pada CRC cards
5. Sempurnakan dan lengkapi CRC cards

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 13 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 14

CRC Cards CRC Cards


Contoh Kasus: PERMAINAN BLACK JACK Contoh Kasus: PERMAINAN BLACK JACK

Dari perspektif pemain, tujuan dari permainan ini adalah Pada saat bermain, seorang pemain dapat meminta agar kartu
mengambil kartu dari tumpukan kartu sampai jumlah dari nilai dibagikan. Pemain harus dapat menunjukkan kartu di tangan,
simbol semua kartu sama dengan 21 atau sedekat mungkin menghitung nilai simbol kartu di tangan, dan menentukan
dengan 21, tanpa boleh melebihi 21. Jika jumlah dari nilai jumlah kartu di tangan. Jika bandar bertanya pada pemain
simbol semua kartu melebihi 21, pemain dinyatakan kalah. Jika apakah akan menerima kartu tambahan atau memulai
jumlah kedua kartu pertama sama dengan 21, pemain permainan baru, pemain harus memberikan respon.
dinyatakan memiliki blackjack.

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 15 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 16

CRC Cards CRC Cards


Contoh Kasus: PERMAINAN BLACK JACK Contoh Kasus: PERMAINAN BLACK JACK

Bandar juga bermain bersama pemain. Bandar Setiap kartu memiliki simbol yang dapat berupa gambar atau
angka. Kartu gambar terdiri dari Jack, Queen, King yang
bertugas membagikan kartu, memberi kartu bernilai 10. Kartu angka berupa angka 1 hingga 10, dimana
tambahan pada pemain, menunjukkan sebagian atau nilainya sama dengan angka tersebut. Kartu berangka 1 disebut
seluruh kartu di tangan, menjumlah nilai simbol dari sebagai kartu as yang bernilai 11. Satu tumpukan kartu terdiri
sebagian atau seluruh kartu di tangan, menentukan dari 4 seri ‘kembang’ (suite) yaitu spade, heart, diamond dan
pemenang, dan memulai permainan baru. claver.

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 17 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 18

© Restyandito Analisis & Pemodelan Sistem Objek - 3


TI 1163
Pemrograman Berorientasi Objek

CRC Cards CRC Cards


Contoh Kasus: PERMAINAN BLACK JACK Contoh Kasus: PERMAINAN BLACK JACK

Aturan permainan sebagai berikut: Jika jumlah nilai simbol Jika pemain dan bandar mendapatkan jumlah yang sama dan
kartu pemain lebih dekat ke 21 dibandingkan dengan bandar, paling tidak 17, permainan dinyatakan seri, dan pemain
maka pemain dinyatakan menang dan memperoleh sebesar memperoleh kembali taruhannya.
taruhan yang dibuatnya. Jika pemain mendapatkan blackjack,
ia memenangkan taruhan sebesar 3:2. Jika jumlah nilai simbol
kartu pemain melebihi 21, ia kehilangan taruhannya. Blackjack
(kartu as dan kartu gambar atau kartu angka 10) mengalahkan
semua kombinasi kartu dengan total nilai simbol 21.

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 19 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 20

CRC Cards CRC Cards


HOW
1. List semua kata benda dan kata kerja • bandar, pemain, permainan, permainan baru,
aturan permainan, kartu, tumpukan kartu, kartu
2. Cari kata benda yang dapat dijadikan di tangan, kartu tambahan, kartu gambar, kartu
class, cari fungsi / tanggung jawab class angka, gambar, jack, queen, king, as, angka,
tersebut
suite, kembang, spade, heart, diamond, claver,
3. Simulasikan / act out skenario yang ada simbol, nilai simbol, total, jumlah, blackjack,
4. Catat pada CRC cards taruhan, respon, pemenang
5. Sempurnakan dan lengkapi CRC cards

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 21 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 22

CRC Cards CRC Cards


HOW
1. List semua kata benda dan kata kerja • bandar, pemain, kartu, tumpukan kartu, kartu di
tangan
2. Cari kata benda yang dapat dijadikan
class, cari fungsi / tanggung jawab
class tersebut
3. Simulasikan / act out skenario yang ada
4. Catat pada CRC cards
5. Sempurnakan dan lengkapi CRC cards

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 23 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 24

© Restyandito Analisis & Pemodelan Sistem Objek - 4


TI 1163
Pemrograman Berorientasi Objek

CRC Cards CRC Cards


HOW
Mis: Agnes Monika hendak bermain blackjack
1. List semua kata benda dan kata kerja bandar: Saya mengocok tumpukan kartu dan membagikan kartu
pemain: Saya menerima kartu dan melihat nilai kartu
2. Cari kata benda yang dapat dijadikan kartu: Saya tahu bahwa saya adalah kartu angka berkembang
class, cari fungsi / tanggung jawab class spade dengan nilai 10.
tersebut pemain: Saya mencek jumlah kartu dan menghitung total nilai
simbol, saya tahu bahwa total nilai kartu yang saya miliki 16.
3. Simulasikan / act out skenario yang ada bandar: Saya menghitung total nilai kartu yang saya miliki. Saya
4. Catat pada CRC cards menawarkan apakah pemain ingin menambah kartu di tangannya.
pemain: Saya merespon dengan meminta tambahan kartu.
5. Sempurnakan dan lengkapi CRC cards

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 25 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 26

CRC Cards CRC Cards

bandar pemain
Æmengocok kartu ÆMeminta kartu ( hit atau hold )
Æmembagikan kartu ÆMenunjukkan kartu di tangan
Æmemberikan kartu pada pemain ÆMenghitung nilai kartu di tangan
Æmenunjukkan kartu di tangan bandar ÆMengetahui jumlah kartu di tangan
Æmenghitung nilai kartu di tangan bandar
ÆMembuat taruhan
Æmengetahui jumlah kartu di tangan bandar
ÆMengetahui apakah kartu di tangan memiliki total di
Æmenentukan pemenang
bawah 21, sama dengan 21 atau di atas 21.
Æmemulai permainan baru

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 27 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 28

CRC Cards CRC Cards

kartu tumpukan kartu


Æmengetahui jenis simbol (gambar atau angka) ÆMerubah urutan kartu (dikocok)
Æmengetahui jenis kembang kartu (spade, heart, ÆMemberikan kartu berikut
diamond, claver) ÆMengetahui jumlah kartu yang tersisa dalam
Æmengetahui nilai simbol (1-11) tumpuka
ÆMengetahui kapan tumpukan kartu yang baru
digunakan

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 29 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 30

© Restyandito Analisis & Pemodelan Sistem Objek - 5


TI 1163
Pemrograman Berorientasi Objek

CRC Cards CRC Cards

kartu di tangan taruhan


Æmengetahui jumlah kartu di tangan Æmengetahui jenis taruhan
Æmenunjukkan kartu Æmengetahui nilai taruhan untuk permainan tertentu
Æmengetahui berapa sisa taruhan yang dimiliki
pemain

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 31 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 32

CRC Cards CRC Cards


HOW
CLASS: bandar CLASS: pemain
1. List semua kata benda dan kata kerja Responsibilities: Collaborators: Responsibilities: Collaborators:
2. Cari kata benda yang dapat dijadikan mulaiPermainan
getKartu
• kartuDiTangan
• pemain
mintaTambahKartu • kartuDiTangan
getKartu • bandar
class, cari fungsi / tanggung jawab class • tumpukanKartu menunjukkanKartu
menghitungKartu
tersebut
3. Simulasikan / act out skenario yang ada
4. Catat pada CRC cards
5. Sempurnakan dan lengkapi CRC cards

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 33 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 34

CRC Cards CRC Cards

CLASS: kartu CLASS: tumpukanKartu CLASS: kartuDiTangan

Responsibilities: Collaborators: Responsibilities: Collaborators: Responsibilities: Collaborators:


getName • tumpukanKartu resetTumpukan • bandar returnNilaiKartu • pemain
getValue getJumlahTump. • kartu menambahKartu • bandar
getKartuBerikut menunjukkanKartu
mengocokTump.
showTumpukan

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 35 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 36

© Restyandito Analisis & Pemodelan Sistem Objek - 6


TI 1163
Pemrograman Berorientasi Objek

CRC Cards CRC Cards


HOW
1. List semua kata benda dan kata kerja • tentukan attributes yang dibutuhkan oleh
tiap-tiap class
2. Cari kata benda yang dapat dijadikan
class, cari fungsi / tanggung jawab class • tentukan methods / services yang
tersebut dibutuhkan oleh tiap-tiap class
3. Simulasikan / act out skenario yang ada • cari hubungan yang terjadi antar class
4. Catat pada CRC cards
5. Sempurnakan dan lengkapi CRC cards

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 37 TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 38

CONTOH KASUS CONTOH KASUS

Software Design UML


Software Design UML ƒ Schedule
MobileObjectManagerC
aMobileObjects

ƒ Specification Position Collector Example


MapApplicationC MobileObjectC TextMessageComposer
iNumberOfMobileObjects C
name iM obileID
provide digital maps visualize Point on Map stringMessage
addMobileObject()
(from Use Case Vi ew) (from Use Case View) s endPositi onM essage() sPosition
showPosition() deleteMobileObject()
waitForPosi tionReques t() iFormatNr

ƒ Use Case Diagram


sortMobileObject()
getCurrentList()
composeMessage()
setMessageFormat()
manage multiple Mobile Object s handle with Emergency Alarm MapMangerC getMessage()

ƒ Noun Abstraction Methode


(from Use Case Vi ew) (from Use Case View) aMaps
PortBaseC
iNrOfMaps GPSEngineeC
name iPortNr
User GPS server iBaudRate iGPSSignalQuality
bIsBusy iAvailSatelites
User Client (from Use Case View) addMap()
sAlmanac

ƒ Collaboration Diagramm
(from Use Case View) deleteM ap()
request position from mobile object connect to mobile objects connect() sEphemeris
showBestMap()
(from Use Case Vi ew) disconnect() pCurrentPosition
(from Use Case View) findScaleOfMap()
getStatus()
1 getBaudRate() findSatelite()

ƒ UML Class Diagram


IsBusy() setAlmanac()
setEphemeris()
processGPSPosition()
2: callMobileObject 0.. n getCurrentPosition()
1: showPosition
AirInterfaceC

– UML Symbols
MapApplication AirInterface
MapC
iNet workNr
8: receivePositonMessage sPosStart
: User Client iNet workType PositionC
9: visualizePositionOnMap sPosEnd
iS igOvNois eRati o
stringMapName Long_X

– Master Class Diagram


Map 7: sendPositionMessage 3: requestPosition iScale Lat_Y
getSignalQuality()
Height_Z
getNetworkOperator()
drawPosition() iPositionQuality
s endMessage()
getScale()
TextMessage
MobileObject receiveMessage()
getStartCoords() getPosition()
s etupCall()

– Sub Diagrams
getEndCoords() setPosition()
6: composePositionMessage receiveCall()
editPosition()
4: getPosition

GPSReceiver

EmergencyCall EmergencyButton
Position
5: calculatePosition
ƒ Questions

Philipp Schenk Philipp Schenk

CONTOH KASUS CONTOH KASUS

Schema Software Design


ƒ Position Collector ƒ Specification
Object
Mobile
– The System has to collect the position of multiple
GPS/GSM mobile objects on a centralized server application.
Air The objects are equiped with a GPS receiver. To
Interface
PC Control Object transfer the position data from the mobile objects to
Application Mobile the server an air interface e.g. GSM and a text
Moving Map GPS/GSM
message system e.g. SMS has to be used. The
server side application should visualize the moblie
Object objects on a map with a suitable scale. The mobile
Mobile
ƒ Fleet Management GPS/GSM objects must provide an emergency button, to set
an emergency call. The position must be visualized
ƒ Emergency Call
on the server’s map application.

Philipp Schenk Philipp Schenk

© Restyandito Analisis & Pemodelan Sistem Objek - 7


TI 1163
Pemrograman Berorientasi Objek

CONTOH KASUS CONTOH KASUS


Use Case Diagram
Noun Abstraction Methode
provide digital maps visualize Point on Map ƒ Specification
(from Use Case View) (from Use Case View)
– The System has to collect the position of multiple
mobile objects on a centralized server application.
The objects are equiped with a GPS receiver. To
manage multiple Mobile Objects handle with Emergency Alarm transfer the position data from the mobile objects to
(from Use Case View) (from Use Case View) the server an air interface e.g. GSM and a
text message system e.g. SMS has to be used. The
User GPS server server side application should visualize the moblie
User Client (from Use Case View) objects on a digital map with a suitable scale. The
(from Use Case View)
request position from mobile object connect to mobile objects mobile objects must provide an emergency button,
(from Use Case View)
(from Use Case View) to set an emergency call. The position must be
visualized on the server’s map application.

Philipp Schenk Philipp Schenk

CONTOH KASUS CONTOH KASUS


2: callMobileObject
1: showPosition
MapApplication AirInterface
UML Symbols
8: receivePositonMessage
: User Client
9: visualizePositionOnMap

Map 7: sendPositionMessage 3: requestPosition Composition


ExamplesCla ssC
public
TextMessage
MobileObject
protected Generalization
private
6: composePositionMessage
publicM()
4: getPosition
protectedM()
privateM()
GPSReceiver
Aggregation 1..n Multiplicity
5: calculatePosition

EmergencyCall EmergencyButton
Association
Position

Philipp Schenk Philipp Schenk

CONTOH KASUS MapC CONTOH KASUS


MapMangerC sPosStart
MapApplicationC aMaps sPosEnd

Subdiagram Map
iCurrentMapNr iNrOfMaps stringMapName
iCurrentScale iScale
addMap() 1 0..n
drawPositionOfMobile() deleteMap() drawPosition()
showBestMap() getScale()
findScaleOfMap () getStartCoords()
getEndCoords()

1..n

AirInterfaceC
MobileObjectManagerC Po rtBaseC
iNetworkNr TextMessageComposerC
iPortNr
aMobileObjects
iBaudRate
iNetworkType stringMessage MapC
iNumberOfMobileObjects iSigOvNoiseRatio
bIsBusy sPosition
MapApplicationC MapMangerC sPosStart
iFormatNr
addMobileObject()
connect()
getSignalQuality() aMaps sPosEnd
deleteMobileObject() getNetworkOperator() composeMessage()
iCurrentMapNr
sortMobileObject() disconnect() iNrOfMaps stringMapName
getCurrentList() getStatus()
sendMessage() setMessageFormat() iCurrentScale
getMobileByNumber() getBaudRate()
receiveMessage() getMessage() iScale
setupCall()
IsBusy()
receiveCall() drawPositionOfMobile() addMap() 1 0..n
deleteMap() drawPosition()
1..n showBestMap() getScale()
fi ndScaleOfMap() getStartCoords()
GPSEngineeC
getEndCoords()
iGPSSignalQua lity
iAvailSateli tes PositionC
MobileObjectC sAlmanac Long_X
sEphemeri s Lat_Y
iMobileID
pCurrentPos itio n Height_Z
iPositionQuality
sendPositionMessage()
fi ndSatelite() 0..1
waitForPositionRequest()
setAlmanac() getPosition()
setEphem eris() setPosition()
proce ssGPSPosition() editPosition()
getCurrentPosition()

Philipp Schenk

© Restyandito Analisis & Pemodelan Sistem Objek - 8


TI 1163
Pemrograman Berorientasi Objek

CONTOH KASUS CONTOH KASUS

Subdiagram Mobile Object


Subdiagram AirInterface
MobileObjectManagerC
TextMessageComposerC
aMobileObjects
stringMessage
iNumberOfMobileObjects
sPosition
iFormatNr
addMobileObject()
deleteMobileObject()
composeMessage()
sortMobileObject()
setMessageFormat()
getCurrentList()
getMessage() AirInterfaceC
getMobileByNumber() PortBaseC
iNetworkNr
iPortNr
iNetworkType
iBaudRate
iSigOvNoiseRatio
bIsBusy
GPSEngineeC
getSignalQuality()
iGPSSignalQua lity connect()
iAvailSateli tes PositionC getNetworkOperator()
disconnect()
MobileObjectC sAlmanac Long_X sendMessage()
sEphemeri s Lat_Y getStatus()
iMobileID receiveMessage()
pC urrentPos itio n Height_Z getBaudRate()
iPositionQuality setupCall()
sendPositi onMessage() IsBusy()
waitForPositionRequest()
fi ndSatelite() 0..1 receiveCall()
setAlmanac() getPosition()
setEphem eris() setPosition()
processGPSPosition() editPosi tion()
getCurrentPosition()

Philipp Schenk Philipp Schenk

CONTOH KASUS MapC


MapMangerC sPosStart
MapApplicationC aMaps sPosEnd

Referensi
iCurrentMapNr iNrOfMaps stringMapName
iCurrentScale iScale
addMap() 1 0..n
drawPositionOfMobile() deleteMap() drawPosition()
showBestMap() getScale()
findScaleOfMap () getStartCoords()
getEndCoords()

1..n

MobileObjectManagerC Po rtBaseC
AirInterfaceC • Martin, James, Principles of Object Oriented Analysis
iNetworkNr
and Design, Prentice Hall, Inc., hal 187-199
iPortNr TextMessageComposerC
aMobileObjects iNetworkType
iBaudRate stringMessage
iNumberOfMobileObjects iSigOvNoiseRatio
bIsBusy sPosition
addMobileObject()
deleteMobileObject() connect()
getSignalQuality()
getNetworkOperator()
iFormatNr
• Weisfeld, Matt, The Object-Oriented Thought Process
composeMessage()
– 2nd Edition, Developer’s Library, hal 85-110
sortMobileObject() disconnect()
sendMessage() setMessageFormat()
getCurrentList() getStatus()
receiveMessage() getMessage()
getMobileByNumber() getBaudRate()
setupCall()
IsBusy()
receiveCall()
• Garrido, Jose M., Object-Oriented Programming:
1..n
From Problem Solving to Java, Charles River Media,
GPSEngineeC
iGPSSignalQua lity
hal 207-220
iAvailSateli tes PositionC
MobileObjectC sAlmanac Long_X
sEphemeri s Lat_Y
iMobileID
pCurrentPos itio n Height_Z
iPositionQuality
sendPositionMessage()
fi ndSatelite() 0..1
waitForPositionRequest()
setAlmanac() getPosition()
setEphem eris() setPosition()
proce ssGPSPosition() editPosition()
getCurrentPosition()

TI1163 – Analisis & Pemodelan Sistem Objek © Restyandito - 52

The End
terima kasih

© Restyandito Analisis & Pemodelan Sistem Objek - 9