Sunday, February 16, 2014

Object dan Kelas

Pendahuluan


Java merupakan pure Object Oriented Programming (OOP). Karena itu, Java support karakteristik dari konsep OOP yaitu:
  • Object
  • Classes
  • Method
  • Package
  • Inheritance (Pewarisan)
  • Polimorfisme
  • Enkapsulasi
  • Abstraksi
Pada pokok bahasan kali ini, kita akan membahas tentang konsep Object dan Kelas di Java.
  • Object
Apabila kita perhatikan, setiap object di dunia ini mempunya 2 karakteristik yaitu mempunyai keadaan (state) dan tingkah laku (behavior).
  • Class
Class merupakan template/ blue print dari state atau behaviour suatu object.

Object

Cobalah kita lihat di dunia ini, banyak sekali jumlah objek yang tidak bisa kita hitung. Contohnya, manusia, sepeda, anjing, gunung, dll.
Setiap object pasti mempunyai state/property dan tingkah laku/behaviour/method.
Contoh :
- Mahasiswa mempunyai state seperti nama, jenis kelamin, warna, dll.
- Mahasiswa mempunyai tingkah laku seperti belajar, isi krs, berkenalan, dll.

Begitu juga dalam dunia Software Engineering, Software object juga mirip dengan objek di dunia nyata yaitu sama-sama mempunya state/keadaan dan behaviour/tingkah laku. Software mempunyai state seperti variable/property, dan mempunyai behaviour seperti function/method.
Contoh :
- Text Box mempunyai state seperti length, width
- Text Box mempunyai tingkah laku seperti onFocus, onRelease, dll.

Untuk komunikasi antar objek menggunakan pesan/messaging yaitu melalui method.

Class

Class merupakan template/ blue print dari state atau behaviour suatu object.
Di bawah ini adalah contoh deklarasi kelas di Java:

public class Manusia(){
   private String nama;
   private String jenisKelamin;
  
   public String getNama(){
      return nama;
   }
  
   public void setNama(String nama){
      this.nama = nama;
   }
  
   public String getJenisKelamin(){
      return jenisKelamin;
   }

   public String setJenisKelamin(String jenisKelamin){
      this.jenisKelamin = jenisKelamin;
   }

   public Manusia(String nama, String jenisKelamin){
       this.nama = nama;
       this.jenisKelamin = jenisKelamin;
   }
  
   public void makan(){
      System.out.println("Sedang makan");
   }
  
   public void bekerja(){
      System.out.println("Sedang bekerja");
   }
  
   public void belajar(){
       System.out.println("Sedang belajar");
   }
}

Constructor

Constructor mirip sebuah method, tetapi mempunyai nama yang sama dengan kelas tersebut. Setiap kelas pasti mempunyai constructor. Ketika kita membuat kelas tidak menyertakan konstruktor, maka secara otomatis compiler akan membuatkan construtor buat kelas tersebut.

Contoh :
public class Bunga(){
     public Bunga(String name){
          // ini sebuah constructor mempunyai parameter yaitu name.
     }
}

Membuat Object

Untuk membuat objek dari kelas yang kita buat, kita memerlukan keyword new.

Contoh:
public class Bunga(){
     public Bunga(String name){
          // ini sebuah constructor mempunyai parameter yaitu name.
     }
     
     public static void main(String[] args){
         Bungan melati = new Bunga("Melati");
     }
}

Mengakses Variable Instance dan Method

Untuk mengakses Variable Instance, caranya:

objectReferensi.namaVariable;

Untuk mengakses Method, caranya:

objectReferensi.namaMethod;

Contoh :

public class Bunga(){
     private String warna;
     public String getWarna(){
        return warna;
     }

     public void setWarna(String warna){
        this.warna = warna;
     }

     public Bunga(String name){
          // ini sebuah constructor mempunyai parameter yaitu name.
     }
     
     public static void main(String[] args){
         // pembuatan objek
         Bungan melati = new Bunga("Melati");
         
         // mengakses method untuk memberi warna objek melati
         melati.setWarna("putih");
         
         // mengakses method lain untuk mendapat warna objek melati
         System.out.println(melati.getWarna());

         // mengakses variable
         System.out.println("Variable "+melati.warna);
        
     }
}

Penutup

Sekian tutorial kali ini, semoga bermanfaat.








2 comments: