Slide INF205 RPL Pertemuan 4

REKAYASA PERANGKAT
LUNAK
PERTEMUAN 4

Konsep & Prinsip Analisis pada sistem
berorientasi objek

Teknik Perancangan Berorientasi Obyek
• Memahami teknik Object Oriented Design
• Konsep dan Prinsip Dasar Berorientasi Obyek
• Analisis dan modelling
• Metodologi desain
• Class dan object
• Operasi dan Penggunaan Ulang Perangkat Lunak
• Komponen program dan interface
• Unified Modelling Language (UML)
• Dapat menjelaskan dan menerapkan metode ObjectOriented pada Perancangan Perangkat Lunak

Pentingnya Perancangan

Dua Teknik Perancangan Perangkat Lunak

• Perancangan Berorientasi pada Fungsi
Sistem di dekomposisi menjadi sejumlah
fungsi (prosedur, logika) dengan sistem
tersentralisasi dimana data dapat dibagi
dan digunakan secara bersama.

• Perancangan Berorientasi pada Obyek
Sistem dianggap sebagai kumpulan obyek
(konsep, benda) dalam dunia nyata yang
melaksanakan sejumlah pelayanan secara
terdesentralisasi.
Setiap obyek membungkus (encapsulate)
sejumlah prosedur dan data yang berinteraksi
dengan obyek lainnya melalui suatu pesan
(message).

Object Oriented Design (OOD)

Mengapa menggunakan OOD
• Karena lebih dekat pada tingkat abstraksi di

dunia nyata (mengunakan obyek-obyek untuk
konsep penstrukturan perangkat lunak).
• Interaksi menjadi lebih mudah dalam suatu
komputer.
• Pengembangan dan Perawatannya dapat
dilakukan secara mudah, iteratif dan terpadu
– Encapsulation: menggabungkan data dan
fungsi/program secara bersama-sama
– Reuse: tidak perlu ada penulisan kembali kode.

Reuseable Assets


Reuse of all models, that is of everything
• architecture -- most important but just a fraction
of what is reusable
• use cases, analysis, design, implementation and
test
• user interface models, business models, etc.


• Reuse of technology
• process with tools
• projects
• guidelines

Pertanyaan
Jelaskan perbedaan antara perangkat lunak fungsional
dengan perangkat lunak berorientasi obyek ?

Perangkat Lunak Fungsional terfokus pada:
• Fungsi dalam struktur terhirarki
• Proses dan Prosedur

Perangkat Lunak berorientasi-obyek terfokus pada:

• Obyek-obyek dalam dunia nyata yang bekerja sama (tidak
terhirarki).
• Model dari obyek-obyek di dunia nyata tersebut (skenario).
• Peranan obyek-obyek ini dalam penggambaran sistem
perangkat lunak (task).


Lebih Rinci Lagi

• Objects masuk disini

Penggambaran Fungsional
Menggambarkan dunia sebagai sejumlah fungsi-fungsi yang
saling berhubungan
Angka-angka

Angka-angka
Penguruta
n




terurut dari
kecil ke besar


Umumnya dekomposisi Top-Down (dari
abstraksi sampai tingkat rendah).
Memanipulasi (mengfungsikan) data utama
berarti memahami permasalahan.

Penggambaran Berorientasi Obyek

Menggambarkan dunia sebagai sejumlah obyekobyek

112 5 48
56 17 25




5 17 25 48 56 112

Sistem perangkat lunak digambarkan
sebagai sekumpulan obyek-obyek yang
saling berinteraksi.

Obyek-obyek dapat digunakan kembali
dengan suatu standar karakteristik.

Object-oriented System
Development Cycle
1. Object-oriented Analysis (OOA)
2. Object-oriented Design (OOD)
3. Object-oriented Implementation

1. Object-Oriented Analysis
• Definisikan kebutuhan-kebutuhan sistem
melalui skenario atau penggunaan kasuskasus.
• Kemudian, buat suatu model obyek dengan
kemampuan memuaskan kebutuhankebutuhan.
• Output: Model kebutuhan-kebutuhan

Object-Oriented Analysis
• Memberikan gambaran rinci dari suatu sistem.
• Mengidentifikasi “WHAT” kebutuhan fungsional (Use
Cases)

• Identifikasi: objects, classes, operations
• Identifikasi: object relationships, object interations
• Bangun model-model di dunia nyata menggunakan tampilan OO

• Tujuan dari OOA

• Untuk memahami domain masalah
• Meningkatkan ketelitian, konsistensi, kelengkapan

Object-Oriented Design
• Model kebutuhan-kebutuhan yang dibuat pada fase
analisis diperkaya dalan fase perancangan.
• Kadang-kadang ditambahkan lebih banyak lagi atribut dan
pelayanan.
• Ditambahkan antarmuka obyek-obyek.
Object-Oriented Implementation
 Dikembangkan penggunaan sistem.
 Menggunakan bahasa pemrograman yang
berorientasi obyek.
 Jika dibutuhkan, memberikan kaitan pada

suatu sistem manajemen basisdata yang
terpisah.

Object-Oriented Design
• Memberikan blueprint untuk implementasi
• Menspesifikasi “HOW”
• Menspesifikasi: class definitions, class categories
• Menspesifikasi: subsystems, system architectures

• OOA + Rincian Implementasi
• Tujuan dari OO Design
• Mengoptimalkan maintainability, reusability,
enhancebility dan reliability

What is Object-Oriented
Programming ?
Gaya pemrograman yang terberhubungan dengan
notasi object, class dan inheritance.
Peter Wegner pada “Dimensions of OOPLs”


Object

Class

Inheritance

Object-Oriented
Object-OrientedProgramming
Programming

20

Model Proses Berorientasi Obyek

• Orientasi obyek cocok untuk proses evolusioner dengan
pendekatan penggunaan kembali komponen-komponen
sistem.
• Rekayasa perangkat lunak OO menekankan penggunaan
ulang kelas-kelas dalam pustaka.
• Bila suatu kelas tidak ada pada pustaka, maka perekayasa

perangkat lunak meangaplikasikan analisis berorientasi
obyek (OOA), perancangan berorientasi obyek (OOD),
pemrograman berorientasi obyek (OOP) dan pengujian
berorientasi obyek (OOT).

CIRI-CIRI DARI PERANCANGAN
BERORIENTASI OBYEK
• Karena komunikasi antara obyek dilakukan melalui pegerakan pesan maka
data yang digunakan bersama oleh beberapa obyek akan kecil sehingga
mengurangi ketergantungan (minimum coupling).
• Obyek adalah terpadu (cohesive) dan tak tembus dari luar, sehingga
seluruh informasi dalam obyek terlindungi terhadap akses dari luar obyek
yang tidak dikehendaki.
• Obyek dapat dimodifikasi tanpa mempengaruhi operasi dari obyek-obyek
yang lain, sehingga dapat meningkatkan kemampuan pemeliharaan sistem.

Pertanyaan
Mengapa walaupun sudah ada Perancangan
Berorientasi Object (OOD), Perancangan Fungsional
masih tetap digunakan ?


Perancangan Fungsional tetap digunakan karena:
• Beberapa domain permasalahan lebih baik digambarkan dalam bentuk
fungsional dari pada obyek.
• Sudah banyak metoda dan standard yang dikembangkan untuk mendukung
perancangan berorientasi kepada fungsi ini.
• Sudah banyak pengalaman yang dilakukan dengan perancangan
berorientasi fungsi.
• Perancangan berorientasi fungsi menjadi komplemen (pelengkap) dari
perancangan berorientasi obyek.

Pertanyaan
• Bagaimana keunggulan dari perancangan berorietasiobyek dalam memecahkan masalah perancangan
perangkat lunak ?

Kelebihan OOD

• Penggunaan kembali Obyek-obyek
• Obyek-obyek yang dirancang baik dapat digunakan dan
ditambahkan ke proyek-proyek lain.
• Obyek dapat ditambah dengan inheritance.

• Keluwesan dan Reliabilitas
• Penggunaan obyek-obyek yang sudah teruji.
• Encapsulation mencegah kesalahan penggunaan data oleh
modul yang lain dan membantu melokalisasi kesalahan
(bugs) yang terjadi.

• Pengembangan dan Standarisasi
• Obyek-obyek dapat digunakan kembali dengan
karakteristik standar.

• Produktivitas
• Meningkatkan kecepatan pengembangan perangkat
lunak.
• Pengalaman: OOD meningkatkan kecepatan
pengembangan sekitar faktor 10 kali.

The SW development effort
Conventional
Effort: Labor-Months

Size or Functionality

OO Technology
Effort: Labor-Months

Size or Functionality

Object-Oriented Software
• Dapat memodelkan masalah
dengan baik
• Lebih mudah dimengerti.
• Lebih mudah untuk diperbaiki.
• Lebih mudah untuk digunakan
kembali.

Produktivita
s!
Kualitas !

31