190 likes | 436 Views
Konsep OOP di Java. TRASPAC, Mei 2009 Oleh : Siwi Arie Widadi. Konsep OOP Umum. Inheritance. Enkapsulasi. Polimorfisme. Enkapsulasi. -> Kemampuan dari sebuah object untuk menjadi kontainer terhadap properti atau method yang dimiliki, sekaligus menentukan hak aksesnya. Manfaat Enkapsulasi.
E N D
Konsep OOP di Java TRASPAC, Mei 2009 Oleh : Siwi Arie Widadi
Konsep OOP Umum Inheritance Enkapsulasi Polimorfisme
Enkapsulasi -> Kemampuan dari sebuah object untuk menjadi kontainer terhadap properti atau method yang dimiliki, sekaligus menentukan hak aksesnya.
Manfaat Enkapsulasi • Modularitas, Low Coupling, High Cohesion • Data Hiding
Penerapan Enkapsulasi di Java (1) Versi 1 (tanpa enkapsulasi) class Vehicle { public double load; public double maxLoad; //Initialize new Vehicle with maximal load given public Vehicle(double maxLoad){ this.maxLoad = maxLoad; } }
Penerapan Enkapsulasi di Java (3) • Perhatikan bahwa pada TestVehicle, dibuat Vehicle dengan kapasitas maksimum 10.000 kg. • Tetapi pada program selanjutnya terdapat penambahan boxes yang melebihi kapasitas (10.050 kg) trouble. • Kenapa trouble? Karena tidak ada pengecekan kapasitas maksimum sehingga vehicle nya kelebihan kapasitas.
Penerapan Enkapsulasi di Java (4) Versi 2 (dengan enkapsulasi) class Vehicle { private double load; private double maxLoad; //Initialize new Vehicle with maximal load given public Vehicle(double maxLoad){this.maxLoad = maxLoad} //Getter and setter //To make sure that load <= maxLoad public boolean addLoad(double load){} }
Inheritance -> Kemampuan sebuah class untuk dapat menggunakan properti dan method dari class yang lain -> Penerapan relasi pada dunia nyata ke dalam program Kegunaan : mapping real object ke dalam programming object (class)
Jenis-jenis Relasi • Asosiasi -> Hubungan / relasi antar dua object secara umum • Agregasi -> Agregasi merupakan hubungan antara satu object dengan object lainnya dimana object satu dengan object lainnya sebenarnya terpisah namun disatukan, sehingga tidak terjadi kebergantungan (Object lain bisa ada walau object penampungnya tidak ada ) • Komposisi -> Serupa dengan agregasi hanya saja, terdapat ketergantungan dari salah satuobject
Penerapan Relasi di Java • Extend (is-a) Class Engineer extend Person(){ } • Composition (has-a) Class Engineer(){ private Person person; }
Polimorfisme -> Kemampuan dari sebuah action atau method untuk melakukan sesuatu yang berbeda -> Satu nama, mempunyai beberapa/banyak bentuk
Penerapan Polimorfisme di Java • Overloading Kemampuan sebuah method untuk memiliki parameter yang berbeda. Contoh : System.out.println(tipeParameter parameter);
Penerapan Polimorfisme di Java • Overriding Kemampuan subClass untuk melakukan implementasi tersendiri dari sebuah method yang sudah didefinisikan di superClass public abstract class Animal // class is abstract { private String name; public Animal(String nm) // constructor method { name=nm; } public String getName() // regular method { return (name); } public abstract void speak(); // abstract method - note no {} }
Penerapan Polimorfisme di Java • Dinamic Method Binding Kemampuan superClass untuk menentukan method yang akan dijalankan pada subClass yang berbeda public class AnimalReference{ public static void main(String args[]) Animal ref // set up var for an Animal Cow aCow = new Cow("Bossy"); // makes specific objects Dog aDog = new Dog("Rover"); Snake aSnake = new Snake("Ernie"); // now reference each as an Animal ref = aCow; ref.speak(); ref = aDog; ref.speak(); ref = aSnake; ref.speak(); }