Materi 1 Pengenalan Object oriented Analyst And Design

OBJECT ORIENTED
ANALYST AND DESIGN
Defri Kurniawan
defri.kurniawan@dsn.dinus.ac.id

Content
• Pengenalan Analisis dan Desain Berorientasi Objek
• Perbedaan Kelas dan Objek
• Konsep Analisis dan Desain Berorientasi Objek
• Keuntungan dan Kerugian Pengembangan Berorientasi

Objek

INTRODUCTION OBJECT
ORIENTED ANALYST AND
DESIGN

What’s Object Oriented? [1]
• Object Oriented Paradigm saat ini merupakan

pendekatan yang populer dalam menganalisa,

desain, mengembangkan aplikasi khususnya
pada skala besar
Object Oriented?
• Suatu perspektif yang melihat element-elemen
yang diberikan oleh suatu situasi dengan cara
memecahnya ke dalam objek-objek dan
hubungannya

What’s is Object Oriented Development? [1]
• Pandangan Tradisional program komputer:
• Membuat code dari eksekusi suatu form
• Menjalankan sebagai urutan operasi
• Baik sebagai pengenalan pemrograman, namun

tidak untuk pengembangan sistem yang besar
• Pandangan Tradisional program komputer

memiliki kesulitan: Perilaku (Behaviour) sulit
digambarkan dalam bentuk suatu proses


What’s is Object Oriented Development? [1]
• Pengembangan berorientasi objek

memungkinkan pengembang aplikasi untuk
menentukan behaviour dengan
memberikan method terhadap objek yang
bersangkutan

What’s is Object Oriented Development?
• OOAD merupakan cara baru dalam memikirkan

suatu masalah dengan menggunakan model
yang dibuat menurut konsep sekitar dunia nyata
• Pada dasarnya terdiri dari 2 :
• OOA (Object Oriented Analysis)
• OOD(Object Oriented Design)
• Sedangkan OOP berkaitan dengan meralisasikan OOD
menggunakan bahasa pemrograman OO seperti Java
atau C++


Object Oriented Analyst Vs Design
• OOA Mempelajari domain permasalahan bisnis

untuk merekomendasikan perbaikan dan
menentukan kebutuhan sistem untuk
menyelesaikan permasalahan
• OOD Menentukan solusi teknis atau

rancangan/computer-based dimana solusi ini
berdasarkan kebutuhan sistem yang telah
diidentifikasi pada proses analisis

Why OOAD?
• Memudahkan pemanfaatan ulang code dan

arsitektur
• Lebih mencerminkan dunia nyata
• Kestabilan
• Perubahan kecil dalam requirement tidak berarti


perubahan yang signifikan dalam sistem yang sedang
dikembangkan
• Lebih mudah disesuaikan dengan perubahan

When should we use OO?
• Jika perangkat lunak (PL) yang dibangun cukup

kompleks
• Jika PL yang dibangun diperkirakan akan tumbuh
makin kompleks di masa mendatang
• Jika kita ingin membangun PL yang:
• Berdasar pada komponen yang telah pernah
ada sebelumnya (daur ulang)
• Dapat dipergunakan kembali di masa
mendatang (reusable) dan mungkin, kapanpun
dan di manapun

Benefit and Drawbacks of OO Development
• Benefit / Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem

aplikasi, ini yang membuat designer gampang membuat
kelas
• Membantu meningkatkan produktivitas, karena
kemampuan re-use software yang ada
• Lebih mudah untuk mengakomodasi perubahan,
fleksibel. Contoh: meskipun ada perubahan requirement
• Mengurangi resiko dalam system development

Benefit and Drawbacks of OO Development
• Drawbacks / Kerugian
• Pada sistem yang kompleks, dengan banyaknya objects
creation dan destruction serta objek yang berinteraksi
dengan cara yang kompleks, mengakibatkan poor
memory access times
• Susahnya mempelajari dan menggunakan OO
principles serta nyaman dengan konsep ini, khususnya
yang belum mengenal (terpaku dengan konsep
struktural)

CLASS VS OBJECT


Class vs Object [2]
Perbedaan Class dengan Object
• Sebuah class merupakan definisi abstract dari sebuah
object
• Obyek merupakan hasil instansiasi dari class Obyek
disebut juga dengan instance.
• Example:

• Class seperti cetakan kue, dimana kue yg dihasilkan dari

cetakan kue itu adalah object
• Warna kue bisa bermacam-macam meskipun berasal
dari cetakan yang sama (object memiliki sifat
independen)

Class vs Object [2]
Perbedaan Class dengan Object
• Class mendefinisikan struktur dan behaviour dari
masing-masing object di dalam sebuah class

• Class bertugas sebagai template untuk
pembuatan Object
• Class: konsep dan deskripsi dari sesuatu
• Object: instance dari class, bentuk (contoh)

Class vs Object [2]
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki, Mata
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat

Class vs Object [2]
Attribute (State):
Ban, Stir, Pedal Rem, Pedal
Gas,

Warna, Tahun Produksi

Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil

Attribute 

Implementation of Class
Bagian-bagian Class Diagram

Implementation of Class

Contoh Implementasi Code dari Class Diagram

Classes of Object
• How many classes do you see?

Attribute

• Variable yang mengitari class, dengan nilai

datanya bisa ditentukan di object
• Variable digunakan untuk menyimpan nilai yang
nantinya akan digunakan pada program
• Variable memiliki jenis (tipe), nama dan nilai
• Name & age adalah atribute (variabel) dari class
Person

Method
• Method merupakan hal-hal yang bisa dilakukan oleh

obyek dari suatu class
• Method biasa dikaitkan dengan Behaviour / Perilaku
• Yang bisa dilakukan oleh method
– Merubah nilai atribut suatu obyek
– Menerima informasi dari obyek lain
– Mengirim informasi ke obyek lain untuk melakukan
sesuatu


Class = Method + Variable
Class
gir
Sepeda
kecepatan

variable

tampilkan kecepatan
ubah gir

metho
d

Object = Method + Variable yg Memiliki Nilai

Object
Sepedaku

gir = 3

instance variable

kecepatan = 10km/jam

tampilkan kecepatan ()
kecepatan = 10 km/jam
ubah gir (2)
gir = 5

instanc
e
method

Example Employee Class And Object

OBJECT ORIENTED
ANALYST AND DESIGN
CONCEPT

Key Concepts of Object-Oriented Design [1]
1. Central Role of Object
2. The Notion of A Class
3. Abstract specification of functionality
4. A Language To Define The System
5. Standard Solution
6. An Analysis Process To Model A System
7. The Notions Of Extendability And Adaptability

Key Concepts of Object-Oriented Design [1]
1. Central Role of Object
• Object sebagai inti dari desain perangkat lunak
bukan proses
• Proses rentan terhadap perubahan dan sebagian

sistem lama tidak dapat digunakan kembali (re-usable)

2. The Notion of A Class
• Kelas-kelas mengijinkan perancang software
untuk melihat object sebagai jenis entitas yang
berbeda

Key Concepts of Object-Oriented Design [1]
3. Abstract Specification of Functionality
• Dalam proses perancangan kita biasanya
menentukan properti-properti dari object
• Spesifikasi adalah abstrak bahwa hal itu tidak menempatkan

pembatasan pada bagaimana fungsi tersebut tercapai.

4. A Language To Define The System
• Unified Modelling Language (UML) telah terpilih
sebagai alat standar untuk menggambarkan
produk akhir dari kegiatan desain

Key Concepts of Object-Oriented Design [1]
5. Standard Solution
• Adanya struktur objek memfasilitasi
mendokumentasikan standar solution, disebut
pola desain / design pattern.
6. An Analysis Process To Model A System
• Object oriented menyediakan kita dengan cara
yang sistematis untuk menerjemahkan spesifikasi
fungsional ke desain konseptual

Key Concepts of Object-Oriented Design [1]
7. The Notions Of Extendability And
Adaptability
• Software memiliki fleksibilitas yang tidak biasanya
ditemukan dalam perangkat keras,
memungkinkan kita untuk memodifikasi entitas
yang ada dengan cara-cara kecil untuk membuat
yang baru.
• Inheritance atau pewarisan merupakan contoh

dari konsep ini.

Other Related Concept
• Tidak cukup hanya memahami konsep kunci

perancangan berorientasi objek. Terdapat
konsep terkait lain yang diperlukan untuk
memahami object oriented:
• Modular design and encapsulation
• Cohesion and coupling

Modular Design And Encapsulation [1]
• Modularity / modularitas mengacu pada

gagasan menyusun sistem besar dengan
mengembangkan sejumlah komponen yang
berbeda secara independen dan kemudian
mengintegrasikannya untuk menyediakan
fungsionalitas yang diperlukan.
• Modularity ketika digunakan dengan tepat akan

membuat modul individu relatif lebih sederhana
dan sistem lebih mudah dipahami

Modular Design And Encapsulation [1]
• Encapsulation / enkapsulasi mengacu pada

penyembunyian detail modul dari
implementasinya terhadap pihak external.
• Mekanisme menyembunyikan suatu proses dan

data dalam sistem untuk menghindari
interferensi, dan menyederhanakan penggunaan
proses itu sendiri
• Class access level (public, protected, private) adalah

implementasi dari konsep encapsulation

Cohesion And Coupling [1]
• Salah satu konsep OOP yang cukup penting

adalah low coupling dan high cohesion
• Coupling berhubungan dengan seberapa besar

ketergantungn class dengan class yang lain
• Cohesion berhubungan dengan responsibility

sebuah class.

Cohesion And Coupling [1]
• Semakin spesifik (tinggi) suatu responsibility

class, maka semakin rendah tingkat
ketergantungannya, begitu juga sebaliknya
• Tujuan utama dari konsep ini adalah, fleksibilitas

sebuah class, artinya class yang didesain dengan
low coupling dan high cohesion, akan mudah di
modifikasi

• Contoh Responsibility

pada suatu Class

BENEFIT AND DRAWBACKS
OF OO DEVELOPMENT

Benefit and Drawbacks of OO Development
• Benefit / Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem
aplikasi, ini yang membuat designer gampang membuat
kelas
• Membantu meningkatkan produktivitas, karena
kemampuan re-use software yang ada
• Lebih mudah untuk mengakomodasi perubahan,
fleksibel. Contoh: meskipun ada perubahan requirement
• Mengurangi resiko dalam system development

Benefit and Drawbacks of OO Development
• Drawbacks / Kerugian
• Pada sistem yang kompleks, dengan banyaknya objects
creation dan destruction serta objek yang berinteraksi
dengan cara yang kompleks, mengakibatkan poor
memory access times
• Susahnya mempelajari dan menggunakan OO
principles serta nyaman dengan konsep ini, khususnya
yang belum mengenal (terpaku dengan konsep
struktural)

TERIMA KASIH