Kenapa Method Ada
Method adalah blok kode bernama yang bisa kamu jalankan setiap kali kamu memanggil namanya. Daripada menulis baris yang sama berulang-ulang, kamu menulisnya sekali di dalam method lalu memanggilnya sesering yang kamu butuhkan. Program jadi lebih pendek, lebih mudah dibaca, dan jauh lebih mudah diperbaiki: ubah logikanya di satu tempat, dan setiap pemanggil langsung mendapat perubahannya.
Sebenarnya kamu sudah memanggil method: System.out.println(...) adalah pemanggilan method, begitu juga list.size(). Sekarang kamu akan menulis method sendiri.
Mendeklarasikan dan Memanggil Method
Deklarasi method punya empat bagian: tipe kembalian, nama, sepasang tanda kurung (untuk parameter), dan badan di dalam kurung kurawal. Ini contoh terkecil yang berguna, yaitu method yang mengerjakan sesuatu dan tidak mengembalikan apa pun:
Perhatikan bagian-bagian dari static void printGreeting():
static: membuatmainbisa memanggilnya langsung tanpa membuat objek (penjelasannya ada di bawah).void: method ini tidak mengembalikan nilai.printGreeting: nama yang kamu pakai untuk memanggilnya.(): tanda kurung kosong berarti method ini tidak menerima input.
Kamu memanggil method dengan menulis namanya diikuti tanda kurung. Dua panggilan di main menjalankan badan method dua kali, jadi sapaannya dicetak dua kali.
Mengembalikan Nilai
Sebagian besar method menghitung sesuatu lalu menyerahkannya kembali dengan return. Tipe kembalian sebelum nama menunjukkan jenis nilai yang keluar, di sini int:
square(5) bernilai 25, yang bisa kamu simpan di variabel, cetak, atau pakai di ekspresi yang lebih besar: pemanggilan method menggantikan nilai yang dikembalikannya. Begitu return dijalankan, method berakhir dan alur program kembali ke pemanggil. Kode apa pun setelah return di jalur yang sama tidak pernah dijalankan.
Tipe kembalian dan nilai yang dikembalikan harus cocok: tipe data yang kamu deklarasikan adalah jenis nilai yang dijanjikan method untuk diserahkan. Mendeklarasikan int lalu mencoba return "text"; adalah error kompilasi, karena compiler menegakkan janji itu.
void vs Tipe Kembalian
Pembagiannya sederhana: pakai tipe kembalian sungguhan kalau pemanggil butuh nilai kembali, dan void kalau method hanya melakukan sesuatu (mencetak, menyimpan, memperbarui state).
void logMessage(String msg) // does work, hands nothing back
int add(int a, int b) // computes a value the caller uses
Kesalahan yang sering dilakukan pemula adalah mencoba memakai "hasil" dari method void:
int x = printGreeting(); // compile error: printGreeting() returns void
Tidak ada nilai yang bisa disimpan, jadi kode ini tidak bisa di-compile. Kalau kamu ingin memakai hasil dari method void, itu tanda bahwa method tersebut seharusnya mengembalikan sesuatu.
Method yang Bercabang dan Return Lebih Awal
Kamu bisa melakukan return dari lebih dari satu tempat. Return lebih awal, begitu kamu tahu jawabannya, sering lebih mudah dibaca daripada membungkus semuanya di dalam else:
Karena setiap return langsung keluar dari method, kondisi pertama yang cocok yang menang. Pastikan saja setiap jalur di method yang mengembalikan nilai berakhir dengan return. Kalau ada cabang yang bisa lolos tanpa return, compiler akan protes dengan pesan "missing return statement". return "F"; di akhir contoh ini menangani kasus yang lolos itu.
Arti static di Sini
Mungkin kamu sudah memperhatikan bahwa semua method di atas memakai static. Method static adalah milik class itu sendiri, bukan milik objek tertentu, jadi main (yang juga static) bisa memanggilnya langsung berdasarkan nama. Tanpa static, method itu milik sebuah instance dan kamu butuh objek untuk memanggilnya.
Untuk sekarang, selama kamu menulis program kecil yang logikanya berada di samping main, tandai method bantuanmu dengan static supaya bisa dipanggil dengan cara yang sama. Begitu kamu mulai membuat class dan objek sendiri, kamu juga akan menulis method non-static (method instance), yang dibahas di bab class.
Variabel Lokal Tetap di Dalam Method
Variabel yang dideklarasikan di dalam method hanya ada di sana. Variabel itu dibuat saat method berjalan dan hilang saat method selesai, jadi pemanggil tidak pernah melihatnya:
total dan i sepenuhnya hidup di dalam sumTo. Satu-satunya yang keluar dari method adalah nilai yang kamu return. Isolasi ini justru fitur: setiap method adalah unit mandiri yang bisa kamu pahami tanpa khawatir variabel sementaranya bocor keluar atau bertabrakan dengan nama di tempat lain.
Berikutnya: Parameter Method
Setiap method di sini tidak menerima input atau hanya menerima satu nilai. Kekuatan sebenarnya datang dari mengirim data masuk, dan Java punya aturan khusus tentang cara argumen dikirim, apa yang terjadi pada objek dibandingkan tipe primitif, dan cara memberi parameter nilai cadangan yang mirip nilai default. Itu topik halaman berikutnya.
Pertanyaan yang sering diajukan
Apa itu method di Java?
Method adalah blok kode bernama yang bisa kamu jalankan kapan saja dengan memanggil namanya. Method mengumpulkan satu pekerjaan di satu tempat supaya kamu bisa memakainya ulang tanpa mengulang baris yang sama. Method bisa menerima input (parameter) dan menyerahkan hasil (nilai kembalian), atau mengerjakan tugasnya tanpa mengembalikan apa pun (void).
Bagaimana cara membuat dan memanggil method di Java?
Deklarasikan dengan tipe kembalian, nama, dan tanda kurung: static int square(int n) { return n * n; }. Lalu panggil berdasarkan namanya dengan argumen di dalam tanda kurung: int result = square(5);. Method yang tidak mengembalikan apa pun memakai void dan dipanggil sebagai pernyataan tersendiri, seperti printGreeting();.
Apa arti void pada method Java?
void berarti method tidak mengembalikan nilai: method itu mengerjakan tugasnya (misalnya mencetak) dan tidak menyerahkan apa pun ke pemanggil. Kamu tidak bisa menyimpan hasil method void ke variabel. Kalau sebuah method perlu menghasilkan nilai yang dipakai pemanggil, beri tipe kembalian sungguhan seperti int atau String dan pakai return.