OOP (OBJECT ORIENTED PROGRAMMING)



A. Object

Adalah sesuatu yang bersifat nyata, kesatuan entitas (benda) yang berwujud nyata atau hanya suatu system atau konsep yang memiliki sifat karakteristik dan fungsi
Contoh : uang ,rumah mobil dll

B. Class

Adalah pemodelan yang bersifat abstrak dari suatu objek yang mendeskripsikan data (sifat) dan fungsi yang dimiliki objek tersebut
Contoh : resep kue, gambar rumah, cetakan uang dll

C. Instance

Adalah pembentukan objek dari suatu benda yang disebut instansiasi
Contoh: Pensil merupakan instan dari class AlatTulis yang mempunyai data (sifat karakteristik) berbentuk batang, mudah digerakkan

D. Data=variabel=property=attribute
Adalah sifat karakteristik yang dimiliki suatu objek
Contoh : Dari class HewanDaratBerkakiEmpat dapat diinstans objek-objek kucing, kuda, singa dll. Data dari class ini adalah jumlaj kaki, bulu, jenis makanan dll.

E. Method=prosedur/fungsi=behaviour
Adalah prosedur atau fungsi yang dimiliki oleh sebuah objek. Method ini mengolah atau mengubah data atau variabel yang ada dalan objek sesuai dengan operasi yang telah ditentukan. Ada 3 jenis pengolahan
Mengembalikan nilai akhir
Mengembalikan nilai sementara untuk diberikan ke method yang lain
Tidak mengembalikan nilai

Kerangka OOP


A. Komentar
Ada 3 cara penulisan komentar
// sebanyak satu baris
/* lebih dari satu baris */
//* lebih dari satu baris


B. Package(paket) dan Import

    Package akan memberitahu kompiler ke library  tertentu ketika suatu file class akan dikompile. Import akam memberitahu kompiler untuk mengimport suatu komponen yang terletak dalam suatu library


C. Class
Sintaks :
(modifier) Class NamaKelas (keyword tambahan)
{
Class Body
}
Modifier berfungsi untuk menerangkan sifat suatu unsure (class/data/method). Beberapa modifier yang digunakan adalah abstract, final, multiple, static, public, private, protected.


Class Body

Meliputi :
Class Body yaitu bagian program yang merupakan isi dari class yang mendefinisikan obkel, sifat, method sebagai blueprint untuk menciptakan objek tersebut, yang ditulis dalm { }. Dibutuhkan juga konstruktor untuk mendeklarasikan class body dengan memberi nilai default
Blok digunakan untuk menghimpun bagian tertentu program

Data/Variabel

Adalah bagian memori untuk menyimpan data. Setiap variabel harus memiliki tipe data yang unik.
Contoh
Mendeklarasikan variabel dengan tipe tertentu
Typedata    namaVariabel
Int        radius;
Menetapkan suatu nilai
Radius = 3;
Menggabungkan deklarasi dan menetapkan
Int radius = 2;


Method

Dapat diilustrasikan sebagai kotak hitam yang berfungsi menerima data masukan, memproses sesuai operasi yang ditentukan, mengembalikan data hasil kepada bagian yang memanggil. Dilihat dari nilai yang dikembalikan, method memiliki 2 kemungkinan yaitu mengembalkan suatu nilai atau tidak. Bila mengembalikan suatu nilai maka nilai kembaliannya harus dituliskan sesuai tipe datanya, sedangkan bila tidak mengembalikan  nilai diberi atribut void

Main Method

Java interpreter mencari dulu main method
Sintaks
    Public static void main( String args[])
    {
    Body dari Main Method
    }


MEMBUAT OBJECT DARI CLASS


Dibutuhkan operator new untuk membuat objek suatu kelas
Sintaks
NamaKelas VariabelReferensiObjek= new NamaKelas();
A. Mendeklarasikan variable referensi objek
        NamaKelas   Objek referensi
        Lingkaran    LingkaranSatu
B. Menciptakan objek dari kelas dengan operator new
        new  NamaKelas();
        new    Lingkaran();
C. Menugaskan variable pada objek yang dibuat
        LingkaranSatu = new Lingkaran();

MENGAKSES DATA DAN METHOD DARI SUATU CLASS

    NamaKelas.namaVariabel;
    NamaKelas.namaMethod

INHERITANCE
    Inheritance (pewarisan atau penurunan) adalah membuat class yang merupakan exstension dari class lain. Karena itu penurunan class dalam java dilakukan dengan keyword extends. Java tidak membolehkan multiple inheritance ( sebuah class dapat diturunkan dari lebih class yangb tidak berada dalam satu garis hirarki) , sehingga sebuah class hanya boleh menurunkan 1 class saja.  Agar dapat menggunakan multiple inheritance digunakan keyword implements yang dipakai menurunkan sifat dari satu atau lebih interface


Tujuan inheritance


A.Bersifat reusable

    Bayangkan bila membuat class dari basis yang sama ( data dan method yang sama), namun pada masing-masing akan ditambahkan data dan method yang khusus. Tanpa inheritance harus menyalin semua data dan method dari suatu class. Tapi jika duplikasi dari class standar API, tidak mudah karena class tersebut terbungkus dalam unit J2SDK sehingga tidak dapat melihat listing source codenya
B.Mudah dalam manage class yang mempunyai data dan method yang sama


Contoh

class Mamalia
{
    Boolean menyusui = true;
}
class Carnivora extends Mamalia
{
    String makanan =”daging”;
}
Class Anjing extends Carnivora
 {
    Int kaki =4;
}
Class Contoh
{
Public static void main(String[]arguments)
 {
    Anjing herder = new Anjing();
    System.out.println(herder.menyusui);
    System.out.println(herder.makanan);
    System.out.println(herder.kaki);
}
}


Diatas sebuah class menurunkan sifat dari class lainnya dengan memakai extends sehingga
- Class Anjing menurunkan sifat dari class Carnivora
- Class Carnivora menurunkan sifat dari class Mamalia
Objek herder merupakan instance dari class Anjing, karena punya class Anjing, maka objek herder mempunyai sifat dari class Anjing, class Carnivora, class Mamalia

SUPERCLASS DAN SUBCLASS

- Class Mamalia adalah superclass dari class Carnivora
- Class Mamalia adalah superclass dari class Anjing
- Class Carnivora adalah superclass dari class Anjing
- Class Carnivora adalah subclass dari class Mamalia
- Class Anjing adalah subclas dari class Mamalia
- Class Anjing adalah subclass dari class Carnivora
Keyword super digunakan untuk mengakses anggota dari superclass


ENCAPSULATION (ENKAPSULASI)
Yaitu cara membungkus data dan method yang menyusun class dan menyembunyikan dari luar. Sehingga program tersebut tidak dapat diketahui orang lain, mereka hanya dapat menggunakan komponen tersebut.

Keuntungan enkapsulasi

- Bersifat Independen
    Bersifat independen dari  modul lainnya sehingga dapat digunakan pada bagian manapun dari  program. Dan tidak akan terikat pada bagian tertentu dari program
- Bersifat transparan
    Jika dilakukan modifikasi pada suatu modul, maka perubahan akan dirasakan pada program yang menggunakan program tersebut
- Menghindari efek diluar perencanaan


Keempat field dan metode tersebut dibungkus bersama-sama didalam sebuah class. Dalam contoh diatas, field (data) suara dan kaki tidak perlu diketahui oleh pihak diluar class. Karena itu untuk mengaksesnya, dapat memakai metode bunyi() dan JumlahKaki(). Sehingga pihak diluar class hanya perlu mengetahui bahwa ada class bernama kuda. Objek class tersebut akan berbunyi “hik” ( metode bunyi()) dan mempunyai 4 kaki (metode jumlahKaki()).


POLYMORPHISM
Yaitu mempunyai banyak bentuk.

Class Carnivora
{
    Void public bunyi() {
    System.out.println(“????”)
}
}
Class Anjing extends Carnivora{
String suara=”guggug”;
Int kaki = 4;
Void public bunyi()
{
System.out.println(suara);
}
Int public jumlahKaki()
{
Return kaki;
}
}



Dalam hal ini class Carnivora dan Anjing mempunyai metode bunyi(). Metode bunyi() dalam class Anjing menumpuki (override) metode bunyi() dalam class carnivore. Dengan kata lain class menurunkan sifat bunyi() dari class Carnivora. Tetapi implementasi dari sifat bunyi() tersebut berbeda.
Class Carnivora juga menurunkan sifat kepada class-class yang lain seperti kucing dan beruang. Sifat bunyi() dari masing-masing class tersebut pasti berbeda

INTERFACE
Adalah sekumpulan metode abstrak yang tidak memiliki implementasi
Ketika sebuah class memakai metode abstrak, mengimplementasikan interface tersebut dengan memakai keyword implements. Interface harus dideklarasikan .public. Dalam Interface adalah aturan-aturan untuk class yang akan mengimplementasikan interface tersebut. Interface untuk mendeklarasikan koleksi method dan konstanta

Contoh
//-------------Kontrol.java---------------------
public interface Kontrol {
    void On();
    void off();
//---------------------------TesKontrol.java-----------------
public class TesKontrol
{
    Public static void main(String args[])
    {
    Kontrol radio = new Radio();
    Kontrol televisi = new Televisi();
    Kontrol komputer = new Komputer();
   
    radio.On();
televisi.On();
komputer.On();
radio.Off();
televisi.Off();
komputer.Off();
}
}
Class Radio implements Kontrol{
    Public void On()
    {
    System.out.println(“radio hidup”);
    }
    Public void Off()
    {
    System.out.println(“radio mati”);
    }
}


0 komentar:

Posting Komentar