Knowladge Is Free

Catatan Kuliah Teknik Informatika dan lain-lain

ABSTRAC CLASS Pada Pemrograman Java

Abstract Class

A.      Tujuan
B.      Teori Singkat
Saat kita membuat sebuah superclass, kita tahu bahwa kita dapat memakai semua metode yang dimilikinya pada class anaknya. Atau kalau kita  butuh metode tersebut diperbarui, kita tinggal melakukan override pada metode tersebut.

Tapi, pada suatu kasus, kita ingin membuat superclass yang bernama LivingThing(makhluk hidup). Class ini punya beberapa method yang sudah kita kenal seperti makan, bernafas, tidur, dan berjalan. Ada satu metode yang tidak dapat kita generalisasi. Contohnya adalah method berjalan.Human sebagai subclass dari makhluk hidup berjalan dengan 2 kaki, sedangkan Dog berjalan dengan 4 kaki. Untuk membuat superclass yang umum, kita bisa membuat suatu superclass yang memiliki beberapa metode dengan implementasi dan beberapa tidak. Class ini disebut abstract  class
Secara umum, abstract class adalah class yang tak dapat diinstansiasi. Biasanya abstract class berada dalam hierarki tertinggi dalam PBO (pemrograman berorientasi objek). Metode di dalam abstract class yang tidak berisi kode program adalah abstract method (metode abstract). Nantinya, method ini harus di-override oleh subclass-nya. Jadi, kita hanya menulis deklarasi method tanpa tubuh metode dan memakai keyword abstract. Contohnya:
public abstract void iniMetode();
Deklarasi Method ini disebut sebagai prototype method.
Sekarang, kita coba buat abstract class pertama kita:
Suatu metode yang sudah dideklarasikan abstract harus diakhiri tanpa memakai tubuh program.
Jika ditulis seperti ini:
maka akan terjadi error seperti berikut:
Ketika sebuah class dibuat sebagai subclass dari class LivingThing, class itu harus meng-override metode abstract walk(). Jika tidak, class tersebut tidak akan dapat dikompilasi dan akan terjadi error.
Contoh pembuatan subclass yang benar:
Jika class Human tidak meng-override metode walk(), maka akan muncul pesan error seperti berikut:
Tapi, walau class Human tidak meng-override metode yang lain seperti breath() dan eat() (yang tidak abstract) tidak akan terjadi error.
Java memiliki aturan-aturan dalam penggunaan method abstrak dan class abstrak sebagai berikut :
·         Class yang di dalamnya terdapat abstract method harus dideklarasikan sebagai abstract class.
·         Abstract class tidak dapat diinstansi, tetapi harus di turunkan
·         Abstract class tidak dapat diinstansi (menjadi objek dari class abstract), tetapi kita dapat mendeklarasikan suatu variable yang bertipe abstract class dan membuat instansi dari variabel tersebut yang bertipe class turunan dari abstract class tersebut (teknik polymorphism).
·         Sebuah class dapat dideklarasikan sebagai abstract class meskipun class tersebut tidak memiliki abstract method.
·         Abstract method tidak boleh mempunyai body method dan demikian juga sebaliknya bahwa method yang tidak ditulis body methodnya maka harus dideklarasikan sebagai abstract method.

Jadi, fungsi abstract class tak lain adalah untuk membuat prototype bagi class di tingkatan paling atas dalam hierarki class dan subclass-nya yang menyediakan detail implementasi dari abstract class tersebut.

Contoh 1.
C.      Tugas Praktikum
CV. Maju Mundur memiliki 40 orang pegawai, dimana ke-40 pegawainya tersebut terbagi menjadi 2 status kepegawaian, yaitu sebagian pegawai tetap dan sebagian yang lain (sisanya) adalah pegawai kontrak. Secara umum perbedaan antara keduanya adalah pegawai tetap selain mendapatkan gaji juga mendapatkan tunjangan yang besarnya 200 ribu, sedangkan pegawai kontrak hanya mendapatkan gaji saja.
Dari kasus diatas, dapat digambarkan class-class pegawai sebagai
berikut :
·         Class PegawaiKontrak, dengan atribut :
NoPeg : no pegawai kontrak (diinputkan)
Nama : nama pegawai (diinputkan)
MasaKontrak : lama kontrak pegawai (diinputkan)
Kehadiran : jumlah hari masuk dalam 1 bulan (diinputkan)
UangMakan : besarnya 6 ribu dikali jumlah kehadiran(tidak diinputkan)
Gaji : besarnya gaji pokok yang diterima tiap bulan(diinputkan)

·         Class PegawaiTetap, dengan atribut :
NoPeg : no pegawai kontrak (diinputkan)
Nama : nama pegawai (diinputkan)
Kehadiran : jumlah hari masuk dalam 1 bulan (diinputkan)
Tunjangan : besarnya 200 ribu (tidak diinputkan)
UangMakan : besarnya 6 ribu dikali jumlah kehadiran(tidak diinputkan)
Gaji : besarnya gaji pokok yang diterima tiap bulan(diinputkan)

Method-method yang harus ada :
Ø  hitungGaji() : untuk menghitung gaji bersih pegawai,
dimana untuk pegawai kontrak = Uang Makan + Gaji, pegawai tetap = Tunjangan + Uang Makan + Gaji
Ø   lihatData() : untuk menampilkan data-data pegawai secara lengkap beserta total gaji yang diterima (gaji bersih)
Dari kedua class diatas, analisa dan desainlah superclass yang tepat untuk kasus tersebut.
Setelah itu buatlah class utama yaitu class PegawaiMajuMundur (yang menggunakan class-class diatas) yang memiliki menu utama sebagai berikut:


MENU UTAMA
1.       Input Data Pegawai
2.       Lihat Data Pegawai
3.       Keluar
Pilihan Anda [1/2/3] ? ...

 






Tentukan pula modifier yang tepat untuk semua class diatas (termasuk superclass-nya, mana yg final class dan mana yang abstract class). Anda dapat menggunakan teknik polymorphism dalam  penyelesaikan permasalahan ini.
Share this article :
+
Previous
Next Post »
0 Komentar untuk "ABSTRAC CLASS Pada Pemrograman Java"

 
Copyright © 2014 Knowladge Is Free - All Rights Reserved - DMCA
Template By Kunci Dunia