Method
Method Method dalam banyak bahasa pemrograman dikenal juga sebagai function atau procedure Dalam pemrograman berorientasi objek,fungsi dari method adalah sebagai suatu operasi atau kegiatan yang dapat dilakukan oleh objek Cara terbaik untuk membangun dan merawat program yang besar adalah dengan cara membagi program besar tersebut ke dalam bagian-bagian (modul) yang lebih kecil, yakni class dan method
Pendeklarasian Method tipedata namaMethod (tipedata namaParameter) { //statement } Contoh : String getNama(String nama){ return nama; void kali(int x, int y){
Pendeklarasian Method Keterangan : tipedata merupakan tipe data primitif ataupun tipe data referensi yang dikenal dalam Java tipedata juga dapat berupa void jika method tidak mengembalikan nilai apapun Parameter adalah sekumpulan variabel yang dideklarasikan dengan dipisahkan oleh koma (,) Parameter bersifat opsional, digunakan untuk menerima passing data dari luar method
Pendeklarasian Method Jika tipedata dari method bukan void maka harus menambahkan statement berikut di dalam method pada baris yang paling akhir return nilai_yang_dikembalikan; Nilai yang dikembalikan harus mempunyai tipe data yang sama dengan tipe data dari method
Pendeklarasian Method Catatan : Jika pada saat pendeklarasian metode tidak menggunakan parameter, maka pada saat pemanggilan metode tersebut juga tidak memakai parameter/argumen. Sebaliknya, jika pada saat pendeklarasian metode menggunakan parameter, maka pada saat pemanggilan metode tersebut juga harus menggunakan parameter/argumen yang sesuai.
Konversi Argumen Pada class Math di java.lang ada method sqrt yang dapat menerima nilai integer walaupun pada saat pendeklarasian method sqrt tersebut menerima nilai double. Ini terjadi karena method sqrt jika menerima nilai integer akan mengubahnya menjadi nilai double, kemudian diproses dalam pencarian sqrt (square root) nya. Contoh : System.out.println(Math.sqrt(4));
Contoh Procedure (tanpa Return)
Contoh Function (dengan Return)
public class Buku{ void cetakJudul(String judul){ System.out.println("Judul Buku : "+judul); } String cetakPengarang(String nama){ return nama; public static void main(String[] args){ Buku objBuku = new Buku(); objBuku.cetakJudul("Java How to Program"); String nama = cetakPengarang("Deitel"); System.out.println(nama);
Penggunaan this Keyword this digunakan bila nama varibel lokal = nama parameter
Overloading Method Terjadi jika terdapat beberapa method yang memiliki nama sama, namun memiliki parameter yang berbeda-beda Hal ini dapat terjadi karena dalam proses pemanggilan metode, Java melihat kepada nama metode, jumlah parameter dan tipe parameter dari metode tersebut
Contoh Overloading Method
Recursion Recursive method Memanggil dirinya sendiri (directly or indirectly) Method membagi masalah Base case Masalah yang lebih simple Sampai ketemu dengan base case
Fig. 6.14 Recursive evaluation of 5!. Final value = 120 5! 5! 5! = 5 * 24 = 120 is returned 5 * 4! 5 * 4! 4! = 4 * 6 = 24 is returned 4 * 3! 4 * 3! 3! = 3 * 2 = 6 is returned 3 * 2! 3 * 2! 2! = 2 * 1 = 2 is returned 2 * 1! 2 * 1! 1 returned 1 1 (a) Sequence of recursive calls. (b) Values returned from each recursive call. Fig. 6.14 Recursive evaluation of 5!.
Recursion public static void main(String args[ ]) { for (long counter=0; counter<=10; counter++) System.out.println(“Factorial” + counter + “=” + factorial(counter)); } public long factorial(long number) // base case if (number <= 1) return 1; // recursive step else return number * factorial( number - 1 ); } // end method factorial
Contoh Lain: Deret Fibonacci Fibonacci series Each number in the series is sum of two previous numbers e.g., 0, 1, 1, 2, 3, 5, 8, 13, 21… fibonacci(0) = 0 fibonacci(1) = 1 fibonacci(n) = fibonacci(n - 1) + fibonacci( n – 1 ) fibonacci(0) and fibonacci(1) are base cases
Fig. 6.17 Set of recursive calls for fibonacci (3). return + return 1 fibonacci( 2 ) fibonacci( 1 ) fibonacci( 0 ) return 0 fibonacci( 3 ) Fig. 6.17 Set of recursive calls for fibonacci (3).