rekayasa perangkat lunak jilid 2 smk - Bursa Open Source
rekayasa perangkat lunak jilid 2 smk - Bursa Open Source
rekayasa perangkat lunak jilid 2 smk - Bursa Open Source
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
memanggil method hitungLuas(), getTinggi() dan<br />
hitung volume()<br />
System.out.println("Luas salah satu sisi = " +<br />
kotak.hitungLuas());<br />
System.out.println("Tinggi kotak = " +<br />
kotak.getTinggi());<br />
System.out.println("Volume kotak = " +<br />
kotak.hitungVolume());<br />
}<br />
}<br />
Kelas Bangun di atas adalah superclass sedangkan Box adalah subclass.<br />
Pada default constructor Bangun, nilai panjang dan lebar diinisialisasi dengan<br />
nilai 0. Perhatikan didepan deklarasi variabel panjang dan lebar pada kelas<br />
Bangun dicantumkan kata kunci protected yang berarti kelas turunan dari<br />
Bangun tetap dapat mengakses nilai dari variabel tersebut namun yang tidak<br />
memiliki hubungan turunan tidak dapat mengaksesnya.<br />
Pada Box yang merupakan subclass ditambahkan satu variabel yaitu tinggi<br />
dengan tambahan kata kunci private diikuti tipe datanya. Private menunjukkan<br />
bahwa variabel tinggi hanya bisa diakses didalam kelas Box. Lawan dari private<br />
adalah public, yang berarti dapat diakses oleh siapapun dan dari manapun. Pada<br />
kelas Box juga kita tambahkan satu method yaitu hitungVolume(). Pada contoh<br />
8.29 di atas obyek yang kita buat yaitu kotak, merupakan hasil instansiasi dari<br />
kelas Box. Oleh karena kelas Box adalah turunan dari kelas Bangun, maka kita<br />
dapat mengakses method hitungLuas() yang merupakan warisan dari kelas<br />
Bangun. Tentu saja kita bisa mengakses method getTinggi() dan<br />
hitungVolume() yang merupakan method pada kelas Box. Kalau kita eksekusi<br />
program di atas, maka akan tampak seperti berikut.<br />
Gambar 8.15. Hasil eksekusi program kelas Bangun dan Box.<br />
8.8.3. Penerapan Overriding dan Overloading<br />
Kadang-kadang, ketika kita membuat method di dalam subclass, kita ingin<br />
membuat method dengan nama yang sama dengan method pada superclass<br />
namun dengan penerapan yang berbeda. Sebagai contoh pada kelas Bangun<br />
pada contoh 8.29, tersedia method hitungLuas(). Misalnya kita ingin membuat<br />
subclass Segitiga yang merupakan turunan dari kelas Bangun. Kemudian kita<br />
ingin membuat method hitungLuas() yang penerapannya tidak lagi luas =<br />
panjang x lebar tetapi dengan penerapan luas = 0.5 x alas x tinggi. Pada kondisi<br />
ini method hitungLuas() dari superclass akan tertutupi oleh method pada<br />
204 Rekayasa Perangkat Lunak