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 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 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 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 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
- Slides: 41