Senin, 01 November 2010

OBJECT , CLASS DAN METHOD



Object dan Class 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.

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) Konstruktor : Suatu method tertentu untuk membuat dan menginsialisasi sebuah instance baru dari class. Konstruktor menginisialiasasi object-object baru dan variable-variabel. Pemberian nama method Konstruktor harus sama dengan nama classnya. (Penjelasan tentang Konstruktor akan dibahas dalam pertemuan berikutnya)

Akses dan Setting Class dan Variabel Instance

Akses 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;



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);

       }

}


Memanggil Method

Untuk memanggil method didalam object, sama seperti memanggil variable instance; yaitu dengan dengan menggunakan notasi titik(.)
Object berada disebelah kiri titik, dan method beserta argumen-argumen berada di kanan titik.
ObjectSatu.methodDua(arg1, arg2, arg3);

Method tanpa argument :
               ObjectSatu.methodNoArg();
Jika method yang dipanggil mempunyai object yang mempunyai method tersendiri.

               ObjectSatu.GetObjectLain().getNama();


Method dengan kombinasi memanggil variable instance

               Pegawai.golongan.gaji(arg1, arg2);

Contoh :

//Nama File : TestString.java
classTestString {
       public static void main(String args[]) {

               String str=”Awalilah segala sesuatu pekerjaan dengan Bismillah”;
               System.out.println(“Kalimat bijak : “ +str);
               System.out.println(“Panjang Kalimat : “ +str.length());
               System.out.println(“Character pada        posisi   4 adalah        : “ +str.charAt(4));

       }

}

Object Reference

Ketika bekerja dengan object-object, salah satu hal yang penting untuk dimengerti adalah bagaimana menggunakan reference ke suatu object.
Ketika kita meng-assign suatu object ke variable, atau menjadikan object- object sebagai argument pada suatu method, sesungguhnya kita telah membuat        reference        ke        object-object        tersebut,        bukan        object        atau duplikasi(copy) dari object yang membuat suatu reference

Contoh berikut akan membuat kita jelas :

// Nama file : ReferencesTest.java import java.awt.font;
class ReferenceTest {

       public static void main(String args[]) {
               Point poin1,poin2;

               poin1 = new Point(100,100);

               poin2 = poin1; poin1.x = 200; poin2.y = 200;
               System.out.println(“Point 1 : “+poin1.x+”,”+poin1.y);
               System.out.println(“Point 1 : “+poin1.x+”,”+poin1.y);
       }

}



Dalam program diatas, kita mendeklarasikan dua variable bertipe Point, dan  meng-assign suatu Point baru ke poin1. Kemudian meng-assign poin2 dengan nilai dari poin1.

Output yang terjadi adalah :

Point 1 : 200,200

Point 2 : 200,200

Terlihat poin2 juga berubah.        Ketika kita meng-assign suatu nilai dari poin1 ke poin2, sesungguhnya kita menciptakan sebuah reference dari point2 menunjuk ke suatu object yang sama dengan poin1.

Mendeklarasikan Class dan Variabel

Class adalah kumpulan kode atau cetak biru(blue print) dari suatu object. Didalam cetak biru menerangkan sifat dari objek dan identitas suatu variable.
Sintax untuk mendeklarasikan class :

[‘public’] [(‘abstract’ | ‘final’)] class nama_class

{
       // sifat dari object dan identitas suatu variable dideklarasikan diantara {}

}

Menggunakan keyword public berarti class tersebut bisa di akses oleh class-class di seluruh package. Perlu diingat jangan menggunakan public jika class dibuat hanya di  akses oleh class-class dalam satu package dengan class itu sendiri.
Gunakan keyword abstract untuk mendefinisikan suatu class abstract dimana  object  tidak bisa  diciptakan dari class  abstract,  kelas abstract dibuat untuk diturunkan(di subclass) bukan untuk diinstansiasi langsung. Gunakan keyword final untuk mendefinisikan suatu class yang tidak dapat diturunkan.

Penamaan class biasanya menggunakan huruf capital untuk karakter pertamanya.
Contoh :

       class Mhs {

       }
       
       Jika class adalah sub class dari class lain gunakan keyword extends.
       class Mhs extends Mahasiswa {
       }


Dapat diartikan Mhs adalah subclass dari Mahasiswa.

Deklarasi Variabel

Sintax Deklarasi variable :
[(public | private | protected)]
       [(final | volatile)]
       [static][transient]
       Tipe_data Nama_variabel [=ekspresi];


Contoh :

class Mahasiswa {
       String npm;
       int nilai;

}


Akses variable

Untuk akses dan scope variable digunakan keyword : public, private atau protected.
1. Tanpa keyword

Contoh dibawah ini bila tidak menggunakan keyword :

class MyClass

{
               int nama;
}

Berarti : Hanya kode-kode yang terdapat dalam MyClass dan class- class  lain  yang  dideklarasikan  dalam  package  dimana  MyClass dideklarasikan yang dapat mengakses variable nama.

2. private

class Pegawai

{

               private double gaji
}

Berarti  :  Hanya  kode-kode  yang  terdapat  dalam  class  Pegawai yang dapat mengakses variable gaji.

3. public

public class Pegawai

{
               public String nama;
}

Berarti : Kode-kode yang terdapat didalam class Pegawai dan class yang  terdapat di dalam package lain dapat mengakses variable nama(class Pegawai harus dideklarasikan public juga agar dapat diakses class-class dalam package lain.

4. protected

public class Pegawai

{
               protected String nama;
}

Berarti : Hanya kode-kode yang terdapat dalam class Pegawai dan class-class lain dalam satu package yang sama dengan class Pegawai        dan        seluruh        sub        class        dari        class        Pegawai(yang dideklarasikan dalam package  lain) dapat mengakses variable nama.


METHOD

Metode menentukan perilaku objek,yakni apa yang terjadiketika objek itu dibuat serta berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.
Metode memiliki 4 (empat) bagian dasar :
       Nama metode
       Tipe Objek atau tipe primitive yang dikembalikan metode.
       Daftar parameter.
       Badan atau isi metode.

Tiga bagian pertama dari definisi metode membentuk apa yang disebut sebagai  penanda (signature) metode dan mengindikasikan informasi penting tentang metode itu sendiri. Dengan kata lain, nama metode tersebut dari metode=-metode lain dalam program. Dalam java kita dapat memiliki metode-metode berbeda yang   memiliki nama sama tetapi berbeda tipe kembalian atau daftar argumennya, sehingga bagian-bagian definisi metode ini menjadi penting. Ini disebut overloading metode.
Definisi dasar metode adalah sebagai berikut :

       Tipekembalian namametode (type1 arg1, type2 arg2, type3 arg3 ..)

       {

               …………

       }

dalam contoh diatas tipe kembalian adalah tipe nilai yang dikembalikan oleh metode. Ini bias berupa salah satu        tipe primitive,nama kelas, atau void bila metode tidak mengembalikan nilai sama sekali.
Contoh Program :

       class KelasRentang {

               int [] buatRentang(int lower, int upper) {

               int arr[] = new int [ {upper – lower ) + 1 ];

               for (int I = 0 ; i< arr.length;i++) {

               arr[i] = lower++;

               }
       
       return arr;

       }

       public static void main(String [] args) {

               int inilarik[];

               KelasRentang iniRentang = new KelasRentang ();
               Inilarik = iniRentang.buatRentang(5,20); System.out.print(“Lariknya adalah : [ “ );
               For (int i = 0; i < inilarik.length;i++) {
               System.out.print(inilarik[i] + “ “);

       }

               System.out.println(“] “);

       }

       }

Pada bagian definisi metode terkadang kita ingin merujuk objek saat ini (yakni objek  dimana metode berada untuk pertama kalinya). Untuk itu digunakanlah kata kunci this. Kata kunci this dapat digunakan dimanapun objek saat ini berada        pada notasi titik untuk merujuk variabel instance objek, sebagai argument ke metode, sebagai        nilai kembalian untuk metode saat ini, san sebagainya :
       t = this.x        // x variabel instance objek
       return this        // mengembalikan objek saat ini.


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 :

       Mengalokasikan memori untuk objek baru

       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).

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(“-----------------------“);

       }
       }

Copyright © 2010, iLab Universitas Gunadarma

Tidak ada komentar:

Posting Komentar