OBJECT ORIENTED ANALYST AND DESIGN Defri Kurniawan defri

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 What’s Object Oriented? [1] • Object Oriented Paradigm saat ini merupakan pendekatan yang populer](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-4.jpg)
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 What’s is Object Oriented Development? [1] • Pandangan Tradisional program komputer: • Membuat code](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-5.jpg)
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 What’s is Object Oriented Development? [1] • Pengembangan berorientasi objek memungkinkan pengembang aplikasi untuk](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-6.jpg)
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 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 Class vs Object [2] Perbedaan Class dengan Object • Sebuah class merupakan definisi abstract](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-14.jpg)
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 Class vs Object [2] Perbedaan Class dengan Object • Class mendefinisikan struktur dan behaviour](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-15.jpg)
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: Class vs Object [2] Attribute: Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata Behavior:](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-16.jpg)
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 Class vs Object [2] Attribute (State): Ban, Stir, Pedal Rem, Pedal Gas, Warna, Tahun](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-17.jpg)
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 Method(Fungsi)

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 Sepeda gir kecepatan variable tampilkan kecepatan ubah gir method

Object = Method + Variable yg Memiliki Nilai Object Sepedaku gir = 3 instance variabl kecepatan = 10 km/jam tampilkan kecepatan () kecepatan = 10 km/jam ubah gir (2) gir = 5 instance 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 Key Concepts of Object-Oriented Design [1] 1. Central Role of Object 2. The Notion](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-27.jpg)
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 Key Concepts of Object-Oriented Design [1] 1. Central Role of Object • Object sebagai](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-28.jpg)
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 Key Concepts of Object-Oriented Design [1] 3. Abstract Specification of Functionality • Dalam proses](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-29.jpg)
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 Key Concepts of Object-Oriented Design [1] 5. Standard Solution • Adanya struktur objek memfasilitasi](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-30.jpg)
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 • Key Concepts of Object-Oriented Design [1] 7. The Notions Of Extendability And Adaptability •](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-31.jpg)
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 Modular Design And Encapsulation [1] • Modularity / modularitas mengacu pada gagasan menyusun sistem](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-33.jpg)
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 Modular Design And Encapsulation [1] • Encapsulation / enkapsulasi mengacu pada penyembunyian detail modul](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-34.jpg)
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 Cohesion And Coupling [1] • Salah satu konsep OOP yang cukup penting adalah low](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-35.jpg)
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 Cohesion And Coupling [1] • Semakin spesifik (tinggi) suatu responsibility class, maka semakin rendah](http://slidetodoc.com/presentation_image_h/c2ae9801ad33e971376518db40826141/image-36.jpg)
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
- Slides: 41