1 KONSTRUKTOR, OVERLOADING dan PEWARISAN KONSTRUKTOR Metode konstruktor adalah metode yang dapat digunakan untuk memberikan nilai awal saat objek diciptakan. Metode ini akan dipanggil secara otomatis oleh Java ketika new dipakai untuk menciptakan instan kelas. Konstruktor mempunyai sifat : Namanya sama dengan kelas Tidak memiliki nilai balik Tidak boleh ada kata kunci void Contoh : //nama berkas : konstruktor.java class mobil { private String warna; variabel instan private int tahun; public mobil(String warna, int tahun) { konstruktor this.warna = warna; this.tahun = tahun; } metode public void info() { System.out.println("Warna mobil saya : "+ this.warna); System.out.println("Dibuat tahun : "+ this.tahun); } } public class konstruktor { public static void main (String[] args) { mobil mobilku = new mobil("Silver",2008); mobilku.info(); } } Hasil : Warna mobil saya : Silver Dibuat tahun : 2008 Pada program di atas tampak bahwa nama konstruktor sama dengan nama kelas. Dalam hal ini konstruktor memiliki dua parameter, yaitu warna dan tahun. Selain itu penciptaan objek tidak lagi dilakukan dengan menggunakan bentuk : mobil = new mobil( ); Pemrograman JAVA 2 OVERLOADING Overloading terhadap konstruktor merupakan suatu mekanisme pembuatan konstruktor yang memiliki bentuk lebih dari satu. Dalam hal ini, pembeda antara satu konstruktor dengan konstruktor yang lain berupa jumlah parameter atau tipe parameter. Contoh : //nama berkas : konstruktor1.java class mobil { private String warna; private int tahun; public mobil(String warna, int tahun) { this.warna = warna; this.tahun = tahun; } public mobil() { } konstruktor-1 konstruktor-2 public void info() { System.out.println("Warna mobil saya : "+ this.warna); System.out.println("Dibuat tahun : "+ this.tahun); } } public class konstruktor1 { public static void main (String[] args) { mobil mobilku = new mobil("Silver",2008); mobilku.info(); mobil mobilmu = new mobil(); mobilmu.info(); mobil mobilnya = new mobil("Silver",2008); mobilnya.info(); } } Hasil : Warna mobil saya : Silver Dibuat tahun : 2008 Warna mobil saya : null Dibuat tahun : 0 Warna mobil saya : Silver Dibuat tahun : 2008 Tampak bahwa pemanggilan dengan mobil mobilmu = new mobil( ); diperkenankan pada program di atas. Mengingat konstruktor yang tidak melibatkan parameter tidak melibatkan perintah apapun, maka warna dan tahun diisi dengan nilai default yaitu null dan 0. Pemrograman JAVA 3 Overloading juga dapat dikenali pada metode non konstruktor. Contoh : //nama berkas : overloading.java class matematika { static public double kuadrat(double nilai) { return nilai*nilai; } static public int kuadrat(int nilai) { return nilai*nilai; } static public double kuadrat(String nilai) { double bilangan = Double.valueOf(nilai).doubleValue(); return bilangan*bilangan; } } public class overloading { public static void main (String[] args) { System.out.println("Kuadrat dari 25.0 adalah : "+ matematika.kuadrat(25.0)); System.out.println("Kuadrat dari 25 adalah : "+ matematika.kuadrat(25)); System.out.println("Kuadrat dari \"25\" adalah : "+ matematika.kuadrat("25")); } } Hasil : Kuadrat dari 25.0 adalah : 625.0 Kuadrat dari 25 adalah : 625 Kuadrat dari "25" adalah : 625.0 Metode kuadrat mempunyai tiga buah bentuk yaitu double, int dan String. Program akan menghasilkan keluaran sesuai dengan jenis parameter yang diinput pada program utama. VARIABEL KELAS Variabel kelas adalah variabel yang berlaku tidak terbatas hanya pada objek tetapi pada seluruh objek. Variabel ini didefinisikan dengan menggunakan kata kunci static. Contoh : //nama berkas : variabelkelas.java class bilangan { static int pencacah = 0; private int nilai; public bilangan(int nilai) { this.nilai=nilai; Pemrograman JAVA 4 this.pencacah++; } public void info() { System.out.println("Data ke- "+ this.pencacah); System.out.println("Bilangan yang Anda ketik : "+ this.nilai); } } public class variabelkelas { public static void main (String[] args) { bilangan satu = new bilangan(44); satu.info(); bilangan dua = new bilangan(55); dua.info(); bilangan tiga = new bilangan(66); tiga.info(); } } Hasil : Data ke- 1 Bilangan yang Anda ketik : 44 Data ke- 2 Bilangan yang Anda ketik : 55 Data ke- 3 Bilangan yang Anda ketik : 66 Terlihat bahwa nilai pencacah bertambah sebesar satu setiap kali objek berkelas bilangan dibentuk. PEWARISAN Pewarisan merupakan konsep dalam pemrograman berorientasi objek yang memungkinkan untuk membuat suatu kelas dengan didasarkan pada kelas yang sudah ada sehingga mewarisi semua metode dan variabelnya. Pada gambar, kelasA disebut kelas dasar atau superkelas sedangkan kelasB disebut kelas turunan atau kelas anak. Semua metode dan variabel instan yang terdapat pada kelas dasar diturunkan ke kelas turunan. Namun kelas turunan dapat menambahkan metode baru atau variabel instan baru sendiri. Pemrograman JAVA 5 Contoh : //nama berkas : alpha.java class alpha { digunakan untuk memperoleh private int a=4; nama kelas public void info() { System.out.println("Nilai a pada program alpha = "+a); System.out.println("Dipanggil oleh program : "+this.getClass().getName()); } } Untuk membuat kelas turunan, secara prinsip sibuat dengan menggunakan bentuk : class KelasTurunan extends KelasDasar() { pernyataan; } Contoh : //nama berkas : bravo.java class bravo extends alpha { public static void main(String[] args) { bravo cetak = new bravo(); cetak.info(); int a = 44; System.out.println("Nilai a pada program bravo = "+a); } } Hasil : Nilai a pada program alpha = 4 Dipanggil oleh program : bravo Nilai a pada program bravo = 44 PENENTU AKSES PROTECTED Penentu akses ini berguna untuk mengatur agar suatu variabel instan ataupun metode yang terdapat pada sebuah kelas dapat diakses pada kelas itu sendiri dan pada subkelas. Contoh : //nama berkas : charlie.java class charlie { private int a=4; protected int b=44; public void info() { System.out.println("Nilai a = "+a); System.out.println("Nilai b = "+b); System.out.println("Dipanggil oleh program : "+this.getClass().getName()); } } Pemrograman JAVA 6 Setelah itu buat program berikut sebagai turunan dari program charlie.java : //nama berkas : delta.java class delta extends charlie { supaya program benar, private int c=5; baris ini harus dihapus public void info() { System.out.println("Nilai a = "+a); System.out.println("Nilai b = "+b); System.out.println("Nilai c = "+c); System.out.println("Dipanggil oleh program : "+this.getClass().getName()); } } Hasil : delta.java:7: a has private access in charlie System.out.println("Nilai a = "+a); 1 error Tampak bahwa pesan kesalahan yang menyatakan variabel instan a tidak dikenal karena a adalah variabel private sedangkan b dengan variabvel protected dikenal pada kelas delta. Untuk memanggil kelas charlie dan delta, buat program berikut ini : //nama berkas : panggil.java class panggil { public static void main(String[] args) { charlie obyek1 = new charlie(); obyek1.info(); delta obyek2 = new delta(); obyek2.info(); } } Hasil : Nilai a = 4 Nilai b = 44 Dipanggil oleh program : charlie Nilai b = 44 Nilai c = 5 Dipanggil oleh program : delta PENENTU ABSTRACT Java menyediakan suatu mekanisme yang memungkinkan suatu metode ditentukan dari dalam kelas tetapi tidak disertai dengan definisinya. Metode ini dikenal dengan nama metode abstrak, sedangkan kelasnya dinamakan kelas abstrak. Contoh : //nama berkas : kendaraan.java public abstract class kendaraan { protected String nama; public abstract void jalankan(); } Pemrograman JAVA 7 Pada program di atas tampak bahwa metode abstrak jalankan() tidak mempunyai tubuh program karena definisi metode tersebut harus dilakukan pada subkelas. Contoh : //nama berkas : tesjalankan.java class sepeda extends kendaraan { public sepeda(String nama) { this.nama=nama; } public void jalankan() { System.out.println("Duduklah diatas sadel "+this.nama+" dan kayuhlah..."); } } class mobil extends kendaraan { public mobil (String nama) { this.nama=nama; } public void jalankan() { System.out.println("Duduklah di depan stir "+this.nama+" dan hidupkan mesin..."); } } public class tesjalankan { public static void main(String [] args) { sepeda sepedaku = new sepeda("Sepeda BMX"); sepedaku.jalankan(); mobil mobilku = new mobil("Sedan"); mobilku.jalankan(); } } Hasil : Duduklah diatas sadel Sepeda BMX dan kayuhlah... Duduklah di depan stir Sedan dan hidupkan mesin... LATIHAN Buat program dengan menggunakan teknik konstruktor untuk mencari BERAT BADAN IDEAL dengan rumus BBI = TINGGI – (110). BENTUK METODE : hitung(nama, tinggi) Pemrograman JAVA