Pages

Senin, 02 Maret 2015

Method



Method merupakan suatu operasi berupa fungsi-fungsi yang dapat dikerjakan oleh suatu object. Method didefinisikan pada class akan tetapi dipanggil melalui object.
Metode menentukan perilaku objek, yakni apa yang terjadi ketika objek itu dibuat serta berbagai operasi yang dapat dilakukan objek sepanjang hidupnya.
Metode memiliki 4 (empat) bagian dasar :
  1. Nama metode
  2. Tipe Objek atau tipe primitive yang dikembalikan metode.
  3. Daftar parameter.
  4. Badan atau isi metode.


1.    Method Overloading
Overloading  adalah mendefinisikan dua atau lebih method di dalam kelas yang sama, dengan nama yang sama, namun dengan deklarasi parameter yang berbeda.
Java interpreter mampu membedakan method mana yang dieksekusi dengan mengenali tipe parameter yang dilewatkan ke method, serta mengenali return valuenya.
Tugas dari method-method yang dioverloading tersebut berbeda.

public class Perkalian {
private double pangkat(int a, int b) {
double hasil = 1.0;
//kode program
return hasil;
}

public static void main(String[] args) {
Perkalian kali = new Perkalian();
System.out.println(kali.pangkat(10,308));
}
}

2.      Method Construktor
Konstruktor adalah Metode yang dapat digunakan untuk memberikan nilai awal saat objek di ciptakan. Metode ini di panggil secara otomatis oleh java ketika new dipakai untuk menciptakan instan kelas.
Telah tersirat pada pembahasan sebelumnya, Constructor sangatlah penting pada pembentukan sebuah object. Constructor adalah method dimana seluruh inisialisasi object ditempatkan.
Berikut ini adalah property dari Constructor :
·   Constructor memiliki nama yang sama dengan class
·   Sebuah Constructor mirip dengan method pada umumnya, namun hanya informasi – informasi berikut yang dapat ditempatkan pada header sebuah constructor, scope atau identifikasi pengaksesan (misal: public), nama dari konstuktor dan parameter.
·   Constructor tidak memiliki return value
·   Constructor tidak dapat dipanggil secara langsung, namun harus dipanggil dengan menggunakan operator new pada pembentukan sebuah class.

contoh konstruktor:
public class Construktor{
double gaji;
String idkaryawan,nama,bagian,jabatan,alamat;
int umur;

public Construktor(String idkaryawan,String nama,double gaji){
  this.idkaryawan=idkaryawan;
  this.nama=nama;
  this.gaji=gaji;
}

public Construktor(String idkaryawan,String nama,String bagian,String jabatan){
  this.idkaryawan=idkaryawan;
  this.nama=nama;
  this.bagian=bagian;
  this.jabatan=jabatan;
}

public Construktor(String idkaryawan,String nama,String bagian,String jabatan,String alamat,int umur){
  this.idkaryawan=idkaryawan;
  this.nama=nama;
  this.bagian=bagian;
  this.jabatan=jabatan;
  this.alamat=alamat;
  this.umur=umur;
}

public static void main(String[]args){
Construktor A=new Construktor("ID1234","SILVIA TAKARINA",2000000);
System.out.println("ID ANDA ADALAH="+A.idkaryawan +
"\n NAMA ANDA ADALAH=\n" +A.nama +
"\n DAN GAJI ANDA ADALAH=" +A.gaji);

Construktor B=new Construktor("ID1234","SILVIA TAKARINA","ADMINISTRATOR","KEPALA BIDANG");
System.out.println("ID ANDA ADALAH="+B.idkaryawan +
"\n NAMA ANDA ADALAH=" +B.nama +
"\n BAGIAN ANDA=" +B.bagian +
"\n JABATAN="+ B.jabatan );


Construktor C=new Construktor("ID1234","SILVIA TAKARINA","ADMINISTRATOR","KEPALA BIDANG","PADANG",20);
System.out.println("ID ANDA ADALAH="+C.idkaryawan +"\n NAMA ANDA ADALAH=" +C.nama +"\n BAGIAN ANDA=" +C.bagian +
"\n JABATAN="+ C.jabatan +"\n ALAMAT=" +C.alamat +"\n UMUR=" +C.umur);
}
}.

3.    Assesor dan Mutator
Encapsulation adalah proses pengelompokan property dan method dengan memberikan hak akses kepada property dan method sehingga property hanya dapat di akses melalui method accessor dan tidak dapat di rubah tanpa melalui prosedur yang seharusnya yang diatur pada method mutator.
Dalam OOP Encapsulation di wujudkan dalam bentuk “class”. Dalam sebuah class terdapat property dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier, access modifier terdiri dari private, protected, dan public.
·         private
memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
·         protected
memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
·         public
memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut
.
Contoh penggunaan dalam bahasa pemrograman Java:
private String name;
protected String address;
public String getName(){…}
Dalam hal property dan method terdapat dua jenis yaitu static dan dynamic.
Static property dan method hanya dimiliki oleh class yaitu semua nilai dari static property dan method adalah sama dalam semua obyek, maka dari itu penggunaannya cukup dengan menggunakan class bukan obyek
deklarasi:
public static String getStudentCount(){…}
penggunaan:
Student.getStudentCount();
Dynamic property adalah property dan method yang tergantung obyek yang dibentuknya sehingga penggunaannya membutuhkan obyek yang telah terbentuk. Secara default deklarasi property adalah dynamic sehingga tidak dituliskan (implisit)
deklarasi:
public String getName(){…}
penggunaan:
Student s = new Student(“Anna”);
s.getName();
Sebagai contoh, kita ambil kelas Mobil dan memodifikasinya untuk mengimplementasikan encapsulation.
public class Mobil {
// cunstructor dari kelas Mobil
public Mobil() {
System.out.println(“cunstructor kelas Mobil..”);
}
// atribut dari kelas Mobil
private String tipeMobil;
private String warna;
/************************************
*  method dari kelas Mobil sebelumnya
***********************************/
// method accessor kelas Mobil
public String getTipeMobil() {
return tipeMobil;
}
public String getWarna() {
return warna;
}
// method mutator kelas mobil
public void setTipeMobil (String tipeMobil) {
this.tipeMobil = tipeMobil;
}
public void setWarna (String warna) {
this.warna = warna;
}
}
Perhatikan bahwa atribut dari tipeMobil dan warna memiliki access modifier private yang berarti bahwa atribut tersebut tidak dapat diakses dari kelas manapun selain kelas Mobil. Namun atribut masih tetap dapat dipakai dengan menggunakan accessor dan mutator method. Inilah contoh sederhana dalam menyembunyikan informasi suatu kelas dari kelas lain atas dasar penyederhanaan kompleksitas pemrograman. Kelas lain tidak perlu tahu kompleksitas desain dan struktur dari suatu kelas yang menjadi internal fungsi dari kelas tesebut, namun tetap bisa mendapatkan informasi yang diperlukan.

 4.      Construktor Overloading
Keyword yang digunakan pada method ini adalah this. Kata kunci this mengacu ke variabel instant dari kelas tersebut. Berguna untuk mengakses variabel instan yang didefinisikan di parameter. Biasanya digunakan dalam konstruktor atau method. Digunakan dalam untuk menyatakan objek yang sekarang.
Contoh:

public class Consoverload{
    String judulBuku,pengarang,Penerbit,thnTerbit,idBuku;
    int jumlah;
    double harga;
 public ConsOverload(String idBuku,String judulBuku,String pengarang,String penerbit){
 this.idBuku=idBuku;
 this.judulBuku=judulBuku;
 this.pengarang=pengarang;
 this.Penerbit=penerbit;
 }

public ConsOverload(String idBuku,String judulBuku,String pengarang,String penerbit,String thnTerbit){
 this.idBuku=idBuku;
 this.judulBuku=judulBuku;
 this.pengarang=pengarang;
 this.Penerbit=penerbit;
 this.thnTerbit=thnTerbit;
}

public ConsOverload(String idBuku,int jumlah,double harga){
this.idBuku=idBuku;
this.jumlah=jumlah;
this.harga=harga;
}

public static void main(String[]args){
  ConsOverload A=new ConsOverload("1234","Laskar Pelangi","A.FUADI","GRAMEDIA UTAMA");
    System.out.println("ID ANDA" + A.idBuku + "nama buku" +A.judulBuku +" pengarang" +A.pengarang +"Penerbit" +A.Penerbit);
  ConsOverload B=new ConsOverload("1234","Laskar Pelangi","A.FUADI","2002",50000);
    System.out.println("ID ANDA" + B.idBuku + "nama buku" +B.judulBuku +" pengarang" +B.pengarang +"tahun terbit" +B.thnTerbit+"harga="+B.harga);
  ConsOverload C=new ConsOverload("1234","3",50000);
    System.out.println("ID ANDA" + C.idBuku + "jumlah" +C.jumlah +" pengarang" +"harga="+B.harga);
}
}

5.      Method Overriding
Method subclass override terhadap method superclass ketika subclass mendeklarasikan method ang signaturenya serupa ke method dalam superclass. Signature dari method hanyalah informasiyang ditemukan dalam definisi method bagian atas. Signature mengikutkan tipe return, nama dandaftar parameter method tetapi itu tidak termasuk acces modifier dan tipe yang lain dari kata kunci eperti final dan static. Inilah perbedaan dari method overloading. Method overloadingsecara singkat didiskusikan dalam sub bagian pada kata kunci this.
class Superclass {
void display(int n) {
System.out.println("super: " + n);
}
}
class Subclass extends Superclass {
void display(int k) { //method overriding
System.out.println("sub: " + k);
}
}
class OverrideDemo {
public static void main(String args[]) {
Subclass SubObj = new Subclass();
Superclass SuperObj = SubObj;
SubObj.display(3);
((Superclass)SubObj).display(4);
}
}

6.   Method Biasa (Tanpa Parameter)
Contoh
public class ImplementasiMethodNonVoid {
public static void main(String[] args) {
//instantiasi objek KaryawanKaryawan
karyawan001 = new Karyawan();
//mengisi data pada objek Karyawan
karyawan001.ID = "K001";
karyawan001.nama = "Agus Ramadhan";
karyawan001.divisi = "Keuangan";
karyawan001.gaji = 1850000;/
/memanggil method
cetakDAta()karyawan001.cetakData();/
/memanggil method
hiungSumbanganZakat()
System.out.println("Sumbangan Zakat : " +karyawan001.hitungSumbanganZakat());
}}

7.  Method  Berparameter
Dengan adanya parameter, sebuahmethod dapat bersifat dinamis dan general.Artinya, method  tersebut dapat mengembalikan nilai yang beragam sesuai dengan nilai parameter yang dilewatkannya.
Contoh

class TipeStringKeClass{
    void methodClass(Class cls){
        //disini saya ingin menjalankan TestRunner(JUnit) dari file java
        junit.swingui.TestRunner.run(cls);
    }


    void methodString(){
        String textField_dot_getText = "HelloWorld.class";
       
        //ini Error Karena tidak sesuai String dan Class
        //Gak bisa parsing String ke Class
        methodClass(textField_dot_getText);
    }
}


 

Blogger news

Blogroll

About