Jumat, 24 Juni 2011

Modul 5 Praktikum PBO : Interface

Hai temen2... udah modul 5 ja nih, gak kerasa ya... lgsung ja bahas pa ja yang di modul 5 ni, cekidot!!!!

Interface adalah kelas abstract yang sepenuhnya. Yang berarti, semua metodenya adalah abstract. Ini bertujuan untuk menerapkan pewarisan jamak, yaitu suatu kelas tertentu dapat mewarisi kemampuan kelas lebih awal dari nenek moyang. Serta adanya kewajiban bagi kelas tersebut untuk mendefinisikan ulang semua metode yang ada pada kelas induk.

Yang dimaksud abstract method adalah method yang tidak memiliki body (hanya deklarasi method). Selain itu, pada interface juga dikenal dengan Overriding Method, yaitu fungsi yang dibuat pada class Anak di mana sebenarnya sudah diturunkan dari class induknya, sehingga fungsi pada anaknya meng-override ( menimpa ) fungsi dari induknya.

Pada interface juga dikenal dengan namanya instansiasi seperti halnya pada modul 1 yaitu Instansiasi objek bisa dilakukan dengan perintah new. Ketika suatu instansiasi class (pembuatan objek) dilakukan, maka secara otomatis akan memanggil function Constuctor milik class tersebut.

Implementasi

Pada bagian kegiatan praktikum ini, kita akan belajar membuat interface dan mengimplementasikannya dalam sebuah class. Source code seperti dibawah ini:


/*

import javax.swing.JOptionPane;
interface mycomparableee{
boolean greaterThan(Object obj);
boolean lessThan(Object obj);
boolean equal(Object obj);
}
interface Constants{
int min=10;
int max=100;
}
class FourDigitsNumber implements Constants, mycomparableee {
private int value;
public FourDigitsNumber(int value) {
/*latihan 1: atur agar nilai yang diinputkan dalam
constructor hanya berada di antara min - max
*/
this.value=value;
}
/*latihan 2: tambahkan method get untuk mengakses value*/

/*overriding method greaterThan*/
public int getValue(){
return value;
}
public boolean greaterThan(Object obj) {
/*casting from superclass to subclass*/
FourDigitsNumber number = (FourDigitsNumber)obj;
return ( value > number.getValue() );
}
public boolean lessThan(Object obj) {
/*casting from superclass to subclass*/
FourDigitsNumber number = (FourDigitsNumber)obj;
return ( value < number.getValue() ); } public boolean equal(Object obj) { /*casting from superclass to subclass*/ FourDigitsNumber number = (FourDigitsNumber)obj; return ( value == number.getValue() ); } /*latihan 3: lengkapi overriding method interface*/ } class ExInterface { public static void main(String [] args) { /*latihan 4: modifikasi agar user dapat menginputkan data*/ int value; String str=JOptionPane.showInputDialog("Masukkan nilai : "); value=Integer.parseInt(str); System.out.println("nilai anda: "+value); if ((value > 10) & (value < 100)) System.out.println("true"); else System.out.println("false"); } }


Hasil Running:


Tugas Akhir

Tugas Akhir kali ini, saya mendapat 2 soal untuk program, yaitu:
  • Segitiga, Lingkaran dan Segiempat adalah bentuk geometri yang dapat dihitung luasnya. Gambarkan diagram hirarki class untuk kasus ini. Kemudian tulis kode program untuk class dan buat program sederhana untuk keperluan pengujian: atur array dengan elemen berisi referensi ke setiap bentuk geometri di atas, masukkan data ke dalamnya dan gunakan untuk memanggil method guna menghitung luas dari setiap bentuk geometri tersebut.
Source codenya sebagai berikut:
Class Luas.java

/*

import javax.swing.*;
interface Induk {
double LuasSegi3(double a, double t);
double LuasSegi4(double s);
double Lingkaran(double r);
}
interface Constants{
double phi = 3.14;
}
class Luas implements Induk,Constants{
double a, t, s, r, LuasSegi3, LuasSegi4, Lingkaran;
Luas(double a,double t,double s,double r) {
this.a = a;
this.t = t;
this.s = s;
this.r = r;
}
public double LuasSegi3(double a, double t) {
return (0.5 * a * t);
}
public double LuasSegi4(double s) {
return (s * s);
}
public double Lingkaran(double r) {
return (phi * r * r);
}
public void CetakHasil() {
System.out.println("LuasSegi3 = "+LuasSegi3(a,t));
System.out.println("LuasSegi4 = "+LuasSegi4(s));
System.out.println("Lingkaran = "+Lingkaran(r));
}
}
class LuasBidang{
public static void main(String[] args) {
double a, t, s, r, LuasSegi3, LuasSegi4, Lingkaran;
System.out.println("Masukkan nilai alas : ");
a=Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai alasnya ","Input",JOptionPane.QUESTION_MESSAGE));
System.out.println(+a);
System.out.println("Masukkan nilai tinggi : ");
t=Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai tingginya ","Input",JOptionPane.QUESTION_MESSAGE));
System.out.println(+t);
System.out.println("Masukkan nilai sisinya : ");
s=Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai sisinya ","Input",JOptionPane.QUESTION_MESSAGE));
System.out.println(+s);
System.out.println("Masukkan nilai jari2 : ");
r=Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai jarinya ","Input",JOptionPane.QUESTION_MESSAGE));
System.out.println(+r);
Luas Luas1 = new Luas(a,t,s,r);
Luas1.CetakHasil();
}
}


Hasil Running:



  • Buatlah sebuah interface dengan nama MtkDasar yang berisi dua buah method head atau abstract
    String tambah(int a, int b);
    String kurang(int a, int b);
    Buatlah sebuah class dengan nama Pecahan yang terdiri dari: dua variabel bertipe int yaitu pembilang dan penyebut, sebuah constructor dengan dua parameter bertipe int, method set( ) / get( ), method toString( ). Pecahan harus mengimplementasikan interface MtkDasar. Buatlah sebuah class CobaPecahan yang berfungsi menguji class Pecahan.
Source codenya dibawah ini:
Hasil Running:

Tidak ada komentar:

Posting Komentar