02.07.2013 Views

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

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!