Di artikel Mendefinisikan Kelas Java, Anda dapat mempelajari cara mendefinisikan sebuah kelas di Java, misalnya kelas PersegiPanjang. Anda baru bisa menggunakan sebuah kelas di dalam program Java bila obyek (object) dari kelas tersebut telah dibuat atau dikonstruksi. Sebagai contoh, untuk mengkonstruksi atau membuat obyek kelas PersegiPanjang, Anda dapat menggunakan salah satu konstruktor dari kelas tersebut, didahului dengan kata kunci (keyword) new.
Berikut ini adalah sintaksis untuk mengkonstrusi obyek sebuah kelas Java:
new nama-kelas(parameter);
Dua pernyataan di bawah ini adalah sintaksis untuk mengkonstruksi atau membuat obyek dari kelas PersegiPanjang menggunakan konstruktor berbeda:
new PersegiPanjang(); new PersegiPanjang(5.5, 3.5);
Baris pertama adalah pernyataan untuk membuat obyek menggunakan kontruktor pertama dengan nilai data filed panjang 1.0 dan lebar 1.0. Baris kedua adalah pernyataan untuk membuat obyek menggunakan kontruktor kedua dengan nilai data field panjang 5.5 dan lebar 3.5.
Di Java, sebuah kelas normalnya menyediakan konstruktor tanpa argumen. Baris pertama adalah contoh konstruktor tanpa argumen. Konstruktor semacam ini sering disebut dengan no-argument constructor. Anda juga dimungkinkan untuk mendefinisikan sebuah kelas tanpa konstruktor sama sekali.
Di kasus mendefinisikan kelas tanpa konstruktor, no-argument constructor dengan blok kosong (empty body) secara implisit dideklarasikan di dalam kelas. Konstruktor seperti ini disebut dengan default constructor dan disediakan secara otomatis bila tidak ada satupun konstruktor yang secara eksplisit dideklarasikan di dalam kelas.
2. Variabel Acuan ke Obyek.
Sebuah kelas adalah definisi yang digunakan untuk mendeklarasikan dan membuat obyek dari kelas. Kelas adalah cetak biru atau blue print untuk obyek yang dibuat. Anda dapat membuat sebanyak mungkin obyek (instance of class) dari sebuah kelas Java.
Proses untuk membuat obyek dari sebuah kelas disebut dengan instantiation. Anda dapat mengakses data field dan metoda melalui obyek yang telah dibuat dengan mengunakan variabel yang mengacu ke obyek tersebut (object reference variable atau reference variable). Berikut ini adalah sintaksis untuk mendeklarasikan variabel yang mengacu ke obyek.
nama-kelas variable-acuan;
Sebuah kelas mendefinisikan sebuah tipe yang disebut dengan tipe acuan (reference type). Variabel yang mempunyai tipe kelas dapat mengacu ke obyek yang dibuat dari kelas tersebut. Anda dapat membuat variabel bangunDatar1 dengan tipe kelas PersegiPanjang agar variabel tersebut dapat mengacu ke obyek yang dibuat dari kelas PersegiPanjang dengan pernyataan sebagai berikut:
PersegiPanjang bagunDatar1;
Variabel bangunDatar1 kini mengacu ke obyek yang telah dibuat dari kelas PersegiPanjang. Anda juga dapat mengkombinasikan sekaligus deklarasi sebuah variabel yang mengacu ke obyek kelas, membuat obyek dan sekaligus memberi variabel tersebut acuan ke obyek dengan sintaksis sebagai berikut:
nama-kelas variable-acuan = new nama-kelas(parameter);
contoh,
PersegiPanjang bangunDatar1 = new PersegiPanjang();
Pernyataan di atas mendeklarasikan variabel bangunDatar1 yang mengacu ke obyek dari kelas PersegiPanjang, membuat obyek dari kelas PersegiPanjang menggunakan konstruktor pertama (konstruktor tanpa argumen) dan sekaligus memberi variabel bangunDatar1 acuan ke obyek dari kelas PersegiPanjang.
Anda juga dapat membuat obyek kelas PersegiPanjang menggunakan konstruktor kedua. Berikut ini adalah pernyataan untuk mendeklarasikan variabel acuan bangunDatar2, membuat obyek dari kelas PersegiPanjang menggunakan konstruktor kedua dan sekaligus memberi variabel bangunDatar2 acuan ke obyek kelas:
PersegiPanjang bangunDatar2 = new PersegiPanjang(4.5, 8.3);
Yang perlu diperhatikan ketika mengkonstruksi atau membuat obyek dari kelas Java adalah bahwa semua obyek dikonstruksi atau dibuat dengan didahului oleh kata kunci new
.
3. Mengakses data dan metoda melalui variabel acuan.
Obyek terlebih dahulu harus dikonstruksi atau dibuat sebelum data dan metoda dari obyek tersebut dapat diakses. Berikut ini adalah sintaksis untuk mengakses data di obyek dari kelas PersegiPanjang.
variable-acuan.data;
contoh,
// Mengacu ke variabel panjang di obyek PersegiPanjang bangunDatar1.panjang; // Mengacu ke variabel lebar di obyek PersegiPanjang bangunDatar1.lebar;
untuk mengakses metoda di obyek kelas PersegiPanjang, Anda dapat menggunakan sintak sebagai berikut:
variable-acuan.nama-metoda();
contoh,
// Memanggil metoda mencariKelilingPP di obyek PersegiPanjang bangunDatar1.mencariKelilingPP; // Memanggil metoda mencariLuasPP di obyek PersegiPanjang bangunDatar1.mencariKelilingPP;
Di Java, Data field seperti panjang dan lebar juga sering disebut dengan instance variable karena bergantung pada masing-masing obyek yang dibuat. Sedangkan metoda seperti mencariKelilingPP dan mencariLuasPP juga sering disebut dengan instance method karena hanya dapat diminta atau dipanggil melalui masing-masing obyek.
Berikut ini adalah contoh program Java sederhana membuat obyek dari kelas PersegiPanjang dengan menggunakan konstruktor pertama dan konstruktor kedua. Data filed panjang dan lebar dari obyek yang dibuat dengan konstruktor pertama kemudian dimodifikasi.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 | // Nama field : MengujiPersegiPanjang.java // Melakukan pengujian kelas persegiPanjang // Mengimpor kelas import javax.swing.JOptionPane; import javax.swing.JTextArea; import java.text.DecimalFormat; // Deklarasi kelas berisi metoda main public class MengujiPersegiPanjang { // metoda main public static void main(String[] args) { String tampilan; DecimalFormat duaAngka = new DecimalFormat("0.00"); // Membuat objek PersegiPanjang dengan konstruktor pertama PersegiPanjang bangunDatar1 = new PersegiPanjang(); tampilan = "Menggunakan Kelas PersegiPanjang\n\n" + "Panjang = " + duaAngka.format(bangunDatar1.panjang) + ", Lebar = " + duaAngka.format(bangunDatar1.lebar) + "\nKeliling = " + duaAngka.format(bangunDatar1.mencariKelilingPP()) + "\nLuas = " + duaAngka.format(bangunDatar1.mencariLuasPP()); // Membuat objek PersegiPanjang dengan konstruktor ketiga PersegiPanjang bangunDatar3 = new PersegiPanjang(5.5, 7.5); tampilan += "\n\nPanjang = " + duaAngka.format(bangunDatar3.panjang) + ", Lebar = " + duaAngka.format(bangunDatar3.lebar) + "\nKeliling = " + duaAngka.format(bangunDatar3.mencariKelilingPP()) + "\nLuas = " + duaAngka.format(bangunDatar3.mencariLuasPP()); // Memodifikasi panjang dan lebar bangunDatar1.panjang = 2.5; bangunDatar1.lebar = 4.5; tampilan += "\n\nPanjang = " + duaAngka.format(bangunDatar1.panjang) + ", Lebar = " + duaAngka.format(bangunDatar1.lebar) + "\nKeliling = " + duaAngka.format(bangunDatar1.mencariKelilingPP()) + "\nLuas = " + duaAngka.format(bangunDatar1.mencariLuasPP()); // Menampilkan hasil JTextArea areaTampilan = new JTextArea(); areaTampilan.setText(tampilan); JOptionPane.showMessageDialog(null, areaTampilan, "Bangun Datar", JOptionPane.INFORMATION_MESSAGE); // Mengakhiri aplikasi System.exit(0); } // Akhir blok metoda main } // Akhir blok kelas MengujiPersegiPanjang // Mendefinisikan kelas PersegiPanjang class PersegiPanjang { // Data field PersegiPanjang double panjang = 1.0; double lebar = 1.0; // Konstruktor pertama PersegiPanjang() { } // Konstruktor kedua PersegiPanjang(double x) { panjang = x; } // Konstruktor kedua PersegiPanjang(double x, double y) { panjang = x; lebar = y; } // Metoda mencari keliling double mencariKelilingPP() { return 2 * (panjang + lebar); } // Metoda memcari double mencariLuasPP() { return panjang * lebar; } } |
Kode program di atas mempunyai dua kelas yaitu kelas MengujiPersegiPanjang yang di dalamnya berisi metoda main di baris nomor 10 – 51 dan kelas PersegiPanjang di baris nomor 54 – 83. Kelas MengujiPersegiPanjang berisi metoda main untuk menguji kelas PersegiPanjang.
Java runtime system akan meminta metoda main setiap kali program atau aplikasi Java dijalankan. Metoda main di kelas MengujiPersegiPanjang akan membuat dua obyek dari kelas PersegiPanjang menggunakan konstruktor pertama dan konstruktor kedua.
Baca artikel Menggunakan Kelas String Di Java
Di baris nomor 19, konstruktor pertama digunakan untuk membuat obyek PersegiPanjang dengan nilai data field pajang 1.0 dan lebar 1.0 dan memberi variabel bangunDatar1 acuan ke obyek tersebut. Di baris nomor 27, konstruktor kedua digunakan untuk membuat obyek PersegiPanjang dengan nilai data field panjang 7.5 dan lebar 5.5 dan memberi variabel bangunDatar2 acuan ke obyek tersebut.
Di baris nomor 34 dan 35, nilai data di obyek pertama yang diacu variabel bangunDatar1 kemudian dimodifikasi dengan mengganti nilai data field panjang menjadi 4,5 dan lebar menjadi 2.5. Setelah data field yang ada di obyek pertama dimodifikasi, kemudian dihitung kembali keliling dan luas obyek PersegiPanjang pertama dengan memanggil metoda mencariKelilingPP dan mencariLuasPP.