intro to oop

Post on 22-Jan-2016

58 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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 - PowerPoint PPT Presentation

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