FEMI DWI ASTUTI
Method
merupakan bagian code yang dapat dipanggil oleh program utama atau method lain untuk melakukan suatu fungsi tertentu.
Beberapa ciri method:
Dapat me-return value atau tidak sama sekali.
Setelah method telah selesai dieksekusi, proses
Program java yang sudah dibuat sebelumnya
sebenarnya juga sudah berisi sebuah method yaitu main().
Method main adalah sebuah method dalam
java yang namanya harus sama. Method main digunakan pada saat program dijalankan
untuk memanggil perintah-perintah java atau method yang lain. Tanpa main, program
Format method secara umum
tipe_return-value nama_method(parameter1,
parameter2, …, parameterN) {
deklarasi dan pernyataan; }
deklarasi method mempunyai 6
komponen
1. Modifier - seperti public, private, dan yang
lain yang akan kita pelajari kemudian.
2. Tipe kembalian (return type)—tipe data dari
nilai yang dikembalikan oleh method, atau void jika method tidak mempunyai nilai kembalian.
3. Nama method—aturan untuk penamaan
Deklarasi method mempunyai 6
komponen
4. Daftar parameter – pemisah antar parameter input adalah koma, diawali oleh tipe datanya, yang diletakkan diantara tkita kurung ( …daftar parameter…. ). Jika tidak ada parameter, harus menggunakan kurung buka tutup saja ( ).
5. Daftar exception—tidak akan masuk dalam pembahasan di sini
Penamaan method
Meskipun penamaan method bisa saja
merupakan identifier yang benar, kesepakatan pemberian nama method tetap membatasi.
Secara kesepakatan, nama method harus sebuah
kata kerja dalam huruf kecil atau beberapa kata yang dimulai dengan kata kerja huruf kecil,
diikuti dengan kata sifat, benda, dan lain-lain.
Dalam penamaan beberapa kata huruf pertama
Contoh penamaan
Lari
lariCepat
getLatarBelakang getDataAkhir
bandingkanDengan setX
Method
Dalam pemanggilan method / fungsi anggota
kelas, ada beberapa fasilitas yang disediakan :
1.pemanggilan method / fungsi tanpa
menyertakan parameter / argument
2.pemanggilan method / fungsi dengan
menyertakan parameter / argument
3.pemanggilan method / fungsi dengan
Method tanpa parameter
Contoh:
1.public class Fungsi1{ 2.
3. public static void garis(){ 4.
System.out.println("================");
5. }
6.
7. public static void main(String args[]){
8. garis();
9. }
Method diatas bersifat static dan bertipe void. Method yang bersifat static bisa langsung dipanggil dengan nama methodnya saja.Sebuah method juga bisa dipanggil lebih dari satu kali.
1. public class Fungsi2{
2. public static void kalimat(){
3. System.out.println("Di dalam method kalimat"); 4. }
5.
6. public static void main(String args[]){ 7. kalimat();
8. System.out.println("Di dalam main"); 9. kalimat();
output
Di dalam method kalimat Di dalam main
Method juga bisa dituliskan di bawah method utama
1. public class Fungsi2{
2. public static void main(String args[]){ 3. kalimat();
4. System.out.println("Di dalam main"); 5. kalimat();
6. } 7.
8. public static void kalimat(){
9. System.out.println("Di dalam method kalimat"); 10. }
11.}
Method dengan tipe
Method juga bisa mempunyai tipe. Tipe dari method sama dengan tipe yang digunakan untuk sebuah variabel.
1.public class Fungsi3{
2. public static int jumlah(){ 3. int a = 8, b = 10; 4. return (a + b); 5. }
6.
7. public static void main(String args[]){
8. System.out.println("Hasil pemanggilan method
jumlah");
9. System.out.println(jumlah()); 10. }
PEMANGGILAN METHOD
DENGAN MENCIPTAKAN OBYEK
CLASS
Penggunaan sifat static pada method
menyebabkan method tidak perlu dipanggil dengan penciptaan obyeknya. Method main dideklarasikan static agar pada saat
penggunaan tidak perlu menciptakan obyeknya.
Sebagian method tidak dideklarasikan static.
Method yang demikian, bisa dipanggil dengan cara menciptakan obyek class dari method
contoh
1. public class Fungsi3a{ 2. public int jumlah(){
3. int a = 8, b = 10;
4. return (a + b);
5. }
6. public static void main(String args[]){
7. Fungsi3a obyek = new Fungsi3a();
8. System.out.println("Hasil pemanggilan
method jumlah");
9. System.out.println(obyek.jumlah());
10. }
Method dengan parameter
Dalam contoh terakhir, dua buah bilangan
dan penjumlahannya terletak pada method jumlah. Sehingga untuk pemanggilan yang lain, hasilnya tetap sama. Jika diinginkan
untuk difungsikan sebagai method penjumlah dua bilangan, tetapi bilangannya selalu
contoh
1. public class Fungsi4{ 2. public int jumlah(int a){ 3. return (a + a);
4. }
5. public static void main(String args[]){ 6. Fungsi4 obyek = new Fungsi4();
7. System.out.println("Panggil method jumlah dengan parameter 5");
8. System.out.println(obyek.jumlah(5));
9. System.out.println("Panggil method jumlah dengan parameter 13");
10. System.out.println(obyek.jumlah(13)); 11. }
KETERANGAN
Parameter pada baris ke 2, disebut sebagai
parameter formal.
Parameter formal adalah parameter yang
tertulis dalam definisi method.
Sedangkan parameter pada baris ke 8 dan 10
disebut sebagai parameter aktual.
Parameter aktual adalah parameter yang
berada pada inputan langsung pada saat penggunaan method tersebut.
Nilai parameter aktual dapat berupa variabel
CATATAN
Parameter bisa lebih dari satu dengan
dipisahkan tanda koma.
Yang perlu diperhatikan pada saat
pemanggilan method adalah jumlah, urutan dan tipe parameter aktual harus sesuai
CONTOH
1. public class Fungsi5{
2. public float jumlah(int a, float b){ 3. return (a + b);
4. }
5. public static void main(String args[]){ 6. Fungsi5 obyek = new Fungsi5();
7. System.out.println("Panggil method jumlah dengan
parameter 5 dan 5.5");
8. System.out.println(obyek.jumlah(5, 5.5f));
9. System.out.println("Panggil method jumlah dengan
parameter 13 dan 1.3");
10. System.out.println(obyek.jumlah(13, 1.3f)); 11. }
OUTPUT
Panggil method jumlah dengan parameter 5
dan 5.5
10.5
Panggil method jumlah dengan parameter 13
dan 1.3
Method tanpa parameter
class organisasiku {
private
String nama; int umur;
public void ngisi_data(String NAMA, int UMUR) { if (UMUR >= 17)
{ nama = NAMA; umur = UMUR; }
Method tanpa parameter
{ public static void main(String[] args) {
organisasiku obyek1 = new organisasiku(); obyek1.ngisi_data ("AgungBP",19);
obyek1.cetak_data(); }
Method dengan parameter
Method dengan parameter
class ProgramUtama
Method dengan nilai balik
class organisasiku {
private
String nama; int umur;
Method dengan nilai balik
class ProgramUtama
{ public static void main(String[] args) {
String TangkapPesan;
organisasiku obyek1 = new organisasiku();
TangkapPesan = obyek1.ngisi_data("AgungBP",19); System.out.println(TangkapPesan);
Catatan
dalam java, perintah return harus ditulis
pada kurung { } yang paling luar
dalam java tidak diperkenankan pembuatan
variabel yang memungkinkan terjadinya ‘blank value’ (apalagi variabel yang akan digunakan sebagai return value) sehingga
Contoh function
java
//function tanpa nilai balikan void sayHello(String nama){ System.out.println(nama); }
//function dengan nilai balikan
int hitungLuas(int panjang,int lebar){ int hasil = panjang * lebar;
Baca analogi ini baik - baik :
Ibu membuang sampah. Ibu hanya berpikir pekerjaannya
sudah selesai tanpa ada tindak lanjut atas sampah maupun tong sampah. disini tong sampah adalah tempat akhir dari proses membuang sampah, sehingga tidak diperlukan pengawasan/pemrosesan lanjutan.
Ibu meminta bibi untuk membeli minyak goreng di warung
terdekat karena ibu ingin menggoreng ikan. Disini ibu
membutuhkan minyak goreng sebagai bahan
pemrosesan lanjutan, yang tanpa minyak goreng tersebut ibu tidak akan bisa menghasilkan ikan goren yang lezat.
Jika anda perhatikan maka akan ada 2 hal yang jelas tertera
Mengapa menggunakan function?
Method/function diperlukan apabila kita memerlukan
sesuatu secara berulang - ulang.
contoh : awalnya boss mengerjakan semua hal, lalu
kerjaan boss menjadi banyak dan memakan waktu dan perhatian, kemudian boss mempunyai anak buah yang pertama sekretaris, lalu administrasi umum, lalu office boy agar boss bisa fokus dengan kerjaan utama
sementara office boy membuat kopi untuk boss. Jelaskah analogi ini ?
Awal : Bos -> mengerjakan semua hal Next : Bos -> fokus kerjaan utama
sekretaris -> surat menyurat dan jadwal admin umum -> pembelian dan lain2
contoh
public double luasLingkaran(int jari) {
double luas = pi*(jari*jari); return luas;
keterangan
public -> method ini dapat dipanggil dari luar. misal main = new Main();
System.out.println(main.luasLingkaran(10));
double -> method ini akan menghasilkan data bertype double.
jika ingin mengubah menjadi tidak menghasilkan apapun gunakan void
return -> kembalikan. ini karena method
mempunyai deklarasi typedata double. sehingga java akan memaksa pengembalian bertypedata double. dengan begitu return disini
contoh
1. class Mahasiswa { 2. int usia;
3. String nama;
4. void setNilai(String namaMhs, int usiaMhs) { 5. nama = namaMhs;
11. class AksesClass {
12. public static void main(String[] args) { 13. Mahasiswa mhs = new Mahasiswa(); 14. mhs.setNilai("aku", 23);
15. System.out.println(mhs.cetakData()); 16. }
penjelasan
Di dalam class Mahasiswa kita mendeklarasikan
method setNilai yang memiliki dua parameter untuk mengisikan nilai property nama dan usia. Di dalam class Mahasiswa kita juga
mendeklarasikan sebuah method yang bernama cetakData untuk menampilkan nilai dari property nama dan usia, karena bertipe data String yang mengembalikan nilai maka kita harus
menggunakan kata kunci return.
Lalu selanjutnya di dalam class AksesClass kita
membuat instance atau objek dari class
Melewatkan Argumen Tipe Data
Primitif
Argumen primitive, seperti int atau double,
dimasukkan ke dalam method dalam bentuk nilai.
Hal ini berarti bahwa setiap perubahan
terhadap nilai dari parameter ada hanya di dalam ruang lingkup method tersebut.
Pada saat method dikembalikan,
CONTOH
1. public class PassPrimitiveByValue { 2. public static void main(String[] args) { 3. int x = 3;
4. //memanggil passMethod() dengan x sebagai argumen 5. passMethod(x);
6. // mencetak x untuk melihat jika nilainya berubah 7. System.out.println("Sesudah memanggil passMethod, x
= " + x);
8. }
9. // mengubah parameter dalam passMethod() 10. public static void passMethod(int p) {
11. p = 10; 12. }
Output
Melewatkan argumen tipe data
reference
Parameter tipe data referensi seperti objects
juga dimasukkan ke dalam methods melalui nilai (value).
Artinya adalah bahwa pada saat method
kembali ke program yang memanggilnya,
referensi yang dilewatkan akan tetap mereferensi object yang sama seperti sebelumnya.
Namun nilai dari field object bisa diubah
Output
contoh
public void pindahLingkaran(Lingkaran lingkaran, int deltaX, int deltaY)
{
// kode untuk memindahkan nilai awal lingkaran ke x+deltaX, y+deltaY
lingkaran.setX(lingkaran.getX() + deltaX); lingkaran.setY(lingkaran.getY() + deltaY);
//kode yang dituliskan ke sebuah referensi baru ke lingkaran
Method overloading
Overloading adalah suatu keadaan dimana
beberapa method memiliki nama yang sama tetapi fungsionalitasnya berbeda.
Ciri Overloading :
Nama method harus sama.
Daftar parameter harus berbeda.
Contoh Method overloading
1. class Manusia { 2. String nama; 3. int usia;
4. void cetak(String namaManusia) { // method yang akan
di-overload
5. nama = namaManusia;
6. System.out.println(”Nama : “ + nama); 7. }
8. void cetak(int usiaManusia) { // overloading method
cetak
9. usia = usiaManusia;
10. System.out.println(“Usia : “ + usiaManusia); 11. }
contoh
1. public double kuadrat(double b){
2. System.out.println("Di method bertipe double"); 3. return (b * b);
4. }
5.
6. public int kuadrat(int b){
7. System.out.println("Di method bertipe integer"); 8. return (b * b);
9. }
10. public static void main(String args[]){ 11. Fungsi6 obyek = new Fungsi6();
12. System.out.println("Panggil method kuadrat dengan parameter 5.5"); 13. System.out.println(obyek.kuadrat(5.5));
14. System.out.println("Panggil method kuadrat dengan parameter 5"); 15. System.out.println(obyek.kuadrat(5));
output
Panggil method kuadrat dengan parameter
5.5
Di method bertipe double 30.25
Panggil method kuadrat dengan parameter 5 Di method bertipe integer
catatan
Dalam program diatas, method kuadrat
dipanggil dengan parameter 5.5 (tipe double) dan 5 (tipe integer) tidak mengalami
kesalahan. Hal ini disebabkan karena pada saat pemanggilan method, program mencari
parameter yang sesuai dengan yang dibawa. Sehingga method yang sesuai yang dijalankan oleh compiler.
Dalam method overloading, return value boleh
sama. Jika return value sama, parameternya