THOUSANDS OF FREE BLOGGER TEMPLATES

Jumat, 24 Juni 2011

Modul 5 Interface

             Interface adalah jenis khusus dari blok yang hanya berisi method signature(atau constant). Interface mendefinisikan sebuah(signature) dari sebuah kumpulan method tanpa tubuh..Interface mendefinisikan sebuah cara standar dan umum dalam menetapkan sifat-sifat dari class-class.
            Mereka menyediakan class-class, tanpa memperhatikan lokasinya dalam hirarki class, untuk mengimplementasikan sifat-sifat yang umum. Dengan catatan bahwa interface-interface juga menunjukkan polimorfisme, dikarenakan program dapat memanggil method interface dan versi yang tepat dari method yang akan dieksekusi tergantung dari tipe object yang melewati pemanggil method interface.

Abstract method-method
          Di dalam class abstract dapat didefinisikan atribut-atribut dan method-method. Atribut dan method yang didefinisikan dalam klass abstract dimaksudkan merupakan sesuatu yang umum dan terdapat pada sub-kelas sub-kelas turunannya. Suatu abstract method didefinisikan dengan cukup mendeklarasikan namanya pada class abstract dan meng-override pada masing-masing kelas turunannya dengan menyesuaikan dengan kebutuhan kelas turunannya tersebut. Suatu class harus didefinisikan sebagai class abstract apabila minimal ada satu method yang didefinisikan sebagai abstract method.

Overriding
            Jika dalam suatu subclass kita mendefinisikan sebuah method yang sama dengan yang dimiliki superclass, maka method yang kita buat dalam subclass dikatakan meng-override superclass-nya. Sehingga jika kita mencoba memanggil method tersebut dari instance subclass yang kita buat, maka method milik subclasslah yang aka dipanggil, bukan lagi method milik superclass.
Overriding mempunyai ciri-ciri sebagai berikut :
1. Nama method harus sama
2. Daftar parameter harus sama
3. Return type harus sama
Beberapa aturan yang perlu diperhatikan :
• Mode akses overriding method harus sama atau lebih luas daripada overriden method.
• Subclass hanya boleh meng-override method super class satu kali saja, tidak boleh ada lebih dari satu method pada kelas yang sama yang sama persis.

 instansiasi
         Objek adalah instansiasi atau perwujudan dari Class.Kita membuat objek dari kelas dengan cara instansiasi. Objek yang akan diciptakan nantilah yang akan menjadi acuan utama dalam pemrograman berorientasi objek (OOP)
Bentuk umum instansiasi:
<nama_kelas> <objek> = new <konstruktor>();
Contoh:
Tabung drum = new Tabung();

Implementasi

        Pada bagian kegiatan praktikum ini, kita  akan belajar membuat interface dan mengimplementasikannya dalam sebuah class.Source codenya sebagai berikut:
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

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:
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:




0 komentar:

Posting Komentar