LAPORAN RESMI
PRAKTIKUM BAHASA PEMROGRAMAN
BAB 5
POLIMORFISMSE
Disusun Oleh :
LABORATORIUM MICROTEACHING DAN KOMPUTER
JURUSAN PENDIDIKAN INFORMATIKA
FAKULTAS KIP
UNIVERSITAS TRUNOJOYO MADURA
2014
Disetujui : ...-...-.../Bangkalan
(
AGUS PRIYONO) 120411100056NAMA : FARIDATUS SHOFIYAH
NRP : 13.06.311.00112
KELOMPOK : C1
DOSEN PENGAMPU : MEDIKA RISNASARI, MT
BAB I PENDAHULUAN
1.1Latar Belakang
Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda melalui
satu cara yang sama. Apabila mempunyai objek yang bertipe superkelas,
variable objek ini bisa diisi dengan objek superkelas ataupun objek subkelas
tanpa perlu melakukan perubahan tipe.
1.2Tujuan
BAB II DASAR TEORI
I. TEORI
Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda
melalui satu cara yang sama. Apabila mempunyai objek yang bertipe
superkelas, variable objek ini bisa diisi dengan objek superkelas ataupun
objek subkelas tanpa perlu melakukan perubahan tipe. Polymorphism berarti
sebuah object dapat memiliki berbagai bentuk, yaitu dengan memiliki nama
yang sama, tetapi behavior yang berbeda. Sebuah object dapat memiliki
berbagai bentuk baik dari class itu sendiri ataupun dari superclass-nya. Ada 2
macam bentuk polymorphism, yaitu:
Overloading: penggunaan satu nama untuk beberapa method yang berbeda dalam suatu class. Nama method yang sama dibedakan dari
jumlah parameter dan tipe data parameternya. Overloading
mempunyai ciri-ciri sebagai berikut:
- Nama method harus sama
- Daftar parameter harus berbeda
- Return type boleh sama, juga boleh berbeda
Contoh penggunaan overloading dilihat di bawah ini:
Gambar(int t1) 1parametertitik,untuk menggambar titik
Gambar(int t1, int t2) 2parametertitik,untuk menggambar garis
Gambar(int t1, int t2,int t3) 2parametertitik,untuk menggambar
segitiga
Gambar(int t1, int t2,int t3, int t4) 2parametertitik,untuk
menggambar segiempat
Overriding: mendeklarasikan sebuah method dengan nama dan parameter yang sama dari superclass-nya, kemudian dimodifikasi
ulang (menumpuk/mendefinisi ulang).
Pada polymorphism, dikenal juga dynamic binding atau ikatan dinamis yang
umumnya digunakan pada variabel bertipe class. Jika kita mempunyai variabel
subclass-nya tanpa melakukan perubahan tipe. Untuk lebih jelas mengenai
dynamic binding kita akan melihat contoh berikut:
Pada contoh class Manusia merupakan superclass, sedangkan class
Mahasiswa dan class Karyawan merupakan subclass dari class Manusia. Ketiga
class tersebut memiliki method setNama() dan getNama(). Kesamaan nama
package modul5;
//@author faridatus shofiyah/ 130631100112 public class Manusia_Modul5 {
private String nama;
public void setNama(String nama){ this.nama = nama;
dan tipe data method pada subclass yang mengacu superclass dinamakan
overriding method. Kemudian variabel object Manusia (mns) menunjuk ke
object yang dirujuk oleh Mahasiswa (mhs), pada baris mns = mhs; variabel
object Manusia (mns) ke object yang dirujuk oleh object Karyawan (kar), pada
BAB III IMPLEMENTASI
I. PELAKSANAAN PRAKTIKUM
1. Cobahlah contoh program diatas (class Manusia)
3. Berikut contoh penggunaan class dengan menerapkan constructor,
inheritance, access modifier (encapsulation) dan polymorphism.
Cobalah code di bawah ini sebagai latihan dan compile-running
import java.io.*;
public Manusia_2_Modul5(){ this.nama = "";
this.jns_kel = ""; this.tinggi = 0; this.berat = 0; }
public Manusia_2_Modul5(String nama, String jns_kel, double tinggi, double berat){
this.nama = nama; "+jns_kel+"\nTinggi : "+tinggi+"\nBerat : "+berat); }
}
class Mahasiswa extends Manusia_2_Modul5{
private String npm, asalSMU, fakultas, jurusan; int nTugas, nUjian;
public Mahasiswa(String nama, String jns_kel, double tinggi, double berat,String npm, String asalSMU, String fakultas, String jurusan, int nTugas, int nUjian){ super(nama, jns_kel, tinggi, berat);
public String cetak(String nTugas, String nUjian){ return (super.cetak()+"\n\nNPM : "+"\nAsal SMU : "+asalSMU+"\nFakultas : "+fakultas+"\nJurusan :
"+jurusan+"\nNilai Tugas : "+nTugas+"\nNilai Ujian : "+nUjian);
"L",170,60, "08120080035","SMAN 1", "Ilmu Komputer", "Pendidikan Informatika", 80, 90);
System.out.println(mhs.cetak()); }
II. TUGAS
PT. Biting Bersatu memiliki 50 orang pegawai, 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 500 ribu, sedangkan pegawai kontrak hanya
mendapatkan gaji saja. Dari kasus diatas, dapat digambarkan class-class
pegawai sebagai berikut:
Class PegawaiKontrak, dengan atribut:
NIK : no pegawai kontrak (diinputkan)
Nama : nama pegawai (diinputkan)
MasaKontrak : lama kontrak pegawai (diinputkan)
Kehadiran : jumlah hari masuk dalam 1 bulan (diinputkan)
UangMakan : besarnya 8 ribu dikali jumlah kehadiran (tidak diinputkan)
Gaji : besarnya gaji pokok yang diterima tiap bulan (diinputkan)
Class PegawaiTetap, dengan atribut: NIK : no pegawai tetap (diinputkan)
Nama : nama pegawai (diinputkan)
Kehadiran : jumlah hari masuk dalam 1 bulan (diinputkan)
Tunjangan : besarnya 500 ribu (tidak diinputkan)
UangMakan : besarnya 8 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
PegawaiBitingBersatu (yang menggunakan classclass diatas) yang
PT. BITING BERSATU
Kalian dapat menggunakan teknik polymorphism dalam menyelesaikan
permasalahan ini
public PegawaiTetap(String NIK, String Nama, int kehadiran, int gaji){
"+Nama+"\nKehadiran : "+kehadiran+"\nUang Makan : "+uangmakan+"\nGaji : "+gaji+"\nTunjangan :
"+tunjangan+"\nGaji Bersih : "+hitungGaji()); }
Class PegawaiKontrak.java
Class Main.java package Modul5;
import java.util.Scanner; // @author Faridatus Shofiyah
class PegawaiKontrak extends PegawaiTetap{ String MasaKontrak;
public PegawaiKontrak(String NIK, String Nama, String MasaKontrak, int kehadiran, int gaji){ super(NIK, Nama, kehadiran, gaji);
this.MasaKontrak = MasaKontrak; }
public int hitungGaji(){
return gaji+(uangmakan*kehadiran); }
public String Cetak(){
return (super.Cetak()+"\nMasa Kontrak : "+MasaKontrak);
package Modul5;
import java.util.Scanner;
// @author Faridatus Shofiyah/130631100112 */
class Menu extends PegawaiKontrak{
public Menu(String NIK, String Nama, String MasaKontrak, int kehadiran, int gaji){
super(NIK, Nama, MasaKontrak, kehadiran, gaji);} public Scanner in = new Scanner(System.in);
int x;
PegawaiTetap tetap = new PegawaiTetap(NIK, Nama, kehadiran, gaji);
BAB IV PENUTUP
4.1 Kesimpulan
. Polimorfisme adalah kemampuan mengungkap suatu hal yang berbeda
melalui satu cara yang sama. Apabila mempunyai objek yang bertipe
superkelas, variable objek ini bisa diisi dengan objek superkelas ataupun
objek subkelas tanpa perlu melakukan perubahan tipe. Polymorphism berarti
sebuah object dapat memiliki berbagai bentuk, yaitu dengan memiliki nama