Selasa, 24 Juli 2012


Sebelum melangkah pada fitur-fitur menarik yang ada pada Java, alangkah baiknya kita mempelajari tentang perbedaan konsep-konsep berorientasi object dalam Java.
Konsep Berorientasi object
  1. Desain Berorientasi object
Desain berorientasi object adalah sebuah teknik yang memfokuskan desain pada object dan class berdasarkan pada skenario dunia nyata. Hal ini menegaskan keadaan(state), behaviour dan interaksi dari object. Selain itu juga menyediakan manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi dan meningkatkan penggunaan kembali software.

  1. Class
Class mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint, dimana model dari object yang Anda buat berdasarkan pada tipe data baru ini.

  1. Object
Sebuah object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang yang tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari sebuah class. Ini juga dikenal sebagai instance. Instance dibuat sewaktu Anda meng-instantiate class menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah object yaitu entiti Student.

  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. Kembali lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor siswa.

  1. Method
Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti siswa adalah method register.
  1. Konstruktor
Konstruktor adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan menginisialisasi sebuah object baru. Ingat bahwa konstruktor bukan member(yaitu atribut, method atau inner class dari sebuah object).

  1. Package
Package menunjuk pada pengelompokkan class dan / atau subpackages. Strukturnya dapat disamakan dengan direktorinya.

  1. Enkapsulasi
Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan informasi yang tidak sesuai pada object yang ada.

  1. Abstraksi
Sementara enkapsulasi menyembunyikan detail, abstraksi mengabaikan aspek dari subyek yang tidak sesuai dengan tujuan yang ada supaya lebih banyak mengkonsentrasikan yang ada.

  1. Pewarisan
Pewarisan adalah hubungan antara class dimana dalam satu class ada superclass atau class induk dari class yang lain. Pewarisan menunjuk pada properti dan behaviour yang diterima dari nenek moyang dari class. Ini dikenal juga sebagai hubungan “is-a”. Perhatikan pada hirarki berikut.
SuperHero
 


FlyngSuperHero                           UnderwaterSuperHero

Gambar 1.1: Contoh Pewarisan
SuperHero adalah superclass dari class FlyingSuperHero dan UnderwaterSuperHero. Catatan bahwa FlyingSuperHero “is-a” SuperHero. Sebagaimana juga UnderwaterSuperHero “is-a” SuperHero.

  1. Polimorfisme
Polimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa bentuk yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti bentuk. Menunjuk pada contoh sebelumnya pada pewarisan, kita lihat bahwa object SuperHero dapat juga menjadi object FlyingSuperHero atau object UnderwaterSuperHero.

  1. Interface
Sebuah interface adalah sebuah contract dalam bentuk kumpulan method dan deklarasi konstanta. Ketika sebuah class implements sebuah interface, ini mengimplementasikan semua method yang dideklarasikan dalam interface.

Struktur program Java :
v  Mendeklarasikan class Java

<classDeclaration> ::=
<modifier> class <name> {
<attributeDeclaration>*
<constructorDeclaration>*
<methodDeclaration>*
}
dimana <modifier> adalah sebuah access modifier, yang mana boleh dikombinasikan dengan tipe yang laen dari modifier.
Petunjuk Penulisan Program:
* = berarti bahwa boleh ada 0 atau lebih kejadian dari deret tersebut yang menggunakannya
juga.
<description> = menunjukkan bahwa Anda harus mengganti nilai sebenarnya untuk bagian ini
daripada menguranginya penulisannya.
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]);
}
}
  }

v  Mendeklarasikan Atribut

<attributeDeclaration> ::=
     <modifier> <type> <name> [= <default_value>];
<type> ::=
     byte | short | int | long | char | float | double | boolean
              | <class>
Petunjuk Penulisan Program:
[ ] = Menunjukkan bahwa bagian ini hanya pilihan.


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

v  Mendeklarasikan Method

<methodDeclaration> ::=
      <modifier> <returnType> <name>(<parameter>*) {
           <statement>*
      }
<parameter> ::=
      <parameter_type> <parameter_name>[,]

Sebagai contoh :

class MethodDemo {
     int data;
     int getData() {
         return data;
     }
     void setData(int data) {
this.data = data;
     }
     void setMaxData(int data1, int data2) {
        data = (data1>data2)? data1 : data2;
     }
          }

v  Mendeklarasikan sebuah Konstruktor

<constructorDeclaration> ::=
    <modifier> <className> (<parameter>*) {
         <statement>*
         }

Jika tidak ada konstruktor yang disediakan secara jelas, konstruktor default secara otomatis membuatkannya untuk Anda. Konstruktor default tidak membawa argumen dan tidak berisi pernyataan pada tubuh class.
Petunjuk Penulisan Program:
Nama konstruktor harus sama dengan nama class.
<modifier> yang valid untuk konstruktor adalah public, protected, dan private.
Konstruktor tidak memiliki nilai return.

Perhatikan contoh berikut.

class ConstructorDemo {
    private int data;
    public ConstructorDemo() {
         data = 100;
    }
    ConstructorDemo(int data) {
         this.data = data;
    }
}

v  Meng-instansiasi sebuah class

Untuk meng-instantiate sebuah class, dengan sederhana kita gunakan kata kunci new diikuti dengan pemanggilan sebuah konstruktor. Mari lihat langsung ke contohnya.

class ConstructObj {
     int data;
     ConstructObj() {
           /* menginisialisasi data */
       }
       public static void main(String args[]) {
             ConstructObj obj = new ConstructObj(); //di-instantiate
       }
             }

v  Mendeklarasikan sebuah Konstruktor
<constructorDeclaration> ::=
     <modifier> <className> (<parameter>*) {
          <statement>*
          }
Jika tidak ada konstruktor yang disediakan secara jelas, konstruktor default secara otomatis membuatkannya untuk Anda. Konstruktor default tidak membawa argumen dan tidak berisi pernyataan pada tubuh class.
Petunjuk Penulisan Program:
Nama konstruktor harus sama dengan nama class.
<modifier> yang valid untuk konstruktor adalah public, protected, dan private.
Konstruktor tidak memiliki nilai return.

Perhatikan contoh berikut.
class ConstructorDemo {
     private int data;
     public ConstructorDemo() {
           data = 100;
     }
     ConstructorDemo(int data) {
           this.data = data;
     }
}
Sumber dari : JENI-Intro2-Bab01-Review-Konsep-Dasar.pdf

Tidak ada komentar:

Posting Komentar