You are on page 1of 9

LAPORAN PEMROGRAMAN BERORIENTASI OBYEK

PERTEMUAN KE - 4










Di Susun Oleh :
Nama : Mohamad Hanafi
Nim : 095410134
Jurusan : Teknik Informatika/Strata-1









LABORATORIUM TERPADU
Sekolah Tinggi Manajemen Informatika dan Komputer
AKAKOM
Yogyakarta
2011
PERTEMUAN KE-4
POLYMORPHISME


A. LISTING
Terlampir

B. PEMBAHASAN LISTING
Sebelum membahas tentang listing alangkah baiknya kita bicarakan sedikit tentang
polymorphisme merupakan konsep pokok didalam perancangan berorientasi obyek.
Polymorphism berarti mempunyai banyak bentuk. Dua obyek atau lebih dikatakan sebagai
polimorphic bila obyek-obyek itu mempunyai antarmuka-antarmuka yang identik namun
mempunyai perilaku-perilaku berbeda.
Polymorphism merupakan fitur yang ada karena interaksi konsep pewarisan dan dynamic
binding. Polymorphism merupakan fitur penting dan ampuh bahasa pemrograman
berorientasi obyek. Kepentingannya merupakan peringkat kedua setelah dukungan terhadap
abstraksi berorientasi obyek . fitur ini merupakan pembeda pemrograman berorientasi obyek
dari bahasa pemrograman tradisional yang hanya sampai pada tipe data abstrak. Bahasa yang
tidsak merndukung polymorphism belum layak disebut bahasa pemrograman berorientasi
obyek, paling-paling disebut bahasa berbasis obyek bila telah mendukung pengkapsulan.

class EkspresiWajah {
public String respons(){
return ("Lihatlah reaksi wajah saya");
}
}
// program diatas menyatakan tentang pembuatan class tentang ekspresi wajah seseorang
dengan menggunakan Overloading yang berarti pendefinisian ulang suatau metode dalam
yang sama, methode disini menggunakan kata respons pada program ini dijadikan
superclass(kelas induk)

class Gembira extends EkspresiWajah{
public String respons(String eksbibir){
return eksbibir;
}
}
//untuk kelas gembira yaiitu merupakan turunan dari ekspresi wajah atau bisa dikatakan
dengan subclass(kelas anak) yang menggunakan kata String Ektends yang didalamya
menggunkan tipe data String eksbibir ketika sedang gembira dengan menggunakan method
yang sama seperti pada induk kelas.

class Sedih extends EkspresiWajah{
public int respons(int lebarbibir){
return lebarbibir;
}
}
//program ini pun sama dengan class gembira yang diturunkan pada kelas EkspresiWajah tapi
method yang digunakan berbeda tipe datanya pun juga berbeda yang perlu diingat adalah
apabila pada public tipenya int maka pada tipe data methodnya pun int.
public class Emosional {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
EkspresiWajah obj = new EkspresiWajah();
Gembira objG = new Gembira();
Sedih objS = new Sedih();
System.out.println("Ekspresi wajah : "+obj.respons());
System.out.println("Ekpresi wajah gembira : "+objG.respons("Tertawaawawa"));
System.out.println("Ekpresi wajah sedih dengan ukuran lebar bibirnya :
"+objS.respons(12)+" CM");
}
}
// kita membuat obyek baru yang sebelumnya diikuti denga nama kelas induk setelah itu
diikuti dengan kelas anak dan obyeknya juga setelah dideklarasika obyeknya kita membuat
keluaran dari program yang System.out.println diikuti dengan nama public dan nama
methodnya.
Hasil outputnya :


C. TUGAS
Praktek :
Membuat paket
public class paket {

/**
* @param args the command line arguments
*/
public static void isiPaket() {
// TODO code application logic here
System.out.println("Ini hasil import");
}

}

Pemanggilan sebuah paket tapi dilakukan diluar file class paket :
import pack1.*;
public class cobaPaket {

public static void main(String args[]){
paket coba = new paket();
coba.isiPaket();
}
}

Hasil outputnya :


Praktek ke-3 dengan memasukkan method-method tentang mahasiswa
package pack1;

/**
*
* @author MOHAMAD HANAFY
*/
public class mhs {
private int umur;
private String nama;
private String nim;
private String jurusan;
public mhs(){
umur = 0;
nama = "unknow";
nim = "unknow";
jurusan = "unknow";
}
public mhs(int umur, String nama, String nim, String jurusan){
this.umur = umur;
this.nama = nama;
this.nim = nim;
this.jurusan = jurusan;
}
public void info(){
System.out.println("Umur : "+umur);
System.out.println("Nama : "+nama);
System.out.println("Nim : "+nim);
System.out.println("Jurusan : "+jurusan);
}
public static void main(String args[]){
mhs obyek = new mhs(20,"hanafi","095410134","Teknik informatika");
obyek.info();
}
}


Pemanggilan method mahasiswa dilakukan di class coba paket :
import pack1.*;
public class cobaPaket {

public static void main(String args[]){
paket coba = new paket();
coba.isiPaket();
System.out.println();
mhs obyek1 = new mhs(23,"Arif","095420324","Sistem informasi");
obyek1.info();
}
}
Hasil outputnya:

Praktek ke-4 :
package pack2;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author MOHAMAD HANAFY
*/
public class LabelTest extends JFrame{
private JLabel label;

public LabelTest(){
super( "mencoba JLabel" );
Container container = getContentPane();
container.setLayout ( new FlowLayout());
label = new JLabel ( "Label dengan Text" );
label.setToolTipText( "Ini adalah label1" );
container.add(label);
setSize(500,400);
setVisible(true);
}

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
LabelTest aplikasi = new LabelTest();
aplikasi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Hasil outputnya :


Latihan :
package packlatihan;
import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
/**
*
* @author MOHAMAD HANAFY
*/
public class TextFieldTest extends JFrame {
private JTextField textField;
private JPasswordField passwordField;

public TextFieldTest()
{
super ( "Test JTextField dan JPasswordField" );
Container container = getContentPane();
container.setLayout( new FlowLayout());
textField = new JTextField(10);
container.add(textField);
passwordField = new JPasswordField("Text Sembunyi");
container.add(textField);
TextFieldHandler handler = new TextFieldHandler();
// textField.addActionListener(handler);
// passwordField.addActionListener(handler);
setSize(200, 200);
setVisible(true);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
TextFieldTest aplikasi = new TextFieldTest();
aplikasi.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
private class TextFieldHandler implements ActionListener {
public void actionPerformed (ActionEvent event)
}
String string ="";
if (event.getSource() == textField)
string = "textField: "+event.getActionCommand();
else if (event.getSource() == passwordField){
string = "passwordField: "+new String (passwordField.getPassword());
}
JOptionPane.showMessageDialog(null, string);
}
}
}
Hasil outputnya :


Tugas :
Membuat paket untuk data pegawai :
package tugaspack;

/**
*
* @author MOHAMAD HANAFY
*/
public class Pegawai {
private int umur;
private String nama;
private int gaji;
private String alamat;
public Pegawai(){
umur = 0;
nama = "unknow";
gaji = 0;
alamat = "unknow";
}
public Pegawai(int umur, String nama, int gaji, String alamat){
this.umur = umur;
this.nama = nama;
this.gaji = gaji;
this.alamat = alamat;
}
public void info(){
System.out.println("Umur : "+umur);
System.out.println("Nama : "+nama);
System.out.println("Gaji : "+gaji);
System.out.println("Alamat : "+alamat);
}
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Pegawai oby = new Pegawai(32,"Samijan",1500000,"jl.janti Gg.bimo no.75,
Karangjambe, bantul, YOGYAKARTA");
oby.info();
}
}

Pemanggilan pada method yang berisi data pegawai :
import tugaspack.*;
public class lihatPack {

public static void main(String hanafi[]){
Pegawai pg = new Pegawai(21,"Sukamto",1200000,"jl.supriyadi no.12, Dawung Krajan,
Jogorogo, NGAWI, JAWATIMUR");
pg.info();
}
}
Hasil outputnya :


D. PEMBAHASAN TUGAS
Membuat data pegawai yang nantinya akan dipanggil pada paket yang diluar file dari class
pegawai berikut adalah sintak programnya :
public class Pegawai {
private int umur;
private String nama;
private int gaji;
private String alamat;
public Pegawai(){
umur = 0;
nama = "unknow";
gaji = 0;
alamat = "unknow";
}
// seperti pada modul sebelumnya kita membuat atribut dari kelas pegawai untuk mengisi atau
melengkapi dari kelas pegawai pada program diatas kita buat konstruktornya dimana pada
konstruktor tersebut digunakan untuk melakukan inisialisasi variabel-variabel instan kelas
serta melakukan persiapan-persiapan yang diperlukan oleh suatu obyek untuk dapat
beroperasi dengan baik pada public pegawai yaitu membuat inisialisasi atau jaga-jaga apabila
user pada program ending akhirnya tidak mengisikan atau lupa maka program akan terisikan
dafault seperti pada program diatas.

public Pegawai(int umur, String nama, int gaji, String alamat){
this.umur = umur;
this.nama = nama;
this.gaji = gaji;
this.alamat = alamat;
}
// pemberian tipe data untuk mendeklarasikan program dimana pada program tersebut
digunakan untuk membedakan mana tipe data dan mana nama atributnya.

public void info(){
System.out.println("Umur : "+umur);
System.out.println("Nama : "+nama);
System.out.println("Gaji : "+gaji);
System.out.println("Alamat : "+alamat);
}
//Pemanggilan hasil program untuk memudahkan programmer manampilkan hasil
programnya.

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Pegawai oby = new Pegawai(32,"Samijan",1500000,"jl.janti Gg.bimo no.75,
Karangjambe, bantul, YOGYAKARTA");
oby.info();
}
}
//pada ending program tersebut kita melakukan pemanggilan kelas diikuti dengan nama
sebuah obyek baru dan isian program sesuai dengan nama atribut yang diberikan berdasarkan
tipe datannya.

Pada pemanggilan peketnya :
import tugaspack.*;
// dilakukan pemanggilan pada nama paketnya untuk digunakan method yang akan
ditampilkan pada class lihatPack.
public class lihatPack {

public static void main(String hanafi[]){
Pegawai pg = new Pegawai(21,"Sukamto",1200000,"jl.supriyadi no.12, Dawung Krajan,
Jogorogo, NGAWI, JAWATIMUR");
pg.info();
}
}
// kelas yang dipanggil disini kita tidak memanggil kelas pada program ini tapi kita
memanggil kelas pada paket kelas Pegawai diikuti dengan nama obyeknya, sedangkan nama
obyeknya bebas mau dikasih nama sembarang pada pengisian nama atributnya kita kasih
masukan lagi dikarenakan beda kelas meskipun pada kelas pegawai sudah dimasukkan
atributnya maka disini tidak akan muncul dikarenakan beda filenya ataupun beda paketnya.

You might also like