Dian Wahyuningsih, S.Kom., MMSI PBO Dian Wahyuningsih, S.Kom., MMSI
Abstrak Setelah memahami konsep enkapsulasi, inhetance dan polimorphisme selanjutnya adalah penggunaan kelas abstrak. Sebuah program dikatakan baik dalam konsep PBO jika programmer memungkinkan konsep “reuseable code”. Untuk dapat melakukan hal ini maka program yang dibuat harus memiliki tingkat abstrak yang cukup agar pengguna yang akan menggunakan kembali kode program tersebut dapat dengan mudah menggunakannya.
Bagaimana konsep abstrak diterapkan di Java Bagaimana konsep abstrak diterapkan di Java? Di dalam Java dikenal istilah yaitu template kode yang secara implementasi diwakili oleh kelas abstrak atau diwakili oleh interface. Kedua konsep ini memungkinkan programmer dalam menaikkan level abstrak dari sebuah kelas. Contoh:
Pada contoh class diagram tersebut kita dapat melihat ada dua kelas yang memiliki konsep yang mirip yaitu kelas “persegi” dan “lingkaran”. Kenapa dikatakan mirip? Karena pada kedua kelas tersebut terdapat method yang sama, yaitu “hitungKeliling()” dan “hitungLuas()”. Perbedaannya hanya terdapat pada rumus yang digunakan untuk menghitung luas dan keliling nya, maka konsep abstrak dapat diterapkan pada kasus ini.
Seperti yang kita ketahui, persegi dan lingkaran merupakan anggota dari bangun datar dan setiap bangun datar dapat dihitung keliling dan luasnya bagaimanapun bentuknya. Bangun datar sendiri adalah konsep abstrak yang ada dipikiran kita, sehingga dapat kita gunakan untuk menyatukan konsep sejenis yang ada. Selama sebuah benda dapat dihitung keliling dan luasnya, maka benda tersebut adalah bangun datar. Mengapa disebut abstrak?
Tidak ada rumus yang dapat digunakan untuk menghitung keliling dan luas dari bangun datar. Kita baru bisa menghitungnya apabila bangun datar tersebut sudah didefinisikan menjadi bentuk konkrit, contohnya adalah lingkaran dan persegi. Setelah menemukan konsep abstraknya, selanjutnya adalah membuat desain kelas untuk menggambarkan konsep abstrak tersebut.
Penerapan kelas abstrak Kelas abstrak biasanya terdiri dari method abstrak dan beberapa method yang non-abstrak. Sub class dari kelas abstrak diperbolehkan hanya mengimplementasikan method-method yang abstrak saja. Kelas abstrak diimplementasikan oleh sub class dengan menggunakan konsep pewarisan. Untuk kasus kelas “Persegi” dan “Lingkaran” maka desain kelas setelah menerapkan konsep kelas abstrak akan tampak seperti berikut.
Contoh program Penggunaan kelas abstrak Buat project Buat kelas abstrak Buat sub kelas yang mewarisi kelas abstrak dan menginisiasi method abstrak Membuat objek dari sub kelas
Interface Selain menggunakan kelas abstrak untuk menerapkan konsep PBO, ada konsep lain yang dapat digunakan yaitu “interface”. Interface mempunyai perbedaan desain dengan kelas abstrak, interface hanya berisi method abstraksaja dan mewajibkan penggunanya untuk mengimplementasi method abstrak yang ada. Selain itu interface diimplementasi bukan dengan konsep pewarisan, namun dengan menggunakan konsep “realization”. Berikut contoh penggunaan interface.
Secara umum desain kelas tidak banyak perbedaan, hanya terletak dari simbol <<Interface>> dan garis “realization” yang digunakan untuk menghubungkan antara interface dengan kelas Persegi dan Lingkaran.
Contoh program Penggunaan Interface Buat project Buat Java Interface Buat kelas persegi dan lingkaran Membuat objek dari kelas persegi dan lingkaran
Perbedaan Kelas Abstrak Interface Kelas abstrak dapat mempunyai method abstrak dan non-abstrak Interface hanya dapat mempunyai method abstrak Tidak mendukung multiple inheritance Mendukung multiple inheritance Kelas abstrak dapat menggunakan variabel final, non-final dan static, non-static Interface hanya mempunyai variabel final dan static Kelas abstrak dapat mengimplementasi Interface Interface tidak dapat mengimplementasi kelas abstrak Kelas abstrak dapat mempunyai method static, main dan construktor Interface hanya mempunyai method public dan abstrak