Intro to OOP Yesi Novia, S.Kom
Perkembangan Orientasi Software 1960-1970 Process-Orientation – Process models – Data Flow Diagrams, Flow Charts 1980 Data-Orientation – Data models – Entity-Relationship (ER) Diagrams 1990 Object-Orientation – Object models – Class Diagrams, Event Diagrams 2000 –UML- standarisasi OOD
“An object is an encapsulation of state (data values) and behavior (operations). Thus an object is in many ways similar to a module, or an abstract data type." [Budd] ”An object has state, behavior, and identity; [Booch 91]
Car LightBulb BankAccount state/attributes state/attributes behavior on (true or false) behavior switch on switch off check if on state/attributes # of liters of gas in tank total # of km run so far efficiency (km/liter) behavior drive load gas change efficiency check gas check odometer reading Car LightBulb state/attributes balance behavior deposit withdraw check balance Note each object is an “instance” of that “class” of object each instance has its own values for its attributes e.g., different accounts can have different balances BankAccount
Representasi sebuah individu, benda, unit, entitas, real ataupun abstrak dengan peran yang jelas dalam domain permasalahan So, What objects are ?
Sebuah objek terdiri dari Atribut know something Data yang dimiliki objek Cara untuk mendeskripsikan objek Operasi do something Tindakan atau aksi yang dilakukan objek yang akan mempengaruhi atribut = +
Mengapa? Modularity Reusability Extensebility Dapat dipecah menjadi bagian-bagian kecil Reusability Komponen yang digunakan pada proyek sebelumnya dapat digunakan kembali Extensebility Komponen yang baru dapat dikembangkan dari komponen yang sudah ada
Prosedural VS OOP Prosedural OOP Mempunyai kemampuan untuk membangun proyek yang tangguh dan handal dalam skala besar Tidak bersifat reusable dan extensible Membutuhkan waktu dan biaya yang lebih besar untk memperluas atau menggunakan kembali komponen yang sudah ada OOP Bersifat reusable dan extensible
Prinsip-prinsip OOP Class Inheritance Enkapsulasi Polimorfisme
Class Cetak biru dari sebuah objek, atribut dn operasi yang dimilikinya Contoh : buku bisa saja berupa kelas Objek : buku bahasa pemrograman java dengan no ISBN :…. Objek adalah perwujudan kelas INSTANCE
Kelas dan objek
Kelas dan objek (2)
Kelas dan objek (3) public class BankAccount { private double balance; public BankAccount() balance = 0; } public double getBalance() return balance; public void deposit( double amount ) balance = balance + amount; … BankAccount.java Constructor: special method that handles initialization Java Example: BankAccount A constructor is invoked during object construction: BankAccount b; b = new BankAccount(); b.deposit( 100.00 ); Constructor call Method call
Enkapsulasi “Information hiding” Data dan cara untuk mendapatkan data (code) dibungkus dalam sebuah paket dan dilindungi dari intervensi luar
Inheritance A car is a vehicle A dog is an animal A teacher is a person Sebuah kelas menurunkan karakteristiknya ke kelas lain
OOP : Pewarisan 16
Polimorfisme Mempunyai beberapa bentuk / forms Memungkinkan objek yang berbeda untuk merespon sebuah pesan yang sama dengan cara masing-masing
Abstract vs Concrete Class ? Abstract class class yang menyimpan aspek generic dari sub class tanpa implementasi tidak memiliki body, body digantikan dengan (;) Concrete class subclass dari abstract class mengimplementasikan abstract class
OOP : Polimorfisme abstract class concrete class bujur lingkaran getGeometri() luas() keliling() bujur lingkaran geometri persegi abstract class concrete class
Konsep ADBO ? Use case driven saat analisa memperhatikan use case Architecture centric saat desain memperhatikan arsitektur fungsional, static, dynamic dari sistem Iterative & Incremental (berulang dan bertambah ) mudah untuk dipakai ulang ataupun diupgrade
Great Software ? Customer : work, keep working, upgraded Programmer : well designed, easy to maintain, reuse “Give them what they want” Bagaimana caranya? Tergantung pada bagaimana mendecomposisikan, menguraikan, mengiris-iris problem