Method

Membuat method dengan parameter dan nilai kembalian, overloading, varargs, scope variabel, dan rekursi sederhana.

Part 5 dari 17 ± 45 menit Gratis

Apa itu method?

Method adalah blok kode bernama yang bisa dipanggil berulang kali. Dengan method, program jadi rapi, tidak berulang (prinsip DRY — Don't Repeat Yourself), dan mudah diuji. Di bab sebelumnya kamu sudah memakai main dan println; sekarang kamu membuat method sendiri.

Anatomi method

public static int tambah(int a, int b) {
    return a + b;
}
BagianArti
public staticModifier. static artinya method milik class, bisa dipanggil tanpa membuat objek (sementara ini kita pakai static; di bab OOP kita lepas).
intTipe nilai kembalian. Jika tidak mengembalikan apa pun, tulis void.
tambahNama method (camelCase, biasanya kata kerja).
(int a, int b)Daftar parameter beserta tipenya.
returnMengembalikan nilai ke pemanggil dan mengakhiri method.

Memanggil method

public class Main {
    static int tambah(int a, int b) {
        return a + b;
    }

    static void sapa(String nama) {
        System.out.println("Halo, " + nama);   // void: tidak ada return nilai
    }

    public static void main(String[] args) {
        int hasil = tambah(3, 4);
        System.out.println(hasil);     // 7
        sapa("Sari");
    }
}

Argumen yang dikirim harus cocok dengan parameter: jumlah, urutan, dan tipenya.

Pass-by-value

Java selalu mengirim salinan nilai. Mengubah parameter bertipe primitif di dalam method tidak mengubah variabel asli. Untuk objek, yang disalin adalah referensi-nya, sehingga isi objek bisa berubah (dibahas di bab OOP).

static void ubah(int x) { x = 99; }
int a = 1;
ubah(a);
System.out.println(a);   // tetap 1

Overloading

Beberapa method boleh bernama sama asalkan daftar parameternya berbeda (jumlah atau tipe). Java memilih yang cocok saat dipanggil.

static int tambah(int a, int b)       { return a + b; }
static double tambah(double a, double b) { return a + b; }
static int tambah(int a, int b, int c)   { return a + b + c; }

tambah(1, 2);        // versi int
tambah(1.5, 2.5);    // versi double

Perbedaan hanya pada tipe kembalian tidak cukup untuk overloading.

Varargs

static int jumlah(int... angka) {
    int total = 0;
    for (int a : angka) total += a;
    return total;
}

jumlah();            // 0
jumlah(1, 2, 3);     // 6

int... memperlakukan argumen sebagai array. Varargs harus menjadi parameter terakhir.

Scope variabel

Variabel hanya hidup di dalam blok { } tempat ia dideklarasikan.

for (int i = 0; i < 3; i++) {
    int kuadrat = i * i;
}
// System.out.println(i);        // ERROR: i sudah tidak ada
// System.out.println(kuadrat);  // ERROR

Rekursi

Method boleh memanggil dirinya sendiri. Wajib punya kasus dasar agar berhenti.

static int faktorial(int n) {
    if (n <= 1) return 1;            // kasus dasar
    return n * faktorial(n - 1);      // pemanggilan diri sendiri
}
// faktorial(5) = 5 * 4 * 3 * 2 * 1 = 120

Tanpa kasus dasar, terjadi StackOverflowError.

Praktik baik

  • Satu method, satu tugas. Beri nama yang menjelaskan tugasnya (hitungDiskon, bukan proses1).
  • Usahakan method pendek (puluhan baris, bukan ratusan).
  • Method yang mengembalikan nilai sebaiknya tidak sekaligus mencetak; biarkan pemanggil memutuskan.

Praktikkan langsung, gratis

Tulis dan jalankan kode langsung di browser, dapatkan penilaian otomatis. Daftar gratis kapan saja untuk menyimpan progres dan meraih sertifikat.

Coba latihan sekarang, tanpa daftar
Bagikan: WhatsApp Facebook LinkedIn X