Dasar Java - Method Parameter, Overloading, Scope, Recursion, Method vs Function
Parameter dalam Java adalah nilai yang dilewatkan ke dalam sebuah method atau fungsi. Parameter dapat digunakan untuk memberikan input atau argumen kepada method agar dapat melakukan operasi tertentu pada data yang diberikan. Sintaks untuk mendeklarasikan parameter dalam method Java adalah sebagai berikut:
Penjelasannya sebagai berikut :
⮚ modifier adalah modifier akses (public, private, atau protected) untuk method tersebut.
⮚ returnType adalah tipe data dari nilai yang dikembalikan oleh method.
⮚ methodName adalah nama dari method tersebut.
⮚ parameterType adalah tipe data dari parameter yang akan diterima oleh method.
⮚ parameterName adalah nama dari parameter tersebut.
Contoh penggunaan:
Pada contoh di atas, method tambah memiliki dua
parameter bertipe data int yaitu a dan b. Method ini akan mengembalikan hasil
penjumlahan dari kedua parameter tersebut. Untuk memanggil method dengan
parameter, nilai yang akan diberikan ke dalam parameter harus sesuai dengan
tipe data parameter yang dideklarasikan dalam method.
Contoh penggunaan:
Pada contoh di atas, program akan memanggil method tambah dengan memberikan nilai 5 dan 7 sebagai input ke dalam parameter a dan b. Method akan mengembalikan hasil penjumlahan 12, yang kemudian akan dicetak ke layar menggunakan pernyataan System.out.println (hasil).
Overloading adalah kemampuan dalam Java untuk memiliki dua atau lebih method dengan nama yang sama dalam sebuah class, tetapi dengan parameter yang berbeda. Dengan menggunakan overloading, kita dapat menulis beberapa method dengan nama yang sama tetapi dengan perilaku yang berbeda.
Overloading memungkinkan kita untuk menulis kode yang lebih efisien karena kita dapat menggunakan satu nama method untuk beberapa tugas yang berbeda. Hal ini juga membuat kode lebih mudah dibaca dan dimengerti.
Overloading method dilakukan dengan mengubah parameter yang dideklarasikan dalam method. Perbedaan dalam parameter tersebut dapat berupa tipe data parameter, jumlah parameter, atau urutan parameter.
Contoh penggunaan overloading method:
Pada contoh di atas, class PersegiPanjang memiliki tiga method dengan nama hitungLuas. Ketiga method tersebut memiliki nama yang sama, tetapi berbeda dalam parameter yang diterima. Method pertama menerima dua parameter bertipe int yaitu panjang dan lebar, method kedua menerima satu parameter bertipe int yaitu sisi, dan method ketiga menerima dua parameter bertipe double yaitu panjang dan lebar.
Dengan menggunakan overloading, kita dapat memanggil method hitungLuas dengan cara yang sama untuk semua tipe parameter yang diterima, seperti contoh berikut:
Pada contoh di atas, program memanggil method hitungLuas dengan parameter yang berbeda, yaitu dua parameter int, satu parameter int, dan dua parameter double. Karena nama method sama, Java akan secara otomatis memilih method yang tepat berdasarkan parameter yang diberikan.
Scope (lingkup) dalam Java mengacu pada area atau ruang lingkup dimana sebuah variabel, method, atau blok kode tertentu dapat diakses atau digunakan. Java memiliki tiga jenis scope, yaitu:
1) Block Scope, Block scope terdiri dari variabel yang dideklarasikan di dalam sebuah blok kode, seperti blok kode yang digunakan dalam struktur if, while, for, dan sebagainya. Variabel yang dideklarasikan di dalam blok kode hanya dapat diakses di dalam blok kode tersebut.
Contoh penggunaan:
2) Method Scope, Method scope terdiri dari variabel yang dideklarasikan di dalam method. Variabel yang dideklarasikan di dalam method hanya dapat diakses di dalam method tersebut.
Contoh penggunaan:
3) Class Scope, Class scope terdiri dari variabel atau method yang dideklarasikan di dalam sebuah class. Variabel atau method yang dideklarasikan di dalam class dapat diakses dari seluruh method dalam class tersebut.
Contoh penggunaan:
Pada contoh di atas, variabel a dideklarasikan di dalam class Example. Variabel ini dapat diakses dari method printA karena method tersebut berada dalam class yang sama.
Recursion (rekursi) adalah teknik pemrograman di mana sebuah method memanggil dirinya sendiri untuk menyelesaikan sebuah tugas. Dalam Java, recursion sangat berguna dalam menyelesaikan masalah yang kompleks dan dapat menghemat kode.
Contoh sederhana penggunaan recursion adalah dengan menghitung faktorial. Faktorial dari sebuah bilangan adalah hasil kali semua bilangan dari 1 hingga bilangan tersebut. Faktorial dari 5, misalnya, adalah 1 x 2 x 3 x 4 x 5 = 120.
Berikut adalah contoh implementasi rekursi untuk menghitung faktorial:
Dalam pemrograman Java, istilah "method" dan "function" sering digunakan secara bergantian dan dapat memiliki arti yang sama, yaitu sebuah blok kode yang dapat dipanggil dan digunakan kembali. Namun, secara umum, terdapat perbedaan kecil antara kedua istilah tersebut.
Method adalah blok kode yang terdapat dalam sebuah Class dan digunakan untuk melakukan suatu tindakan tertentu, seperti memanipulasi variabel atau menghitung sebuah nilai. Method selalu terkait dengan sebuah objek dan dapat diakses melalui objek tersebut. Dalam Java, setiap program harus memiliki method main() yang merupakan titik awal eksekusi program.
Contoh penggunaan method dalam Java:
Pada contoh di atas, terdapat sebuah method calculateLength yang digunakan untuk menghitung panjang dari sebuah teks. Method tersebut menerima sebuah parameter bertipe String dan mengembalikan sebuah nilai bertipe int. Sementara itu, function adalah blok kode yang juga dapat digunakan untuk melakukan suatu tindakan tertentu, tetapi tidak terkait dengan sebuah objek. Function dapat dipanggil dari mana saja dalam program dan dapat mengembalikan sebuah nilai.
Namun, dalam Java, istilah "function" tidak digunakan secara resmi. Sebagai gantinya, Java menggunakan istilah "method" untuk semua blok kode yang dapat dipanggil dan digunakan kembali. Jadi, secara singkat, perbedaan antara method dan function dalam Java adalah bahwa method selalu terkait dengan sebuah objek dan dapat diakses melalui objek tersebut, sementara function tidak terkait dengan objek dan dapat dipanggil dari mana saja dalam program.