Rabu, 09 Mei 2012

Class dan Objek Dalam JAVA

Pengertian dari Class, Object, dan Method
Class merupakan suatu blueprint atau cetakan untuk menciptakan suatu instant
dari object. class juga merupakan grup suatu object dengan kemiripan
attributes/properties, behaviour dan relasi ke object lain.
Contoh : Class Person, Vehicle, Tree, Fruit dan lain-lain.

Object adalah instance dari class. Jika class secara umum merepresentasikan
(template) sebuah object, sebuah instance adalah representasi nyata dari class itu
sendiri.
Contoh : Dari class Fruit kita dapat membuat object Mangga, Pisang, Apel dan lainlain.

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


Attributes merupakan nilai data yang terdapat pada suatu object yang berasal dari
class. Attributes merepresentasikan karakteristik dari suatu object.
Contoh : pada Class Fruit terdapat attribute : warna, berat pada object mangga :
warna berisi kuning dan berat misalkan 0.25 kg pada object apel : warna berisi
merah dan berat misalkan 0.30 kg

Method merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh
suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object.
Contoh : pada object mangga : terdapat method ambilRasa , kupasKulit dan lain-lain.

METHOD
Metode menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta
berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.
Metode memiliki 4 (empat) bagian dasar :
1. Nama metode
2. Tipe Objek atau tipe primitive yang dikembalikan metode.
3. Daftar parameter.
4. Badan atau isi metode.
Tiga bagian pertama mengindikasikan informasi penting tentang metode itu sendiri.
Dengan kata lain, nama metode tersebut=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.
Untuk menjalankan program yang memiliki sifat polymorphism tersebut, diperlukan
suatu kemampuan overloading, yaitu suatu kemampuan untuk menentukan fungsi
yang mana yang harus digunakan atau dijalankan jika terdapat nama fungsi yang sama.
Polimorfisme bisa diartikan seperti kemampuan suatu variable untuk mengubah
perangai sesuai dengan objek hasil instansiasi yang digunakan. Polimorfisme
membiarkan lebih dari 1 objek dari sub class sub class dan diperlakukan sebagai
objek dari super class tunggal


Instansiasi objek Class 
Objek adalah instansiasi atau perwujudan dari Class. Sebuah class dapat memiliki banyak objek.
Untuk dapat membuat sebuah objek, kita perlu melakukan instansiasi.
  cara melakukan instansiasi:


NameOfClass nameOfObject = new NameOfClass([params]);

contoh, untuk membuat objek aku dari class Mahasiswa:
Mahasiswa aku = new Mahasiswa ();



Untuk mempermudah pemahaman kita, mari kita lihat contoh berikut:



Class  Mahasiswa memiliki attribut: nim, nama dan ipk
sedangkan contoh objek dari class manusia adalah aku, kamu yang masing masing mempunyai nilai atribut yang menjadi identitas mahasiswa tersebut.

Jika sudah mengerti, berikan masing-masing 3 contoh attribut untuk class berikut:
a.    Mobil
b.    Buku
c.    Laptop
Selain memiliki attribut, class juga memiliki method. Method  adalah  operasi yang dapat dilakukan oleh objek. Dalam bahasa pemrograman lain,  method dikenal dengan function atau procedure. contoh method yang dapat dilakukan oleh objek mahasiswa adalah registrasi, belajar.
Seperti konsep pemrograman yang lain, fingsi yang pertama kali dipanggil adalah fungsi main. Dalam Java, konsep tersebut juga berlaku. Sebuah method hanya akan berjalan ketika method tersebut dipanggil.

cara memanggil method  :
nameOfObject.nameOfMethod([params]);

contoh, untuk memanggil objek registrasi:
aku.registrasi();


Sekarang mari kita coba membuat penerapan dari teori diatas:









program tersebut merupakan contoh penerapan class dan method.
untuk menjalankan program tersebut, buatlah sebuah class lagi dengan nama MahasiswaTest  yang isinya sebagai berikut:


pada program diatas, kita belum dapat memasukkan nilai dari setiap attribut yang kita gunakan, bukan?
Saat ini kita akan mencoba mengubah nilai attribut dari objek yang kita buat.
coba ubah program sebagai berikut!


jalankan kembali program.
kita dapat mengisi nilai atribut dengan cara seperti di atas
kemudian, coba  ubah kembali program diatas menjadi sebagai berikut:

jalankan kembali program.
kita dapat mengakses nilai atribut dengan cara seperti di atas

 Constructor
Constructor adalah sebuah method yang dipanggil ketika kita melakukan instansiasi suatu objek.  Constructor biasanya berfungsi untuk memberikan nilai awal pada attribut ketika objek tersebut dibuat.


beberapa hal mengenai constructor:
1.    mempunyai nama method yang sama dengan nama class.
2.    tidak mempunyai return value.
3.    tidak bisa dipanggil seperti pemanggilan method biasa. Constructor hanya bisa dipanggil menggunakan keyword new.


a.    Default constructor
Coba lihat program yang kalian buat tadi!
Di sana tidak ada method yang sama dengan nama class bukan? Lalu, apakah kesimpulannya, pada saat instansiasi objek, tidak ada constructor yang dipanggil!
Pada program tersebut, tetap ada constructor yang dipanggil pada waktu instansiasi objek. Tetapi, karena kita tidak mendefinisikan 1 pun constructor, maka java membuat default constructor.
Default constructor tidak menggunakan parameter. Jadi, jika methodnya ditulis, kira-kira seperti ini:


b.    Create your own Constructor
kita akan mencoba membuat constructor kita sendiri.
silakan ubah Mahasiswa.java menjadi seperti ini (accessor, mutator dan method registrasi jangan dihapus):


dan ubah Mahasiswa.java menjadi:


ketika kita belum mendefinisikan constructor, jika Mahasiswa Test.java dijalankan, hasilnya adalah:


Sekarang, compile dan run program kalian.  Apakah kalian menemukan perbedaan dan memahami kegunaan constructor?
Untuk lebih memahami penggunaan constructor,ubah kembali constructor pada Mahasiswa.java menjadi :
 

kemudian compile Mahasiswa.java. compile dan run  juga MahasiswaTest.java!

ternyata ketika kita melakukan compile pada MahasiswaTest.java, terdapat 2 error


mengapa error tersebut muncul?
ingat!! tadi kita mendefinisikan constructor dengan 2 parameter. yaitu String nama dan String nim. tetapi pada saat instansiasi objek aku dan kamu, kita tidak menginputkan parameter apapun?
Lalu, bagaimana dengan default constructor yang tidak mempunyai parameter itu??  Sekali lagi, default constructor  hanya akan tercipta ketika kita tidak membuat satupun constructor. Dengan kata lain, jika kita membuat sebuah constructor, default constructor tidak akan tercipta.
untuk itu, mari ubah MahasiswaTest.java menjadi:
 
compile MahasiswaTest.java, kemudian run!

c.    Overloading constructor
Perlu kita ketahui, kita dapat membuat lebih dari satu constructor  dalam satu class. Tetapi, kita tidak bisa membuat lebih dari satu constructor yang benar-benar sama. Harus ada perbedaan yang menjadi identitas constructor. Perbedaan tersebut dapat terletak pada  jumlah parameter, atau urutan tipe data pada parameter.
tambahkan program berikut pada Mahasiswa.java sehingga kita memiliki 4 constructor:
 
compile program.
ubah MahasiswaTest.java menjadi:


compile , kemudian run program.

Pada saat dilakukan instansiasi atas objek aku, kamu, dia dan saya, terdapat perbedaan. apa yang menjadi perbedaan? Bagaimana program dapat mengenali constructor mana yang dipakai pada class Mahasiswa?
sekarang, tambahkan sebuah constructor pada Mahasiswa.java:
 
compile program.
Overloading dapat dilakukan pada sebuah class dengan pembeda berupa jumlah tipe data dan urutan tipe data. Dua buah method dengan nama variabel yang berbeda tidak membedakan method.





 


7 komentar: