Friday, April 16, 2010

Class dan Object pada Java



Terus terang, pada permulaan belajar bahasa Java, aku sedikit kesulitan untuk mengerti konsep class dan object ini. Mungkin karena di semester 1 lalu aku sudah terbiasa dengan bahasa C yang terstruktur, sehingga agak sulit untuk berpindah ke konsep OOP. Namun setelah dipelajari, ternyata konsep ini tidak sesulit yang kubayangkan sebelumnya. Malahan konsep ini membuatku merasa lebih asyik dalam memprogram. :) Untuk mengembangkan suatu program pun jadi lebih cepat dan mudah daripada bahasa C yang terstruktur.

Memang konsep inilah yang sangat membedakan bahasa pemrograman C dengan Java. Java menggunakan konsep OOP (Object Oriented Programming). Lalu apa hubungannya OOP dengan class dan object? Kalau menurutku pribadi, Class dan object inilah yang berperan memberikan kesan khas OOP itu pada bahasa Java. Aku bingung mau menjelaskan darimana, tapi lanjut aja bacanya ya, akan coba kujelaskan sedikit-demi sedikit. :) Lantas, apa yang dimaksud dengan Class dan Object itu sendiri? Baiklah, aku mulai dulu dengan pengenalan tentang Object Oriented Programming. Nanti berangsur-angsur akan kujelaskan juga pengertian Class dan Object beserta cara penggunaannya dalam Java.

OOP atau Object Oriented Programming dalam Bahasa Indonesia berarti Pemrograman Berorientasi Obyek. Disebut demikian karena OOP menggunakan object sebagai element dasar dari program. Pengertian object ini sendiri mungkin akan lebih mudah jika kita menggunakan sedikit analogi. Coba kita keluar dulu dari dunia digital. Kita lihat saja dunia nyata di sekitar kita. Ada banyak sekali object (obyek), seperti meja, kursi, sepeda, mobil, kucing, manusia dan sebagainya. Setiap object ini pastinya memliki karakterisasi oleh sifat/attributnya, dan tingkah laku. Sebagai contoh seekor kucing punya attribut jenis kucing, warna bulu, panjang ekor, dsb. Seekor kucing juga punya tingkah laku seperti makan, minum, mengeong, tidur, dsb. Nah, object dalam bahasa Java juga mirip seperti itu. Attribut dalam bahasa Java dimodelkan sebagai variable sedangkan tingkah laku sebagai method. Lalu bagaimana dengan Class? Class ini bisa juga disebut dengan template yang berisikan sekumpulan variable dan method. Class nantinya digunakan untuk menciptakan object dalam program. Masih bingung kah? Ok, lanjutkan membaca! :)

Akan coba kujelaskan dengan contoh:

Misalkan ada suatu Class bernama kucing. Kucing ini memiliki attribut nama, warna, dan suara. Sedangkan tingkah lakunya adalah makan, tidur, dan mengeong. Jadi bisa kugambar dalam tabel seperti ini:


Coba perhatikan tabel di atas, value dari variable setiap object berbeda-beda. Namun semua object akan memiliki method yang sama seperti class yang ditunjuknya. Kalau melihat contoh di atas, nama, warna, dan suara dari Object Kucingku dan Kucingmu bisa saja berbeda, tapi kedua object memiliki method yang sama. Kedua kucing berbeda tapi sama-sama bisa makan, tidur, dan mengeong.

Sekarang kita balik ke dunia digital :). Sekarang saatnya kita implementasikan dalam program kita. Langsung ke Source aja yah...
public class Kucing{
/* attributes
* mendeklarasikan atribut (variable) yang dimiliki kucing
*/
String nama;
String warna;
String suara;

/* methods
* mendeklarasikan tingkah laku (method) yang dimiliki kucing
*/

public void makan(){
System.out.println("kucing bernama "+nama+" yang berwarna "+warna+" sedang makan");
}
public void tidur(){
System.out.println("kucing bernama "+nama+" yang berwarna "+warna+" sedang tidur");
}
public void mengeong(){
System.out.println("kucing bernama "+nama+" yang berwarna "+warna+" bersuara "+suara);
}

/* 
*memulai method main atau fungsi utama
*/
public static void main (String[] args) {
//membuat object kucingku dan kucingmu bertipe class Kucing
Kucing kucingku = new Kucing();
Kucing kucingmu = new Kucing();

//mengisikan value ke dalam attribut
kucingku.nama="mocin";
kucingku.warna="putih";
kucingku.suara="meoong";     

kucingmu.nama="karin";
kucingmu.warna="hitam";
kucingmu.suara="miauuw";

//memanggil method dari object
kucingku.makan();
kucingku.tidur();
kucingku.mengeong();

System.out.println();

kucingmu.makan();
kucingmu.tidur();
kucingmu.mengeong();
}
}

Jika di-compile dan di-run, kurang lebih hasilnya akan seperti ini:
kucing bernama mocin yang berwarna putih sedang makan
kucing bernama mocin yang berwarna putih sedang tidur
kucing bernama mocin yang berwarna putih bersuara meoong

kucing bernama karin yang berwarna hitam sedang makan
kucing bernama karin yang berwarna hitam sedang tidur
kucing bernama karin yang berwarna hitam bersuara miauuw

Penjelasan dari source di atas sudah kuselipkan melalui comment. Jadi silakan membaca dan mempelajarinya sendiri. :)

7 comment(s):

hafizh nurul irsyad said...

gk paham boz...
klo interface gmn ajarin bro..


HAFIZH

Unknown said...

interface tuh mirip kaya kelas, tp dalmnya tuh spenuhnya abstrak,, isinya cm konstanta sm method-method kosong (cm prototype dr method doank),, ntar implementasi dari method td dijabarkan di method pada kelas turunannya,, paham ga? q bngung jg neh jelasinnya,, :)

shandy said...

seandainya variabelname diganti agar tidak bingun akan banyaknya object....!!!
apakah rogram masih bisa jalan.....
contoh
jcomboBox1--->jcomboBoxtahun.

Unknown said...

@shandy: bisa kok,, asal tdk mnyalahi aturan penamaan variabel,, sprti pake spasi ato pake angka di awal nama,,

riniastria said...

klu misalnya ada pernyataan public class Ujian1 extends Ujian2, mksdnya apa ya?

my first tech said...

bang tolong dong jelasin apa gunaNYa sintaks public class dan aturan" laen dalam penulisan java soalnya rada binun ne abis pake c++ terus pake java

Anonymous said...

sangat informativ gan..
https://www.facebook.com/BingkaiJavaPrograming?ref=hl
hadir disini yuk, untuk belajar programing java bersama=sama dan dari dasarnya,

ditunggu ea,

Post a Comment

feel free to write your comment here.. :)