Function atau method, mungkin dari temen-temen masih aneh apa itu function atau method. Function atau method itu sebenarnya salah satu cara untuk mengelompokan suatu blok atau sekumpulan perintah dengan tujuan reuseable, easy to debuging, dan readable.

Jaman sekarang banyak programmer menggunakan method ini sebagai service atau memecah bagian yang besar menjadi lebih kecil, mungkin dari temen-temen akan bertanya

“Kang, memecah bagian menjadi lebih kecil itu gimana?

Jadi biasanya klo kita koding, khan ya udah maunya yang simple ja ya. semuanya ditulis dalam satu method contohnya:

public class DepositoApplication{

    public void hitungBungaDeposito(){
        // hitung bunga harian yang klo dihitung secara baris misalkan 50baris

        // hitung bunga bulanan dari proses hitung bunga harian selanjutnya bunga bulanan

        // hitung pajak nasabah, dari hitung bunga bulanan pasti mengitung pajaknya

        // hitung armortisasi nasabah, dll

        // terus sampe bengek ditulis di method ini.
    }
}

Nah ini khan baru berupa deskripsi aja, kebayang gak klo misalnya pake koding beneran?

Jadi akan lebih baik jika kita pisahkan menggunakan method yang saling panggil-memanggil. Seperti berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
public class HitungDeposito{

    public static void hitungBungaHarian(){
        // hitung bunga harian untuk modul deposito
    }

    public static void hitungBungaBulanan(){
        // hitung bunga bulanan untuk modul deposito
    }

    public static void hitungAmortisasi(){
        // hitung amortisasi untuk nasabah tersebut
    }

    public static void hitungPajak(){
        // hitung pajak nasabah setelah bunga diterima
    }

    public static void main(String[] args){
        hitungBungaHarian();
        hitungBungaBulanan();
        hitungPajak();
        hitungAmortisasi();
    }
}

Ok perumpamaan tadi saya harap bisa dipahami ya. Baiklah jadi sekarang kita masuk kemateri tentang method atau function.

Funcation atau method di java pada dasarnya punya padanannya yaitu seperti berikut:

public class DefMethod {

    // header declaration
    modifier return_type namaMethodOrFunction () {
        // statement here!
    }
}

Aturan dalam membuat method

Dalam class

Method harus berada dalam class tidak boleh berada diluar class. Seperti berikut:

1
2
3
public class MethodOutsideClass{
}
// public void method(){ } # this is not allowed

Void or Return type

Setiap function pasti memiliki nilai kembalian baik yang tidak bernilai (void) atau pun memiliki nilai. Untuk function yang tidak memiliki nilai kita harus definisikan function tersebut dengan keyword void seperti berikut contohnya:

1
2
3
4
5
6
public class MethodVoid{

    public static void hitungBungaDeposito(){
        // here your statement
    }
}

Sedangkan untuk function yang memiliki nilai kembalian atau Return type kita harus definisikan dengan tipe data yang mau kita kembalikan contohnya di method tersebut, saya mau mengeluarkan data yang bertipe java.math.BigDecimal maka kita harus definisinkan object tersebut kemudian untuk nilainya dibagian body method tersebut gunakan keyword return dengan disambung dengan expresion kita. contohnya seperti berikut:

1
2
3
4
5
6
public class MethodReturnTypeBigDecimal {

    public static java.math.BigDecimal hitungBungaTabungan(){
        return new java.math.BigDecimal(1000000);
    }
}

Penamaan method atau function

Penamaan method, sama seperti variable menggunakan sistem camel-case. Seperti berikut penamaan yang benar hitungBungaDeposito, setValue, getValue, tentukanNilaiRupiah dll.

Call method in main(String[])

Untuk menanggil method didalam method main(String[]), untuk saat ini kita di method yang mau kita panggil harus menggunakan keyword static karena method main(String[]) ini juga bernilai static, klo belum paham apa itu static nanti saya akan jelaskan di materi selanjutnya tpi make sure methodnya yang kita mau panggil bernilai static juga. Untuk memangil method dalam method main(String[]) dalam satu class yang sama kita bisa panggil methodnya seperti berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public class MethodCallMethod {

    public static Integer umurSaya (){
        return 25;
    }

    public static String namaSaya (){
        return "Dimas Maryanto";
    }

    public static void sayHalo (){
        System.out.println(
            "Halo nama saya adalah "+ 
            namaSaya() + 
            ", saya berusia " + 
            umurSaya()+ 
            " salam kenal");
    }

    public static void main(String[] args){
        sayHalo();
    }

}

Tidak boleh sama

Didalam sebuah class tidak boleh ada nama method yang sama meskipun nanti akan ditemukan nama yang sama tetapi ada beberapa perbedaan di dalamnya.