Polymorphism yang berarti satu objek dapat memiliki banyak bentuk tang berbeda.
Polymorphism adalah konsep sederhana dalam pemrograman berorientasi objek yang berarti kemampuan suatu variabel referensi objek untuk memiliki aksi yang berbeda bila method yang sama dipanggil dimana aksi method tergantung dari tipe objeknya.
Soal :
Sebuah perusahaan terdapat 3 jenis golongan karyawan : karyawan kontrak, karyawan tetap & manajer. Buatlah sebuah program perhitungan gaji untuk karyawan tetap (pajak 10%), karyawan kontrak (pajak 5%) dan manajer (pajak 15%).
Penyelesaian :
1. Membuat sebuah project dengan nama Karyawan
2. Membutuhkan 5 kelas dengan nama bebas sesuka hati
3. Membuat super class dengan nama contohnya karyawan
Source code :
public abstract class Karyawan
{
String nama;
String jabatan;
double gajibersih;
double gajikotor;
double gajipokok;
double uangmakan;
public Karyawan()
{
gajipokok=1500000.0;
}
public void setNama (String name)
{
this.nama=name;
}
public String getNama()
{
System.out.println ("Nama Karyawan : " +nama);
return nama;
}
public String jabatan()
{
System.out.println ("Posisi Jabatan : " +jabatan);
return jabatan;
}
public abstract double perhitungangaji();
}
Tampilan :
4. Membuat sub class dengan nama contohnya karyawan tetap
Source code :
public class Karyawantetap extends Karyawan
{
double uangmakan;
double tunjangankinerja;
public Karyawantetap()
{
jabatan="Karyawan Tetap";
uangmakan=500000.0;
tunjangankinerja=500000.0;
}
public double perhitungangaji()
{
double potongan;
gajikotor=gajipokok+uangmakan+tunjangankinerja;
potongan=(10.0/100.0)*gajikotor;
gajibersih=gajikotor-potongan;
System.out.println ("Gaji Pokok : " +gajipokok);
System.out.println ("Uang Makan : " +uangmakan);
System.out.println ("Tunjangan Kinerja : " +tunjangankinerja);
System.out.println ("Gaji Kotor : " +gajikotor);
System.out.println ("Potongan : " +potongan);
System.out.println ("Gaji Bersih : " +gajibersih);
return gajibersih;
}
}
5. Membuat sub class dengan nama contohnya karyawan kontrak
Source code :
public class Karyawankontrak extends Karyawan
{
double uangmakan;
public Karyawankontrak()
{
jabatan="Karyawan Kontrak";
uangmakan=500000.0;
}
public double perhitungangaji()
{
double potongan;
gajikotor=gajipokok+uangmakan;
potongan=(5.0/100.0)*gajikotor;
gajibersih=gajikotor-potongan;
System.out.println ("Gaji Pokok : " +gajipokok);
System.out.println ("Uang Makan : " +uangmakan);
System.out.println ("Gaji Kotor : " +gajikotor);
System.out.println ("Potongan : " +potongan);
System.out.println ("Gaji Bersih : " +gajibersih);
return gajibersih;
}
}
6. Membuat sub class dengan nama contohnya manajer
Source code :
public class Manajer extends Karyawan
{
double uangmakan;
double tunjangankinerja;
double tunjanganjabatan;
public Manajer()
{
jabatan="Manajer";
uangmakan=500000.0;
tunjangankinerja=500000.0;
tunjanganjabatan=1000000.0;
}
public double perhitungangaji()
{
double potongan;
gajikotor=gajipokok+uangmakan+tunjangankinerja+tunjanganjabatan;
potongan=(15.0/100.0)*gajikotor;
gajibersih=gajikotor-potongan;
System.out.println ("Gaji Pokok : " +gajipokok);
System.out.println ("Uang Makan : " +uangmakan);
System.out.println ("Tunjangan Kinerja : " +tunjangankinerja);
System.out.println ("Tunjangan Jabatan : " +tunjanganjabatan);
System.out.println ("Gaji Kotor : " +gajikotor);
System.out.println ("Potongan : " +potongan);
System.out.println ("Gaji Bersih : " +gajibersih);
return gajibersih;
}
}
7. Membuat kelas untung di run dengan nama contohnya gaji
Source code :
public class GajiTampilan :
{
public static void main (String [] args)
{
Karyawan ref;
Karyawantetap pekerja=new Karyawantetap();
Karyawankontrak pegawai=new Karyawankontrak();
Manajer atasan=new Manajer();
System.out.println ("DAFTAR GAJI KARYAWAN");
System.out.println ("\n");
ref=pekerja;
ref.setNama ("Fauziah");
ref.getNama();
ref.jabatan();
ref.perhitungangaji();
System.out.println ("\n");
ref=pegawai;
ref.setNama ("Amalia");
ref.getNama();
ref.jabatan();
ref.perhitungangaji();
System.out.println ("\n");
ref=atasan;
ref.setNama ("Desianny");
ref.getNama();
ref.jabatan();
ref.perhitungangaji();
}
}
8. Hasil tampilan ketika di run
Mau tanya, tolong bisakah ditunjukkan mana yang Inheritance dan yang mana Polymorphism?? Terimakasih.. :)
BalasHapusmantap
BalasHapus