Labels

Senin, 12 Maret 2012

Method Pada Java

Method adalah sekumpulan kode yang diberi nama, untuk merujuk ke sekumpulan kode tersebut
digunakan sebuah nama yang disebut dengan nama method. Method mempunyai parameter
sebagai input dan nilai kembalian sebagai output. Kita bisa juga membayangkan method itu
adalah sebuah mesin, ada input yang dibutuhkan dan output yang dihasilkan.
Deklarasai method terdiri dari beberapa bagian, bagian pertama adalah access modifer dari
method, apakah public, private, protected atau default. Bagian berikutnya adalah tipe kembalian
dari method, kalau method tidak mengembalikan apa-apa maka keyword void yang digunakan.
Bagian ketiga adalah nama method, sesuai dengan aturan java code convention, nama method
diawali dengan huruf kecil dan setiap kata setelahnya diawali dengan huruf besar (camel case).
Setelah nama method ada parameter. Sebuah method bisa juga tidak mempunyai parameter,
punya satu, dua dan seterusnya. Setelah java 5 ada feature yang disebut dengan varargs, feature
ini memungkinkan method untuk mempunyai jumlah parameter yang bervariasi. Varargs akan
kita bahas di bab tentang Java 5 Language enhancement, jadi tidak akan dibahas dalam bab ini.
Bagian terakhir dari method adalah deklarasi throws exception, dimana kita bisa
mendeklarasikan tipe exception yang akan dithrows oleh method. Bab tentang exception akan
membahas lebih lanjut tentang throws exception.
Nama method dan parameter adalah pembeda antara satu method dengan method yang lainya.
Kalau dua method namanya beda ya pasti dianggap dua buah method berbeda. Kalau dua method
namanya sama dianggap sebagai method yang berbeda kalau parameternya berbeda, method
dengan nama sama dan parameter berbeda ini disebut dengan overloading dalam konsep OOP.
Kalau method mempunyai nama yang sama dan parameter yang sama tetapi tipe return atau
throws exceptionya berbeda maka akan menyebabkan error pada waktu kompilasi. Jadi kalau
mendefnisikan method baru, pastikan bahwa namanya tidak sama dengan method lain atau
setidaknya parameternya berbeda baik dari sisi jumlahnya, tipe parameter atau posisi parameter.
Dari penjelasan di atas, struktur method seperti di bawah ini adalah benar:

public void main(String[] args){ }
public String methodReturnString(){ return "ini string"; }
private void methodBerparameter(String parameter1, Integer parameter2) {}
public void methodThrowsException() throws IOException {}
protected String protectedMethod(Sting parameter1, Integer parameter2)
throws IOException { return "ini string"; }
public void methodBerbeda() {}
public void methodBerbeda(String parameter1) {}
public void methodBerbeda(String parameter1, Integer parameter2) {}
public void methodBerbeda(Integer parameter1, String parameter2) {}
public void methodBerbeda(Double parameter1, Double parameter2) {} 
 
Ada beberapa keyword yang bisa ditambahkan dalam deklarasi method. Keyword yang paling
sering digunakan adalah static. Bagian kode Java yang dideklarasikan dengan menggunakan
static akan menjadi anggota dari class, bukan anggota dari object, silahkan kembali ke bab
berikutnya kalau masih belum bisa membedakan mana class dan mana object.
Karena method yang ditandai dengan static adalah bagian dari class, maka bisa diakses
langsung dari nama Class itu sendiri, tidak perlu membuat object. Method static hanya bisa
memanggil method lain dalam satu class yang juga ditandai static. Method main yang biasa
kita gunakan untuk menjalankan aplikasi java juga ditandai dengan static, misalnya kita akan
memanggil method lain dari method static, maka method lainya ini juga harus ditandai dengan
static. Kita lihat contoh berikutnya :
 
public class StaticTest {
public static void main(String[] args) {
//static method memanggil static method lain dalam class yang sama
contohMethodStatic();
//method static juga bisa dipanggil dari nama classnya
StaticTest.contohMethodStatic();
}
public static void contohMethodStatic() {
System.out.println("method static dipanggil");
}
} 
Kalau kode di atas dicompile, kemudian dijalankan maka hasilnya seperti di bawah ini :
$ javac StaticTest.java
$ java StaticTest
method static dipanggil
method static dipanggil
$

terlihat bahwa method contohMethodStatic dipanggil dua kali, baik menggunakan nama class
maupun tidak.
Keyword lain yang bisa digunakan oleh method adalah fnal, synchronize dan native. Keyword
fnal akan menyebabkan method tidak bisa dioverride, kita bahas topik ini di bab OOP. Keyword
synchronize akan menyebabkan hanya satu thread yang bisa mengeksekusi method ini dalam
satu waktu, kalau ada thread lain maka harus mengantri sampai thread sebelumnya selesai
menjalankan method tersebut. Keyword native menandai implementasi method akan
diletakkan dalam kode native, misalnya ditulis menggunakan C/C++, kemudian menggunakan
Java Native Interface (JNI) untuk mengakses implementasi method tersebut. 
 

1 komentar: