OBJECT ORIENTED
ANALYST AND DESIGN
Defri Kurniawan
Content
• Pengenalan Analisis dan Desain Berorientasi Objek • Perbedaan Kelas dan Objek
• Konsep Analisis dan Desain Berorientasi Objek
• Keuntungan dan Kerugian Pengembangan Berorientasi
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
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
What’s is Object Oriented Development? [1]
•
Pengembangan berorientasi objek
memungkinkan pengembang aplikasi untuk
menentukan
behaviour
dengan
memberikan
method
terhadap objek yang
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
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
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
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
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
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
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
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
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
Variable(Member)
Behavior
Implementation of Class
Implementation of Class
Classes of Object
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
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
variable
kecepatan gir
tampilkan kecepatan
ubah gir
metho
d
Class
Sepeda
Object = Method + Variable yg Memiliki Nilai
instance variable
kecepatan = 10km/jam
gir = 3
tampilkan kecepatan ()
kecepatan = 10 km/jam
OBJECT ORIENTED
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
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
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
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
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.
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
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.
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
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 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
• Contoh Responsibility
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
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