Anda di halaman 1dari 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.