Powered By Blogger

Rabu, 23 Mei 2012

Konsep Object Oriented Programming
 
1.CASS DAN OBJECT

1.1             Class
Dalam dunia nyata, kita sering berinteraksi dengan banyak object.  Kita tinggal  di  rumah,  rumah  adalah  suatu  object,  dalam terminology OOP rumah kita adalah instance dari suatu class rumah. Misal kita tinggal dalam suatu komplek perumahan, sebelum membangun rumah, developer akan berpanduan pada rancang bangun rumah (blue print) yang telah dibuat seorang arsitek. Blue print dari rumah adalah class,  sedang rumah yang kita  tinggal (rumah-rumah dalam  komplek) disebut instance. Manusia adalah sebuah class ; anda, saya, kita adalah instance dari class manusia. Mendeklarasikan class Java :
<classDeclaration> ::=
            <modifier> class <name>{
                        <attributDeclaration>*
                        <constructorDeclaration>*
                        <methodDeclaration>*
}
dimana <modifier> adalah sebuah access modifier, yang mana boleh dikombinasikan dengan tipe yang laen dari modifier.
Catatan :
1.      * berarti bahwa boleh ada 0 atau lebih kejadian dari deret tersebut yang menggunakannya juga.
2.      <description> menunjukkan bahwa Anda harus mengganti nilai sebenarnya untuk bagian ini daripada mengurangi penulisannya.
3.      Ingat bahwa untuk class teratas, acces modifier yang valid hanyalah public dan package(yakni jika tidak ada acces modifier mengawali kata kunci class).

Contoh berikut ini mendeklarasikan blueprint SuperHero.

Class SuperHero
{ String superPowers[];
void setSuperPowers(String superPowers[]){
this.superPowers = superPowers;
}
void printSuperPowers() {
for (int i = 0; i < superPowers.length; i++) { System.out.println(superPowers[i]);
}
}
}





1.2   Object
Object adalah instance dari class. Jika class secara umum merepresentasikan (template)  sebuah  object,  sebuah  instance  adalah representasi nyata dari class itu sendiri.
            Bekerja dengan Object
Ketika anda membuat program dengan Java, anda akan mendefinisikan beberapa class,  anda  juga  akan  menggunakan class  untuk  membuat suatu instance dan  tentu  saja  akan bekerja dengan instance-instance tersebut.
            Membuat Object
Untuk membuat object, kita menggunakan perintah new dengan sebuah nama class yang akan dibuat sebagai instance dari class tersebut.
String str = new String();
Random r = new Random();
Pegawai p2 = new PEgawai();
Date hari = new Date();

hari adalah object reference dari class Date yang akan digunakan untuk mengakses class Date.
Sedangkan operator new adalah operator yang akan menghasilkan hari sebagai reference ke instance dari class Date().
Contoh :

Kita akan menggunakan class Date untuk membuat suatu object Date. import java.util.Date;
class CreateDates {

public static void main(String args[]){ Date d1,d2,d3;
d1 = new Date(); System.out.println(“Hari 1 : + d1);
d2 = new Date(71,4,14,8,35); System.out.println(“Hari 2 : + d2);
d3 = new Date(“September 3 1976 2:25 PM”);

System.out.println(“Hari 3 : + d3);

}

}




Ketika Anda memanggil operator new terjadi beberapa hal :

1.  Instance baru yang telah diberikan oleh class dicipakan

2.  Memori dialokasikan untuk instance tersebut

3.  Special Method didefinisikan pada class (Konstruktor)

1.3   Instansiasi objek
1.3.1Akses Variable Instance
Untuk mengambil value dari suatu variable instance kita gunakan notasi titik(.). Dengan  notasi  titik,  sebuah  instance  atau  variable  class  dibagi  dua bagian. Object berada di kiri titik dan variable berada di kanan titik.
Pegawai.tugas;



Pegawai adalah object, tugas adalah variable.   Misalkan tugas adalah object yang mempunyai variable instance sendiri yaitu status, penulisan dapat ditulis sebagai berikut
Pegawai.tugas.status;

1.3.2  Memberi Nilai Variabel
Untuk  memberi  nilai  variable  kita  gunakan  operator  sama  dengan(=) disebelah kanan ekspresi.

Pegawai.tugas.status = SELESAI; // SELESAI==true
  Contoh :


//  Nama File : Testpoint.java import java.awt.font;
class Testpoint {

public static void main(String args[]) {
Point poin = new Point(10,10); System.out.println(“X = + point.x); System.out.println(“Y = + point.y); System.out.println(“Setting X = 6 “); poin.x = 6; System.out.println(“Setting Y = 14“); poin.y = 14;
System.out.println(“X = + point.x);
System.out.println(“Y = + point.y);
}

}






1.4  Konstruktor
Metode konstruktor digunakan untuk menginisialisasi objek baru ketika metode-metode itu  dibuat. Tidak seperti metode biasa, kita  tidak dapat memanggil metode konstruktor dengan memanggilnya langsung. Metode konstruktor dipanggil oleh  java  secara  otamatis  ketika  kita  membauat objek baru. Jika kita menggunakan new untuk membuat objek baru, java melakukan 3 (tiga) hal :

1.      Mengalokasikan memori untuk objek baru
2.      Menginisialisasi variabel instance objek tersebut, baik dengan nilai awal maupun dengan nilai default (0 untuk bilangan, null untuk objek, false untuk Boolean, \0 untuk objek, false untuk Boolean, ‘\0 untuk karakter).
3.      Memanggil Metode konstruktor kelas tersebut (mungkin satu dari beberapa metode)

Dengan mendefinisikan metode konstruktor pada kelas yang kita buat, kita dapat mengatur nilai awal variabel instance, memanggil metode berdasar variabel tersebut atau objek lain, atau menghitung property awal objek, kita  juga  dapat melakukan overloading konstruktor sebagaimana yang biasa kita lakukanh terhadap metode regular, juga membuat objek yang memiliki     properti khusus berdarkan argumen yang kita berikan dalam ekspresi new. Konstruktor mirip dengan metode regular, hanya saja ada dua perbedaan utama yaitu : Konstruktor selalu memiliki nama yang sama dengan class. Konstruktor tidak memiliki nilai kembalian.
Contoh Program :


class Asisten { String nama ; int umur;
Asisten(String n, int u) {

nama = n;

umur = u;

}

void tampilAsisten () {
System.out.print(“Hallo, namaku + nama ); System.out.println( Umurku + umur + “ tahun “);

}

public ststic void main(String [] args) { Asisten a;
System.out.println( “);

a = new Asisten(Widy Marinto Jati ,20);

a.tampilAsisten();

System.out.println(“-------------------- ); a = new Asisten(“Iman R, ST “ ,22); a.tampilAsisten();
System.out.println(“-----------------------“);

}

}

1.5 Atribut & Method
1.5.1        Atribut
Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data. Mendeklarasikan Atribut :
<attributeDeclaration> ::=
<modifier> <type> <name> [= <default_value>];
<type> ::=
byte | short | int | long | char | float | double | boolean
| <class>

Catatan :

[] = Menunjukkan bahwa bagian ini hanya pilihan

Contoh:

public class AttributeDemo {
private String studNum;
public boolean graduating = false;
protected float unitsTaken = 0.0f; String college;
}

1.5.2        Method
Sebuah method adalah bagian-bagian kode yang dapat dipanggil oleh program utama atau dari method lainnya untuk menjalankan fungsi yang spesifik di dalam kelas. Method dapat dibagi menjadi fungsi dan prosedur. Fungsi adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah dengan mengembalikan hasil. Prosedur adalah bagian atau sub dari program yang mempunyai algoritma tertentu dalam menyelesaikan suatu masalah tanpa mengembalikan suatu nilai hasil. Secara umum method dalam java adalah sebuah fungsi.


Karakteristik method :
1.      Dapat mengembalikan satu nilai atau tidak sama sekali
2.      Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama sekali. Parameter bisa juga disebut sebagai argumen dari fungsi
3.      Setelah method telah selesai dieksekusi, dia akan kembali pada method yang Memanggilnya.
Deklarasi sebuah method
Method terdiri atas dua bagian yakni :
1.    Method declaration
2.    Method Body
Method dapat digambarkan sebagai sifat (behavior) dari suatu class. Untuk mendefinisikan method pada dalam class digunakan sintaks sintaks
[modifier] <tipe_data_return> nama_method( [parameter] ) { methode body }
            Contoh :          public int Perkalian (int y;int z) { methode body    }

Modifier pada method
Modifier menentukan level pengaksesan sebuah method. Hal ini menentukan apakah sebuah method bisa diakses oleh objek lain, objek anak, objek dalam satu paket atau tidak dapat diakses oleh suatu object sama sekali berikut adalah beberapa jenis level access:
·       Public
Atribut ini menunjukan bahwa fungsi/method dapat diakses oleh kelas lain.
·      Private
Atribut ini menunjukan bahwa fungsi atau method tidak dapat diakses oleh kelas lain
·      Protected
Atribut ini menunjukan bahwa fungsi atau method bisa diakses oleh kelas lain dalam satu paket dan hanya  kelas lain yang merupakan subclass nya pada paket yang berbeda.
·      Tanpa modifier
Atribut ini menunjukan bahwa method dapat diakses oleh kelas lain dalam paket yang sama.
·      Abstract
Fungsi tidak memiliki implementasi.
·      Final
Method tersebut tidak dapat dioverride oleh kelas turunan.
·      Static
Method dapat diakses tanpa harus melakukan instantiasi terlebih dahulu.

Tidak ada komentar:

Posting Komentar