Post on 13-Jun-2019
Teknik Informatika S1
Disusun Oleh:Egia Rosi Subhiyakto, M.Kom, M.CSTeknik Informatika UDINUSegia@dsn.dinus.ac.id+6281329571612
Pengenalan OOAD
Object Oriented Analysis and Design
SILABUS MATA KULIAH
1. Introduction to OOAD2. Introduction to UML
3. Requirement and Use Case
4. Analysis
5. Software Architecture
6. Software Architecture Modeling
7. Design Patterns
8. Design
9. Implementation
10. Testing
Sejarah OOAD
✓ Metode beorientasi objek mulai berkembang ketika Grady Booch
pada tahun 80-an mempublikasikan suatu paper bagaimana
melakukan perancangan untuk bahasa ADA namun memberi judul
paper tersebut dengan : Object-Oriented Design.
✓ Selanjutnya ide tersebut terus ia kembangkan sampai tahun 90
an.
Sejarah OOAD
✓ Pada tahun 1991 Peter Coad dan Yourdon memperkenalkan
metode berorientasi objek yang lebih sederhana dibandingkan
Booch.
✓ Metode ini menjadi cepat populer karena mendukung layanan-
layanan yang terdapat pada C++.
✓ Pada waktu itu C++ merupakan bahasa pemrograman berorientasi
objek yang paling populer .
Sejarah OOAD
✓ Pada tahun 1994 Ivar Jacobson memperkenalkan konsep use case
dan object oriented software engineering.
✓ Pada tahun 1994 itu juga yaitu bulan Oktober 1994 Booch,
Rumbaugh dan Jacobson, mempelopori usaha untuk penyatuan
notasi pendekatan berorientasi objek.
✓ Pada tahun 1995 dihasilkan draft pertama dari UML (versi 0.8).
✓ Sejak tahun 1996 pengembangan tersebut dikoordinasikan oleh
Object Management Group (OMG – http://www.omg.org).
Sejarah OOAD
✓ Tahun 1997 UML versi 1.1 muncul, dan saat ini versi terbaru
adalah versi 1.5 yang dirilis bulan Maret 2003.
✓ Booch, Rumbaugh dan Jacobson menyusun tiga buku serial
tentang UML pada tahun 1999.
✓ Sejak saat itulah UML telah menjelma menjadi standar bahasa
pemodelan untuk aplikasi berorientasi objek [DHA03]
Mengapa OOAD?
?
Mengapa OOAD?
• Memudahkan pemanfaatan ulang code dan arsitektur
• Lebih mencerminkan dunia nyata
o lebih tepat dalam menggambarkan entitas,
dekomposisi berdasarkan pembagian yang natural,
lebih mudah untuk dipahami dan dirawat
Mengapa OOAD?
• Kestabilan
o perubahan kecil dalam requirement tidak berarti
perubahan yang signifikan dalam sistem yang
sedang dikembangkan
• Lebih mudah disesuaikan dengan perubahan (Adaptif)
Kapan kita menggunakan 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 dapat dipergunakan
kembali di masa mendatang (reusable)
Konsep Kunci Perancangan
Berorientasi Object
1. Peran Sentral dari Object (Central role of object)
• Object sebagai inti dari desain perangkat lunak bukan
proses
o Proses rentan terhadap perubahan dan sebagian sistem lama tidak dapat
digunakan kembali (re-usable)
• Object berpusat pada struktur data dan method yang
dapat dimodifikasi/disesuaikan dengan kebutuhan
Konsep Kunci Perancangan
Berorientasi Object
2. Gagasan Kelas/ the notion of a class
• Kelas-kelas mengijinkan perancang software untuk
melihat object sebagai jenis entitas yang berbeda
• Melihat sebagai object memungkinkan untuk
menggunakan mekanisme klasifikasi untuk
mengkategorikan jenis, mendefinisikan hirarki, dan
terlibat pada ide-ide spesialisasi dan generalisasi
Konsep Kunci Perancangan
Berorientasi Object
3. Suatu bahasa untuk mendefinisikan sistem/ a language to
define the system
• Unified Modelling Language (UML) telah terpilih sebagai
alat standar untuk menggambarkan produk akhir dari
kegiatan desain
• Dokumen-dokumen yang dihasilkan dalam bahasa ini dapat
dipahami secara universal, dengan demikian dapat
digunakan sebagai blueprint oleh enginer teknik lainnya
Konsep Kunci Perancangan
Berorientasi Object
4. Extendability dan kemampuan beradaptasi/ The
notions of extendibility and adaptability
• Software memiliki fleksibilitas yang tidak biasanya ditemukan
dalam perangkat keras dan ini memungkinkan kita untuk
memodifikasi entitas yang ada
• Inheritance: memungkinkan menciptakan kelas baru dari
keturunan kelas yang ada (parent)
Cohesion & Coupling
• Selain konsep sebelumnya, salah satu konsep OOP yang
cukup penting adalah low coupling and high cohesion
• Cohesion berhubungan dengan responsibility sebuah class
• Coupling berhubungan dengan seberapa besar
ketergantungn class dengan class yang lain
Cohesion & Coupling (lanj)
• Semakin spesifik sebuah responsibility class, maka
akan 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
Berorientasi Objek?
Attribute:Topi, Baju, Jaket, Tas Punggung, Tangan, Kaki, Mata
Behavior:Cara Jalan ke DepanCara Jalan MundurCara Belok ke KiriCara Memanjat
Berorientasi Objek?
Attribute (State):Ban, Stir, Pedal Rem, Pedal Gas,Warna, Tahun Produksi
Behavior:Cara Menghidupkan MesinCara Manjalankan MobilCara Memundurkan Mobil
Attribute Variable (Member)Behavior Method (Fungsi)
Object
• Sebuah object adalah representasi dari sebuah
entitas, baik fisik, konseptual maupun software
• Obyek memiliki status (state) dan tingkah laku
(behavior), Status (state) disebut juga dengan atribut
• Pada OOP : status disimpan dalam variabel, dan
tingkah laku disimpan dalam method
Object
Example of object:
o Physical entity
o Conceptual entity
oSoftware entity
Truck
Chemical Process
Linked List
Class
• Sebuah Class merupakan definisi abstract dari sebuah object
• Class mendefinisikan struktur dan behaviour dari masing-masing
object di dalam sebuah class
• Class bertugas sebagai template untuk pembuatan obyek
• Jadi obyek merupakan hasil instansiasi dari class Obyek disebut
juga dengan instance
Contoh employee class dan object
Perbedaan Class dan Object
• Class: konsep dan deskripsi dari sesuatu
o Class mendeklarasikan method yang dapat digunakan
(dipanggil) oleh object
• Object: instance dari class, bentuk (contoh) nyata dari class
o Object memiliki sifat independen dan dapat digunakan
untuk memanggil method
• Contoh Class dan Object:
o Class: mobil
o Object: mobilnya pak Joko, mobilku, mobil berwarna
merah
Perbedaan Class dan Object
• 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)
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, dan weight adalah atribute (variabel) dari class
Person
Method
• Method merupakan hal-hal yang bisa dilakukan oleh obyek
dari suatu class
• Yang bisa dilakukan oleh method :
–Merubah nilai atribut suatu obyek
–Menerima informasi dari obyek lain
–Mengirim informasi ke obyek lain untuk melakukan sesuatu
Karakteritik Metodologi Berorientasi Objek
Metodologi pengembangan sistem berorientasi objek
mempunyai tiga karakteristik utama :
1. Encapsulation
2. Inheritance
3. Polymorphism
Karakteritik Metodologi Berorientasi Objek
1. Encapsulation
✓ Encapsulation merupakan dasar untuk pembatasan ruang
lingkup program terhadap data yang diproses.
✓ Data dan prosedur atau fungsi dikemas bersama sama
dalam suatu objek, sehingga prosedur atau fungsi lain dari
luar tidak dapat mengaksesnya.
✓ Data terlindung dari prosedur atau objek lain, kecuali
prosedur yang berada dalam objek itu sendiri.
Karakteritik Metodologi Berorientasi Objek
2. Inheritance
✓ Inheritance adalah teknik yang menyatakan bahwa anak dari objek
akan mewarisi data/atribut dan metode dari induknya langsung.
✓ Atribut dan metode dari objek dari objek induk diturunkan kepada
anak objek, demikian seterusnya.
✓ Inheritance mempunyai arti bahwa atribut dan operasi yang dimiliki
bersama di anatara kelas yang mempunyai hubungan secara hirarki.
Karakteritik Metodologi Berorientasi Objek
2. Inheritance
✓ Suatu kelas dapat ditentukan secara umum, kemudian ditentukan
spesifik menjadi subkelas. Setiap subkelas mempunyai hubungan
atau mewarisi semua sifat yang dimiliki oleh kelas induknya, dan
ditambah dengan sifat unik yang dimilikinya.
✓ Kelas Objek dapat didefinisikan atribut dan service dari kelas
Objek lainnya.
✓ Inheritance menggambarkan generalisasi sebuah kelas.
Karakteritik Metodologi Berorientasi Objek
2. Inheritance
Contoh:
Karakteritik Metodologi Berorientasi Objek
3. Polymorphism
✓ Polimorphism yaitu konsep yang menyatakan bahwa sesuatu yang
sama dapat mempunyai bentuk dan perilaku berbeda.
✓ Polimorphism mempunyai arti bahwa operasi yang sama mungkin
mempunyai perbedaan dalam kelas yang berbeda.
✓ Kemampuan objek-objek yang berbeda untuk melakukan metode
yang pantas dalam merespon message yang sama.
✓ Seleksi dari metode yang sesuai bergantung pada kelas yang
seharusnya menciptakan Objek.
Benefit and Drawbacks of OO
Development
Benefit/Keuntungan
• Objek sering kali mencerminkan entitas dalam sistem
aplikasi, ini membuat designer mudah dalam membuat kelas
• Membantu meningkatkan productivity, 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 objek yang
diciptakan serta objek-objek yang berinteraksi dengan
cara yang kompleks, mengakibatkan poor memory access
times
• Susahnya mempelajari dan menggunakan konsep OO
khususnya yang masih terpaku dengan konsep struktural
TERIMA KASIH