Anda di halaman 1dari 5

Praktikum 8

Abstract Class, Interface

MODUL PRAKTIKUM
PEMROGRAMAN BERORIENTASI OBJEK
Deskripsi Singkat
Praktikum pemrograman berorientasi objek adalah praktikum yang menggunakan bahasa Java sebagai
bantuan dalam memahami konsep pemrograman berorientasi objek. Materi praktikum berisi teori,
latihan dan soal pemrograman.

Tujuan
1. Memahami konsep abstract class dan interface.
2. Menggunakan konsep abstract class dan interface pada pemrograman berorientasi objek.

Prasyarat
Siswa telah mendapat pelajaran mata kuliah Algoritma dan Pemrograman.

Materi 1 : Abstract Class


Pada pewarisan, jika super-kelas mempunyai method yang harus di override oleh sub-kelasnya, maka
class dan method tersebut kita buat sebagai abstract. Hal ini berguna jika ada isi method di dalam superkelas yang tidak dapat digeneralisasi pada sub-kelas sub-kelasnya.
Abstract class tidak dapat di instantiate (dicipta dengan new) namun konsep sub-tipe tetap berlaku
sehingga polimorfisme tetap berlaku. Abstract class dapat memiliki method abstract dan method bukan
abstract. Abstract class akan memaksa sub-kelas untuk mengoverride method abstractnya, jika tidak
maka sub-kelas harus juga bertipe abstract.
Abstract method diawali dengan kata abstract dan tidak memiliki implementasi serta langsung diakhiri
oleh semicolon (;). Abstract method digunakan agar di sub-kelasnya di override.

Materi 2 : Interface
Interface merupakan cara standar dalam menetapkan sifat-sifat umum dari class. Interface juga bersifat
polimorfisme. Interface digunakan untuk mengatasi kemiripan-kemiripan pada kelas yang tidak
berhubungan.

Viska Mutiawani, MSc


Jurusan Informatika Universitas Syiah Kuala

Praktikum 8
Abstract Class, Interface

Interface diawali dengan kata kunci interface, bukan class. Method pada interface adalah abstract
karena tidak memerlukan implementasi (namun tidak perlu kata kunci abstract).
Interface tidak mengandung method constructor. Semua method berakses public secara otomatis tanpa
harus dideklarasikan. Field pada interface secara otomatis menjadi public static final.
Pada interface digunakan kata kunci implements untuk mengimplementasikan interface yang telah
dibuat. Interface dapat mengimplement lebih dari 1 interface, sehingga seolah-olah suatu kelas
menerapkan multiple polimorfisme.

LATIHAN 1
Cari di internet mengenai static dan final. Pahami konsep tersebut.

LATIHAN 2
Buka software BlueJ, dan download projek makhluk-hidup pada alamat di bawah.
http://informatika.unsyiah.ac.id/viska/pbo/makhluk-hidup.zip
Coba buat method berjalan pada kelas Manusia menjadi comment, seperti di bawah:
/*public void berjalan()
{
System.out.println("Manusia berjalan dengan 2 kaki");
}*/

Sekarang compile projek makhluk-hidup. Error apa yang muncul? Kenapa error tersebut muncul?

Coba buat kelas CobaMakhlukHidup (tetap dalam projek makhluk-hidup). Codingnya seperti di bawah:
public class CobaMakhlukHidup
{
/**
* Method main untuk mencoba kelas makhluk hidup, Manusia dan
Hewan
*/
public static void main (String args[])
{
Manusia mnsia = new Manusia();
Hewan hwan = new Hewan();
Viska Mutiawani, MSc
Jurusan Informatika Universitas Syiah Kuala

Praktikum 8
Abstract Class, Interface

mnsia.bernapas();
mnsia.makan();
mnsia.berjalan();
hwan.bernapas();
hwan.makan();
hwan.berjalan();
}
}

Apakah hasil outputnya ketika coding di atas dijalankan? Bagaimana jalannya pemanggilan method pada
coding di atas.
Coba tambahkan coding di bawah pada method main kelas CobaMakhlukHidup.
MakhlukHidup mh = new MakhlukHidup();
Sekarang compile kembali kelas CobaMakhlukHidup. Error apa yang muncul? Kenapa error tersebut
muncul? Bisakah kita mencipta objek dari kelas abstract?

LATIHAN 3
Buka software BlueJ, dan download projek garis-bulat pada alamat di bawah.
http://informatika.unsyiah.ac.id/viska/pbo/garis-bulat.zip
Coba buat method lebihBesar pada kelas BilanganBulat menjadi comment, seperti di bawah:

Sekarang compile kembali projek garis-bulat. Error apa yang muncul? Kenapa error tersebut muncul?

Coba buat 2 objek BilanganBulat (misalnya bilangan1 dan bilangan2), jangan lupa berikan nilai awal pada
objek tersebut. Kemudian coba method lebihBesar, lebihKecil dan samaDengan dengan menghantar

Viska Mutiawani, MSc


Jurusan Informatika Universitas Syiah Kuala

Praktikum 8
Abstract Class, Interface

parameter objek BilanganBulat yang telah anda buat (misalnya bilangan1 pada Object a dan bilangan2
pada Object b). Apakah hasilnya?
Coba juga membuat 2 objek Garis dan method-methodnya.

SOAL-SOAL
1. Buatlah projek baru bernama coba-interface.
Klik New Class dan pilih Interface. Ketik coding di bawah:

Klik New Class dan buat kelas Televisi yang mengimplement interface kontrolTv. Contoh coding
yang belum lengkap seperti di bawah:

Coding di atas belum lengkap, lengkapi coding tersebut dengan implementasi dari method
pindahChannel, keraskanVolume dan pelankanVolume.
Buat kelas baru yang berisi method void main seperti di bawah:

Viska Mutiawani, MSc


Jurusan Informatika Universitas Syiah Kuala

Praktikum 8
Abstract Class, Interface

Coba coding hasil implementasi method-method yang telah anda buat dengan method main di atas.

Viska Mutiawani, MSc


Jurusan Informatika Universitas Syiah Kuala

Anda mungkin juga menyukai