Praktikum Ke Empat PSBO

Pada pertemuan ke empat di bahas tentang “Abstract dan Interface“, dijelaskan tentang konsep abstract class dan abstract method, beserta contoh-contoh program dalam java. Sebagian besar contoh yang dijelaskna oleh asisten besal dari buku “Head First Java”.
berikut contoh codingan dalam java


package AbstractClass;

public abstract class LivingThing {
    public void breath()
    {
        System.out.println("Living Thing breathing");
    }
    public void eat(){
        System.out.println("Living Thing eating");
    }

    public abstract void move();

}
package AbstractClass;

public class Fish extends LivingThing{
    public void move(){
        System.out.println("Fish Swims");
    }
}
package AbstractClass;

public class Frog extends LivingThing {
    public void move(){
        System.out.println("Frog Jumps");
    }
}
package AbstractClass;

public class Human extends LivingThing{
    public void move(){
        System.out.println("human Walks");
    }

}
package AbstractClass;

public class Main {
    public static void main(String[] args) {
        Human orang = new Human();
        orang.breath();
        orang.move();

        Frog kodok = new Frog();
        kodok.eat();
        kodok.move();
    }
}

Berikut contoh program interface :

package Interface;

public interface Relation {
    public boolean isGreater(Object a,Object b);
    public boolean isLess(Object a,Object b);
}

package Interface;

public class Line implements Relation{
private double x1;
private double x2;
private double y1;
private double y2;

public Line(double x1, double x2, double y1, double y2) {
this.x1 = x1;
this.x2 = x2;
this.y1 = y1;
this.y2 = y2;
}

Line() {
throw new UnsupportedOperationException(“Not yet implemented”);
}

public double getLength(){
double length = Math.sqrt((x2-x1)*(x2-x1)+(y2-y1)*(y2-y1));
return length;
}
public boolean isGreater(Object a, Object b) {
Line aLine=(Line) a;
Line bLine=(Line) b;
double aLen=aLine.getLength();
double bLen=bLine.getLength();
return (aLen>bLen);
}

public boolean isLess(Object a, Object b) {
Line aLine=(Line) a;
Line bLine=(Line) b;
double aLen=aLine.getLength();
double bLen=bLine.getLength();
return (aLen< blen ); } } [/sourcecode] [sourcecode language='java'] package Interface; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { // TODO code application logic here Line garis = new Line(5.5, 2.5, 3.0, 2.3); Line garsi2 = new Line(2, 4, 3, 7); JOptionPane.showMessageDialog(null, "Panjang garis 1 : "+garis.getLength()); JOptionPane.showMessageDialog(null, "Panjang garis 2 : "+garsi2.getLength()); JOptionPane.showMessageDialog(null, "Garis 1 > garis 2 : “+garis.isGreater(garis, garsi2));
JOptionPane.showMessageDialog(null, “Garis 1 < garis 2 : "+garis.isLess(garis, garsi2)); } } [/sourcecode] Di praktikum tersebut kami diberi tugas membuat contoh program dengan suatu kasus, kemudian dibuat program dengan penyelesaian kasus tersebut dengan memanfaatkan abstract dan interface. Kasus yang saya pakai ada kasus pada macam-macam buruh, disini saya menjabarkan 4 macam tipe pembayaran pada buruh (buruh perjam, buruh harian, buruh mingguan, dan buruh bulanan). Pertama saya buat Buruh.java sebagai parent class-nya: Kode program yang ini untuk contoh penggunaan abstract class dan abstract method: [sourcecode language='java'] package Abstract; public abstract class Buruh { private String nama; private int umur; private String asalKota; public Buruh(String nama, int umur, String asalKota) { this.nama = nama; this.umur = umur; this.asalKota = asalKota; } public String getAsalKota() { return asalKota; } public void setAsalKota(String asalKota) { this.asalKota = asalKota; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } public abstract String gajiPerBulan(); // abstract method } [/sourcecode] Lalu saya buat 4 class, sebagai class turunan dari class "Buruh": [sourcecode language='java'] package Abstract; public class buruhPerJam extends Buruh { private int jam; public buruhPerJam(String nama, int umur, String asalKota, int jam) { super(nama, umur, asalKota); this.jam = jam; } @Override public String gajiPerBulan() { return "Rp. "+jam*20000; } } [/sourcecode] [sourcecode language='java'] package Abstract; public class buruhHarian extends Buruh{ private int hari; public buruhHarian(String nama, int umur, String asalKota, int hari) { super(nama, umur, asalKota); this.hari = hari; } @Override public String gajiPerBulan() { return "Rp. "+hari*200000; } } [/sourcecode] [sourcecode language='java'] package Abstract; public class buruhPerMinggu extends Buruh{ private int minggu; public buruhPerMinggu(String nama, int umur, String asalKota, int minggu) { super(nama, umur, asalKota); this.minggu = minggu; } @Override public String gajiPerBulan() { return "Rp. "+minggu*1000000; } } [/sourcecode] [sourcecode language='java'] package Abstract; public class buruhBulanan extends Buruh{ public buruhBulanan(String nama, int umur, String asalKota) { super(nama, umur, asalKota); } @Override public String gajiPerBulan() { return "Rp. "+4000000; } } [/sourcecode] Kemudian dibuat class main-nya: [sourcecode language='java'] package Abstract; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { String nama; int umur; String asalKota; int jam; int hari; int minggu; int jenisBuruh = 0; nama = JOptionPane.showInputDialog("Masukkan nama buruh : "); umur = Integer.parseInt(JOptionPane.showInputDialog("Masukkan umur buruh : ")); asalKota = JOptionPane.showInputDialog("Masukkan asal kota buruh : "); jenisBuruh = Integer.parseInt(JOptionPane.showInputDialog("Jenis Buruh\n" + "1. Buruh per Jam \n" + "2. Buruh Per Hari\n" + "3. Buruh Per Minggu\n" + "4. Buruh Per Bulan\n" + "Masukkan jenis buruh : ")); Buruh buruh[] = new Buruh[5]; switch (jenisBuruh) { case 1: jam = Integer.parseInt(JOptionPane.showInputDialog("Masukkan jumlah jam kerja sebulan : ")); buruh[1] = new buruhPerJam(nama, umur, asalKota, jam); JOptionPane.showMessageDialog(null, "Besar Gaji yang diterima adalah : " + buruh[1].gajiPerBulan(), "Gaji yang diterima", JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(null, "Nama : " + nama + "\nUmur : " + umur + " Tahun\nAsal Kota : " + asalKota + "\nSebagai Buruh Per Jam\n" + "Dengan gaji sebulan : " + buruh[1].gajiPerBulan(), "Data Lengkap Buruh", JOptionPane.INFORMATION_MESSAGE); System.exit(0); case 2: hari = Integer.parseInt(JOptionPane.showInputDialog("Masukkan jumlah hari kerja sebulan : ")); buruh[2] = new buruhHarian(nama, umur, asalKota, hari); JOptionPane.showMessageDialog(null, "Besar Gaji yang diterima adalah : " + buruh[2].gajiPerBulan(), "Gaji yang diterima", JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(null, "Nama : " + nama + "\nUmur : " + umur + " Tahun\nAsal Kota : " + asalKota + "\nSebagai Buruh Per Hari\n" + "Dengan gaji sebulan : " + buruh[2].gajiPerBulan(), "Data Lengkap Buruh", JOptionPane.INFORMATION_MESSAGE); System.exit(0); case 3: minggu = Integer.parseInt(JOptionPane.showInputDialog("Masukkan jumlah minggu kerja sebulan : ")); buruh[3] = new buruhPerMinggu(nama, umur, asalKota, minggu); JOptionPane.showMessageDialog(null, "Besar Gaji yang diterima adalah : " + buruh[3].gajiPerBulan(), "Gaji yang diterima", JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(null, "Nama : " + nama + "\nUmur : " + umur + " Tahun\nAsal Kota : " + asalKota + "\nSebagai Buruh Per Minggu\n" + "Dengan gaji sebulan : " + buruh[3].gajiPerBulan(), "Data Lengkap Buruh", JOptionPane.INFORMATION_MESSAGE); System.exit(0); case 4: buruh[4] = new buruhBulanan(nama, umur, asalKota); JOptionPane.showMessageDialog(null, "Besar Gaji yang diterima adalah : " + buruh[4].gajiPerBulan(), "Gaji yang diterima", JOptionPane.PLAIN_MESSAGE); JOptionPane.showMessageDialog(null, "Nama : " + nama + "\nUmur : " + umur + " Tahun\nAsal Kota : " + asalKota + "\nSebagai Buruh Per Bulan\n" + "Dengan gaji sebulan : " + buruh[4].gajiPerBulan(), "Data Lengkap Buruh", JOptionPane.INFORMATION_MESSAGE); System.exit(0); default: JOptionPane.showMessageDialog(null, "Mohon masukkan data dengan benar", "Error", JOptionPane.ERROR_MESSAGE); System.exit(0); } } } [/sourcecode] Lalu untuk contoh penggunaan interface, kode program dibawah ini. Masih dengan contoh kasus yang sama (Buruh): Pertama saya buat class interface Buruh [sourcecode language='java'] package Interface; public interface Buruh { public String dataBuruh(); public String gajiPerBulan(); } [/sourcecode] Lalu saya buat class-class implementasinya [sourcecode language='java'] package Interface; public class buruhPerJam implements Buruh { private String nama; private int umur; private int jam; public buruhPerJam(String nama, int umur, int jam) { this.nama = nama; this.umur = umur; this.jam = jam; } public int getJam() { return jam; } public void setJam(int jam) { this.jam = jam; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } public String dataBuruh() { return "Nama : " + nama + "\nUmur : " + umur + " Tahun\nJumlah jam sebulan : " + jam + gajiPerBulan(); } public String gajiPerBulan() { return "\nGaji yang diterima adalah : Rp. "+jam*20000; } } [/sourcecode] [sourcecode language='java'] package Interface; public class buruhHarian implements Buruh { private String nama; private int umur; private int hari; public buruhHarian(String nama, int umur, int hari) { this.nama = nama; this.umur = umur; this.hari = hari; } public int getHari() { return hari; } public void setHari(int hari) { this.hari = hari; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } public String dataBuruh() { return "Nama : " + nama + "\nUmur : " + umur + " Tahun\nJumlah hari sebulan : " + hari + gajiPerBulan(); } public String gajiPerBulan() { return "\nGaji yang diterima adalah : Rp. " + hari * 200000; } } [/sourcecode] [sourcecode language='java'] package Interface; public class buruhPerminggu implements Buruh { private String nama; private int umur; private int minggu; public buruhPerminggu(String nama, int umur, int minggu) { this.nama = nama; this.umur = umur; this.minggu = minggu; } public int getMinggu() { return minggu; } public void setMinggu(int minggu) { this.minggu = minggu; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } public String dataBuruh() { return "Nama : " + nama + "\nUmur : " + umur + " Tahun\nJumlah minggu sebulan : " + minggu + gajiPerBulan(); } public String gajiPerBulan() { return "\nGaji yang diterima adalah : Rp. " + minggu * 1000000; } } [/sourcecode] [sourcecode language='java'] package Interface; public class buruhBulanan implements Buruh { private String nama; private int umur; public buruhBulanan(String nama, int umur) { this.nama = nama; this.umur = umur; } public String getNama() { return nama; } public void setNama(String nama) { this.nama = nama; } public int getUmur() { return umur; } public void setUmur(int umur) { this.umur = umur; } public String dataBuruh() { return "Nama : " + nama + "\nUmur : " + umur +" Tahun"+ gajiPerBulan(); } public String gajiPerBulan() { return "\nGaji yang diterima adalah : Rp. " + 4000000; } } [/sourcecode] Lalu saya buat class main-nya: [sourcecode language='java'] package Interface; import javax.swing.JOptionPane; public class Main { public static void main(String[] args) { String nama; int umur; int jam; int hari; int minggu; int jenisBuruh; nama = JOptionPane.showInputDialog("Masukkan nama buruh : "); umur = Integer.parseInt(JOptionPane.showInputDialog("Masukkan umur buruh : ")); jenisBuruh = Integer.parseInt(JOptionPane.showInputDialog("Jenis Buruh\n" + "1. Buruh per Jam \n" + "2. Buruh Per Hari\n" + "3. Buruh Per Minggu\n" + "4. Buruh Per Bulan\n" + "Masukkan jenis buruh : ")); switch (jenisBuruh) { case 1: jam = Integer.parseInt(JOptionPane.showInputDialog("Masukkan jumlah jam kerja sebulan : ")); buruhPerJam bpj = new buruhPerJam(nama, umur, jam); JOptionPane.showMessageDialog(null, bpj.dataBuruh(),"Data Buruh", JOptionPane.PLAIN_MESSAGE); System.exit(0); case 2: hari = Integer.parseInt(JOptionPane.showInputDialog("Masukkan jumlah hari kerja sebulan : ")); buruhHarian bh = new buruhHarian(nama, umur, hari); JOptionPane.showMessageDialog(null, bh.dataBuruh(),"Data Buruh", JOptionPane.PLAIN_MESSAGE); System.exit(0); case 3: minggu = Integer.parseInt(JOptionPane.showInputDialog("Masukkan jumlah minggu kerja sebulan : ")); buruhPerminggu bpm = new buruhPerminggu(nama, umur, minggu); JOptionPane.showMessageDialog(null, bpm.dataBuruh(),"Data Buruh", JOptionPane.PLAIN_MESSAGE); System.exit(0); case 4: buruhBulanan bb = new buruhBulanan(nama, umur); JOptionPane.showMessageDialog(null, bb.dataBuruh(),"Data Buruh", JOptionPane.PLAIN_MESSAGE); System.exit(0); default: JOptionPane.showMessageDialog(null, "Mohon masukkan data dengan benar", "Error", JOptionPane.ERROR_MESSAGE); System.exit(0); } } } [/sourcecode]

About

Seseorang yang terus berusaha menjadi seorang programmer dan blogger sejati di jagad Raya ini.

Tagged with: , ,
Posted in Java Programming
2 comments on “Praktikum Ke Empat PSBO
  1. Assl.wrwb
    Salam kenal, wah ini yang saya cari…contoh kasus…terima kasih banyak..semoga Allah SWT. selalu menambah ilmu anda. Amin.

  2. atalavista says:

    ni contoh program yg bagus mas…
    kalo bisa di update contoh2 program yang lain..
    makasii..

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

Community

INDC

MUGI

WSS-ID

SQLServer-Indo

Indonesia Student Portal

Pengunjung
  • 120,657 orang
Yg lg OL di sini
site statistics
%d bloggers like this: