intro to oop
Post on 22-Jan-2016
58 Views
Preview:
DESCRIPTION
TRANSCRIPT
Intro to OOP
Yesi Novia, S.Kom
Perkembangan Orientasi Software• 1960-1970 Process-Orientation – Process models – Process-Orientation – Process models –
Data Flow Diagrams, Flow ChartsData Flow Diagrams, Flow Charts• 19801980
Data-Orientation – Data models – Entity-Data-Orientation – Data models – Entity-Relationship (ER) DiagramsRelationship (ER) Diagrams
• 19901990Object-Orientation – Object models – Object-Orientation – Object models – Class Diagrams, Event DiagramsClass Diagrams, Event Diagrams
• 2000 –UML- standarisasi OOD2000 –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]
• state/attributes– 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
LightBulbCar
BankAccount
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
So, What objects are ?
• Representasi sebuah individu, benda, unit, entitas, real ataupun abstrak dengan peran yang jelas dalam domain permasalahan
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– 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– 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 );
Method call
Constructor call
Enkapsulasi
• “Information hiding”• Data dan cara untuk mendapatkan
data (code) dibungkus dalam sebuah paket dan dilindungi dari intervensi luar
Inheritance
• Sebuah kelas menurunkan karakteristiknya ke kelas lain
A car is a vehicle
A teacher is a person
A dog is an animal
16
OOP : Pewarisan
Polimorfisme
• Mempunyai beberapa bentuk / forms• Memungkinkan objek yang berbeda untuk
merespon sebuah pesan yang sama dengan cara masing-masing
• 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
Abstract vs Concrete Class ?
OOP : Polimorfisme
getGeometri()luas()keliling()
bujur
getGeometri()luas()keliling()
lingkaran
getGeometri()luas()keliling()
geometri
getGeometri()luas()keliling()
persegi
abstract class
concrete class
• 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
Konsep ADBO ?
• 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
Great Software ?
top related