Selasa, 19 Agustus 2014

Algoritma 
&
Metode Object Oriented II

OOP

Definisi dari OOP, adalah konsep pemrograman yang dalam membuat suatu program berorientasi pada suatu objek. Objek yang diorientasikan harus memiliki method, property, type, dan identitas.

Dalam OOP, data dan fungsi yang digunakan berada pada class dan objek, lalu pada bahasa pemrograman OOP seperti java, memiliki kemampuan untuk menambah dimensi pada prosedur untuk lebih fleksibel, jelas, dan mudah digunakan kembali dengan abstraction, encapsulation, inheritance, dan polymorphism.

Class, kumpulan dari objek, property(behavior, attribute), dan method(function)

Ex : 

class mobil {

 String merek, jenis, warna ;
 int jumlah roda;
}

Object, representasi dari class

Ex : Honda City berwarna merah metalik dan beroda 4

Method(behavior), yaitu apa saja yang bisa objek lakukan, dan keuntunagn dari method ada 3, yaitu :
  1. Reusable, method dapat digunakan berulang kali dengan memanggil method yang diperlukan,
  2. Modularize, membuat code memiliki ruang(space), sehingga bisa mencari kesalahan yang mungkin ada serta meningkatkan kualitas program,
  3. Maintenable, mudah untuk diatur(penempatan method).


Abstraction, kemampuan program untuk melewati suatu aspek dalam proses informasi

Encapsulation, menyembunyikan informasi(property) pada suatu objek, dari user

Inheritance, penurunan sifat dari class utama(super/parent class) pada class turunan(sub class), tiap subclass hanya boleh memiliki satu super class, tetapi super class bisa memiliki banyak sub class

Polymorphism, suatu method yang memiliki banyak fungsi. Memberikan fleksibilitas pada aplikasi tergantung dari keperluan pada aplikasi, serta membuat code jadi simple dalam membuat dan melakuakn modifikasi pada aplikasi. 

Class & Object

Constuctor, digunakan untuk membuat objek, dan dalam pemrograman nama constructor sama dengan nama class

Access Modifier, untuk mengamankan data yang ada dalam class, dan fungsi ini memiliki 4 jenis, yaitu :
  1. Public, bisa diakses oleh semua class
  2. Protected, class bisa diakses class itu sendiri, serta class turunan(sub class) class tersebut
  3. Private, class hanya bisa diakses oleh class itu sendiri
  4. Package, untuk mengatur class, seperti membuat folder untuk class.
Overloading, fungsi yang memiliki nama yang sama tapi dengan isi yang berbeda dalam suatu class

Abstact method, dumy code method(code yang tidak memilki fungsi), dan digunakan dalam abstract class
Abstract class, class yang tidak memiliki implementasi, dan bisa digunakan dalam subclass

Static variables, menyimpan nilai(value) dalam local memory

Static method, method tersebut bisa dipanggil tanpa harus membuat objek terlebih dahulu dalam class

Inner class(nested class), suatu class yang ada dalam class, bisa dinyatakan(dibuat) dengan access modifier, dan static variables.


Basic Class

Wrapper class, untuk membungkus tipe data primitif ke dalam class

8 tipe data primitif : byte, short, int, long, float , double, char, boolean

Wrapper class method, seluruh class numeric yang dipanggil dari abstract class numeric memiliki method seperti doubleValue(). Wrapper class akan melakukan override pada fungsi toString dan equals pada class object fungsi tersebut

Inheritance

Inheritance, digunakan karena dapat menerima variable dan method dari class yang sudah ada

subclass, memberikan hak untuk akses variable, method, dan nested class yang ada pada super class, dan untuk memanggil method superclass adalah dengan menggunakan kata 'method'

Ex : 
public void printweight(){
system.out.ptontln("your weight is "+super.getweight);
}

Overriding, fungsi yang sama dalam class yang berbeda

Final class, class yang tidak dapat melakukan extends

Ex: public final class destination{
}

Final method, method tidak dapat melakukan fungsi override
Ex : 
public final String getPlace(){
return place;
}

Polymorphism

Polymorphism, digunakan dalam absract method dan abstract class, dan memiliki 2 jenis, yaitu :
  • static(compile time)
  • dynamic(run time)
Dynamic binding, penggunaan implementasi secara dinamis olej Java Virtual Machine saat runtime, dan memiliki beberapa keuntungan, seperti :
  1. class baru dapat dimuat langsung tanpa harus compile ulang
  2. fitur/fungsi baru dapat ditambahkan secara transparan 

Casting object, convert object pada suatu class ke jenis class lain dalam hierarki inheritance, dan ada 2 jenis casting object, yaitu :

Implicit casting  

Ex :

Object o = new Hero();
m(o), //fungsi m adalah  m(Hero);

Explicit casting

Ex :

Hero b = (Hero)o;

_________________________________________________________________________________