Praktikum Inheritace PERCOBAAN 1 Tujuan: 1. Memahami konsep dasar inheritance 2. Bisa membuat suatu subklas dari suatu superklas tertentu 3. Bisa mengimplementasikan konsep single dan multilevel inheritance 4. Bisa membuat objek dari suatu subklas dan melakukan pengkasesan terhadap atribut dan method (baik yang dimiliki sendiri atau harus turunan dari superklas nya). Prosedur Percobaan: 1. Buatlah klas sesuai dengan diagram klas di bawah ini:
Keterangan: a) Method tampilDataPokokPegawai() menampilkan data noIndukPegawai, nama dan gaji b) Method tampilDataProgrammer, menampilkan juga data noIndukPegawai, nama, gaji, disertai dengan bonus dan gaji total c) Method tampilDataManajer, menampilkan juga data noIndukPegawai, nama, gaji, disertai dengan tunjanganJabatan dan gaji total d) Method tampilDataPemegangSaham, menampilkan juga data noIndukPegawai, nama, gaji, disertai dengan tunjanganJabatan, deviden, jumSaham dan gaji total e) Catatan: missal pada method tampilDataProgrammer() yang ada di klas Programmer, untuk menampilkan data noIndukPegawai, nama dan gaji, tidak dilakukan dengan menulis manual satu persatu di dalam method tampilDataProgrammer(), tapi dilakukan
dengan memanggil method tampilDataPokokPegawai() yang diwarisi dari klas Pegawai, dimana pemanggilan tsb dilakukan di dalam method tampilDataProgrammer(). Hal serupa juga dilakukan di dalam method tampilDataManajer() dan tampilDataPemegangSaham(). 2. Tampilan Program sebagai berikut: a. Klas Pegawai
b. Klas Programmer
c. Klas Manajer
d. Klas PemegangSaham
3. Buat Main klas
Tampilannya seperti berikut ini:
4. Jawablah pertanyaan di bawah ini: a. Perhatikan baris program ke 20 klas PemegangSaham. Terlihat di baris tersebut atribut gaji bisa diakses langsung. Kenapa hal ini bisa terjadi? Dan Bagaimana bisa klas PemegangSaham memiliki atribut gaji tersebut? ………………………………………………………………………………………………… ………………………………………………………………………………………………… b. Perhatikan lagi baris program 20 klas PemegangSaham. Terlihat super.getTunjanganJabatan(). Untuk apa hal ini dilakukan? ………………………………………………………………………………………………… ………………………………………………………………………………………………… c. Perhatikan lagi baris program 20 klas PemegangSaham, bisakah sintaks super.getTunjanganJabatan() diganti dengan getTunjanganJabatan() saja?Jelaskan jawaban Anda! ………………………………………………………………………………………………… ………………………………………………………………………………………………… d. Perhatikan kode program klas Programmer. Atribut apa saja yang dimiliki oleh klas tersebut? Dan sebutkan mana diantara atribut tersebut yang diwarisi dari klas Pegawai? ………………………………………………………………………………………………… ………………………………………………………………………………………………… e. Perhatikan klas Manajer pada baris ke 23. Apakah super.tampilDataPokokPegawai() bisa diganti dengan tampilDataPokokPegawai() saja? Jelaskan jawaban Anda! ………………………………………………………………………………………………… ………………………………………………………………………………………………… f. Perhaikan klas Main. Terlihat proses instansiasi objek ps dari klas PemegangSaham. Coba lanjutkan dengan membuat objek lain dari klas Programmer dan Manajer. ………………………………………………………………………………………………… ………………………………………………………………………………………………… 5. Ambil kesimpulan dari percobaan dan jawaban pertanyaan di atas. ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… …………………………………………………………………………………………………
PERCOBAAN 2 Tujuan: 1. Memahami proses instansiasi pada subklas 2. Memahami urutan jalannya konstruktor pada saat instansiasi objek dari suatu subklas 3. Memahami penggunaan super(). Prosedur Percobaan: 1. Dari program yang telah Anda buat pada Percobaan 1 sebelumnya, akan dilakukan beberapa modifikasi. 2. Lihat program klas Manajer. Tambahkan konstruktor default dalam klas tersebut.
3. Lihat klas Pegawai. Tambahkan konstruktor default dan berparameter.
4. Coba jalankan kembali klas Main yang di dalamnya tardapat proses instansiasi objek dari klas PemegangSaham.
Coba perhatikan hasil keluaran program.
5. Kemudian pada konstruktor default klas Manajer, ubah seperti di bawah ini
Kemudian jalankan klas Main. Dan perhatikan hasil keluaran.
6. Kemudian ubah isi konstruktor default klas Manajer, seperti di bawah ini:
Kemudian jalankan klas Main. Dan perhatikan hasil keluaran
7. Kemudian coba ubah isi konstruktor default klas Manajer sbb:
Perhatikan terdapat error. 8. Jawab pertanyaan di bawah ini: a. Perhatikan klas PemegangSaham, apakah klas tersebut memiliki konstruktor? Konstruktor jenis apa yang dimilikinya? ………………………………………………………………………………………………… ………………………………………………………………………………………………… b. Perhatikan hasil percobaan no 4. Jelaskan kenapa bisa tampil
c.
d.
e.
f.
pada saat instansiasi objek ps dari klas PemegangSaham? Jelaskan urutan proses jalannya konstruktor! ………………………………………………………………………………………………… ………………………………………………………………………………………………… Perhatikan hasil percobaan 5. Adakah perbedaan dengan hasil percobaan 4. Kenapa bisa demikian? ………………………………………………………………………………………………… ………………………………………………………………………………………………… Perhatikan hasil keluaran percobaan 6. Adakah perbedaan dengan hasil keluaran percobaan 4 dan 5? Dimanakah letak perbedaannya? Dan kenapa bisa terjadi demikian? ………………………………………………………………………………………………… ………………………………………………………………………………………………… Kenapa pada langkah percobaan 7 terdapat error? ……………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… Ambil kesimpulan berdasar hasil percobaan dan jawaban dari perntayaan di atas. ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… ………………………………………………………………………………………………… …………………………………………………………………………………………………