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.
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.
Kelas adalah sebuah tipe data abstrak yang merupakan
pemodelan dari objek yang berisi atribut(data) dan tingkah laku(method) yang
dimiliki oleh objek tersebut.
Sebuah
kelas menyerupai sebuah struktur yang merupakan tipe data sendiri, misalkan
tipe data titik yang terdiri dari koordinat x dan y. Bahasa Java telah
menggunakan sebuah kelas untuk menyatakan tipe data titik karena bahasa
pemrograman Java merupakan bahasa pemrograman berorientasi objek murni sehingga
tidak mengenal struktur tapi mengenal apa yang disebut dengan kelas.
Perbedaan
sebuah kelas dengan sebuah struktur adalah sebuah kelas dapat berdiri sendiri
dan dapat digunakan untuk berbagai keperluan kelas-kelas yang lain, sedangkan
sebuah struktur tidak dapat berdiri sendiri. Sebuah kelas lebih fleksibel untuk
digunakan oleh kelas lain tanpa harus membongkar kode program utama, sedangkan
jika digunakan struktur maka kode program harus dibongkar unuk disalin bagian
strukturnya ke kode program utama yang lain. Sebuah file dapat terdiri dari
berbagai kelas, namun biasanya pada bahasa pemrograman Java sebuah file hanya
terdiri dari satu kelas yang disimpan dengan nama kelas, misal file List.java berisi kelas List. Namun jika kelas
yang dibuat misalnya public class nama_kelas, maka kelas itu harus disimpan
dalam satu file hanya untuk satu kelas. Setelah dilakukan kompilasi maka pada
Java akan ada sebuah file ”.class” yang berisi bytecode dari setiap kelas. Jika
sebuah file terdiri dari dua kelas maka setelah dikompilasi akan dihasilkan dua
buah file ”.class” yang nantinya akan dibaca oleh interpreter Java saat program
dieksekusi.
Sebuah
kelas saat program dieksekusi dan perintah new dijalankan, maka akan dibuat
sebuah objek. Objek adalah elemen pada saat runtime yang akan diciptakan,
dimanipulasi dan dihancurkan saat eksekusi sehingga sebuah objek hanya ada saat
sebuah program dieksekusi, jika masih dalam bentuk kode, disebut sebagai kelas
jadi pada saat runtime (saat sebuah program dieksekusi), yang kita punya adalah
objek, di dalam teks program yang kita lihat hanyalah kelas.
Isi dari kelas ada tiga bagian yaitu:
1. Variabel/properti/atribut
Atribut
adalah karateristik yang dimiliki oleh objek. Dibagian itu kita dapat
mendeklarasikan atribut-atribut yang dibutuhkan kelas untuk membentuk objek. Sebagai
contoh perhatikan kode dibawah ini:
private
String nama;
2. Konstruktor
Konstruktor
adalah method yang berfungsi untuk menginisialisasi variabel-variabel instans
yang akan dimiliki oleh objek. Method konstruktor harus memiliki nama yang sama
dengan nama kelas. Konstruktor ini dipanggil pada saat proses instalasi kelas
menjadi objek. Kegunaan konstruktor:
·
Mengalokasikan
ruang bagi sebuah kelas dalam objekMemberikan nilai awal terhadap anggota data
suatu objek.
·
Membentuk
tugas-tugas umum lainya.
·
Perlu
diketahui:
Konstruktor
tidak mempunyai nilai balik(bahkan tanpa void)
Konstruktor
harus diletakkan pada bagian public. Sebagai contoh perhatikan kode dibawah
ini:
public
Mobil(){}
3. Method
Method merupakan
tingkahlaku yang dimiliki oleh objek. Method ini bisa berbentuk prosedur maupun
fungsi. Contoh penulisannya perhatikan kode dibawah ini:
public
void cetakInfo(){
System.out.println(“Nama Mobil : ” + getNama() );
}
Object
Pada
saat kita mendefinisikan suatu kelas, kita hanya membuat tipe data baru, bukan
membuat objek baru. Untuk membuat objek baru dari tipe kelas yang telah
didefinisikan, secara eksplisit kita perlu melakukan dua tahap.
1. Pertama, kita perlu mendeklarasikan variabel
yang digunakan sebagai referensi ke objek dari kelas bersangkutan.
2. Kedua, kita perlu menginstansiasi kelas dengan
menggunakan operator new dan memasukkan instance-nya ke dalam variabel
referensi yang baru saja dideklarasikan.
Berikut ini
ilustrasi dua tahap proses tersebut :
//
Mendeklarasikan variabel k bertipe Kotak
Kotak k;
// Melakukan
instansiasi dan memasukkan referensi ke variabel k
k = new
Kotak();
Baris pertama
(Tahap I) berguna untuk mendeklarasikan variabel k yang berperan sebagai
referensi ke objek dari tipe Kotak. Pada tahap ini, variabel k akan bernilai
null, yang berarti referensi tersebut belum menunjuk ke objek aktual manapun.
Segala bentuk usaha untuk menggunakan variabel k disaat seperti ini akan
menyebabkan kesalahan pada saat proses kompilasi program. Alasannya adalah
karene variable k masih bernilai null.
Selanjutnya
baris kedua (Tahap II) digunakan untuk mengalokasikan sebuah objek baru dan memasukkan
referensinya ke dalam variabel k.
Pada
prakteknya, dua tahap di atas biasanya ditulis dalam satu baris, seperti
berikut :
//
Mendeklarasikan variabel k bertipe Kotak dan
// Melakukan
instansiasi dan memasukkan referensi ke variabel k
Kotak k = new
Kotak();
Contoh Program
:
package
demoreferensi1;
class Kotak {
double panjang;
double lebar;
double tinggi;
}
public class
DemoReferensi1 {
public static
void main(String[] args) {
double volume1,
volume2;
Kotak k1, k2;
k1 = new
Kotak();
k2 = k1;
// Mengisikan
nilai ke dalam objek k1
k1.panjang = 4;
k1.lebar = 3;
k1.tinggi = 2;
// Menghitung isi/volume
dari objek k1
volume1 = k1.panjang
* k1.tinggi * k1.lebar;
// Menghitung
isi/volume dari objek k2
volume2 = k2.panjang
* k2.tinggi * k2.lebar;
// Menampilkan
nilai volume k1 dan k2 ke layar monitor
System.out.println("Volume
k1 = " + volume1);
System.out.println("Volume
k2 = " + volume2);
}
}
Tampak jelas
pada kode di atas bahwa kita hanya memasukkan nilai untuk objek k1, namun pada
saat kita memanggil nilai dari volume2, hasil yang diberikan adalah sama seperti
nilai yang dihasilkan oleh volume1. Hal ini disebabkan karena k1 dan k2
sebenarnya menunjuk ke objek yang sama.
Hasilnya :
Volume k1 =
24.0
Volume k2 =
24.0
Sebagai catatan
penting, meskipun keduanya menunjuk objek yang sama, akan tetapi tidak terdapat
hubungan antara
variabel k1 dan k2. Artinya, kita bisa saja melepas salah satu variabel
tersebut untuk menunjuk ke objek lain, tanpa berpengaruh terhadap variabel
lainnya.