⚙️ Method di Java

💡Apa itu Method?

Method (fungsi) adalah blok kode yang melakukan tugas tertentu dan dapat dipanggil berkali-kali. Method membuat kode lebih terorganisir, mudah dibaca, dan dapat digunakan kembali (reusable).

Analogi: Method seperti resep masakan. Sekali ditulis, bisa digunakan berkali-kali kapan saja kita butuhkan dengan bahan (parameter) yang berbeda.

🎮

Kalkulator Luas & Keliling

Lihat bagaimana method bekerja dengan parameter berbeda

📊 Hasil Perhitungan:

Luas Persegi Panjang:

15 cm²

hitungLuas(5, 3)

Keliling Persegi Panjang:

16 cm

hitungKeliling(5, 3)

🎯1. Method Dasar (Tanpa Parameter)

java
// Method tanpa parameter dan return
public class MethodDasar {
    // Method void (tidak mengembalikan nilai)
    public static void sapa() {
        System.out.println("Halo, selamat datang!");
    }
    
    public static void tampilkanMenu() {
        System.out.println("=== MENU UTAMA ===");
        System.out.println("1. Login");
        System.out.println("2. Register");
        System.out.println("3. Exit");
    }
    
    public static void main(String[] args) {
        // Memanggil method
        sapa();
        sapa();  // Bisa dipanggil berkali-kali
        
        tampilkanMenu();
    }
}

// Output:
// Halo, selamat datang!
// Halo, selamat datang!
// === MENU UTAMA ===
// 1. Login
// 2. Register
// 3. Exit

📥2. Method dengan Parameter

java
// Method dengan parameter
public class MethodParameter {
    // Method dengan 1 parameter
    public static void sapaNama(String nama) {
        System.out.println("Halo, " + nama + "!");
    }
    
    // Method dengan 2 parameter
    public static void tampilkanBiodata(String nama, int umur) {
        System.out.println("Nama: " + nama);
        System.out.println("Umur: " + umur + " tahun");
    }
    
    // Method dengan banyak parameter
    public static void buatAkun(String username, String password, String email, int umur) {
        System.out.println("=== AKUN BARU ===");
        System.out.println("Username: " + username);
        System.out.println("Email: " + email);
        System.out.println("Umur: " + umur);
        System.out.println("Akun berhasil dibuat!");
    }
    
    public static void main(String[] args) {
        sapaNama("Budi");
        sapaNama("Siti");
        
        tampilkanBiodata("Andi", 20);
        
        buatAkun("budi123", "secret", "budi@mail.com", 22);
    }
}

💡 Case Nyata: Sistem Pendaftaran

Method dengan parameter sangat berguna untuk form pendaftaran, di mana data user (nama, email, password) dikirim sebagai parameter ke method yang memproses pendaftaran.

📤3. Method dengan Return Value

java
// Method dengan return
public class MethodReturn {
    // Method yang mengembalikan int
    public static int tambah(int a, int b) {
        return a + b;
    }
    
    // Method yang mengembalikan double
    public static double hitungLuas(double panjang, double lebar) {
        double luas = panjang * lebar;
        return luas;
    }
    
    // Method yang mengembalikan String
    public static String cekKelulusan(int nilai) {
        if (nilai >= 70) {
            return "Lulus";
        } else {
            return "Tidak Lulus";
        }
    }
    
    // Method yang mengembalikan boolean
    public static boolean cekGanjil(int angka) {
        return angka % 2 != 0;
    }
    
    public static void main(String[] args) {
        // Menyimpan hasil return dalam variabel
        int hasil = tambah(5, 3);
        System.out.println("Hasil: " + hasil);  // 8
        
        double luas = hitungLuas(5.0, 3.0);
        System.out.println("Luas: " + luas);  // 15.0
        
        String status = cekKelulusan(85);
        System.out.println("Status: " + status);  // Lulus
        
        boolean ganjil = cekGanjil(7);
        System.out.println("Ganjil? " + ganjil);  // true
        
        // Menggunakan return langsung
        System.out.println("5 + 7 = " + tambah(5, 7));
    }
}
🎮

Demo: Method Konversi Suhu

Lihat method bekerja dengan rumus matematika

🌡️ Fahrenheit:

77.0°F

celsiusToFahrenheit(25)

Formula: (C × 9/5) + 32

❄️ Kelvin:

298.15K

celsiusToKelvin(25)

Formula: C + 273.15

🛒4. Case Nyata: Sistem Kasir

java
// Case Nyata: Aplikasi Kasir
public class SistemKasir {
    // Method hitung total
    public static int hitungTotal(int harga, int jumlah) {
        return harga * jumlah;
    }
    
    // Method hitung diskon
    public static double hitungDiskon(int total, int persenDiskon) {
        return total * persenDiskon / 100.0;
    }
    
    // Method hitung harga akhir
    public static double hitungHargaAkhir(int total, double diskon) {
        return total - diskon;
    }
    
    // Method tampilkan struk
    public static void tampilkanStruk(String namaBarang, int harga, 
                                     int jumlah, int persenDiskon) {
        int total = hitungTotal(harga, jumlah);
        double diskon = hitungDiskon(total, persenDiskon);
        double hargaAkhir = hitungHargaAkhir(total, diskon);
        
        System.out.println("=== STRUK BELANJA ===");
        System.out.println("Barang    : " + namaBarang);
        System.out.println("Harga     : Rp " + harga);
        System.out.println("Jumlah    : " + jumlah);
        System.out.println("Subtotal  : Rp " + total);
        System.out.println("Diskon    : Rp " + diskon + " (" + persenDiskon + "%)");
        System.out.println("Total     : Rp " + hargaAkhir);
        System.out.println("===================");
    }
    
    public static void main(String[] args) {
        // Transaksi 1: Beli buku
        tampilkanStruk("Buku Tulis", 5000, 10, 10);
        
        System.out.println();
        
        // Transaksi 2: Beli pulpen
        tampilkanStruk("Pulpen", 3000, 5, 5);
    }
}

// Output:
// === STRUK BELANJA ===
// Barang    : Buku Tulis
// Harga     : Rp 5000
// Jumlah    : 10
// Subtotal  : Rp 50000
// Diskon    : Rp 5000.0 (10%)
// Total     : Rp 45000.0
// ===================

🔄5. Method Overloading

Method overloading adalah membuat method dengan nama sama tapi parameter berbeda.

java
// Method Overloading
public class MethodOverloading {
    // Method 1: 2 parameter int
    public static int tambah(int a, int b) {
        return a + b;
    }
    
    // Method 2: 3 parameter int
    public static int tambah(int a, int b, int c) {
        return a + b + c;
    }
    
    // Method 3: 2 parameter double
    public static double tambah(double a, double b) {
        return a + b;
    }
    
    // Method 4: String concatenation
    public static String tambah(String a, String b) {
        return a + b;
    }
    
    public static void main(String[] args) {
        System.out.println(tambah(5, 3));           // 8
        System.out.println(tambah(5, 3, 2));        // 10
        System.out.println(tambah(5.5, 3.2));       // 8.7
        System.out.println(tambah("Hello ", "World")); // Hello World
    }
}

🎪6. Scope Variabel dalam Method

java
// Scope dalam Method
public class MethodScope {
    // Variabel global (class level)
    static int saldoGlobal = 100000;
    
    public static void tambahSaldo(int jumlah) {
        // Variabel local (hanya ada di method ini)
        int bonus = 5000;
        
        // Bisa akses variabel global
        saldoGlobal += jumlah + bonus;
        
        System.out.println("Saldo ditambah: " + (jumlah + bonus));
    }
    
    public static int hitungTotal(int harga, int jumlah) {
        // Variabel local
        int total = harga * jumlah;
        int pajak = total * 10 / 100;
        
        return total + pajak;
    }
    
    public static void main(String[] args) {
        System.out.println("Saldo awal: " + saldoGlobal);
        
        tambahSaldo(50000);
        System.out.println("Saldo akhir: " + saldoGlobal);
        
        int totalBelanja = hitungTotal(10000, 5);
        System.out.println("Total belanja: " + totalBelanja);
        
        // Error: bonus tidak bisa diakses di sini
        // System.out.println(bonus);
    }
}
🎮

Demo: Kalkulator Lingkaran

Gunakan method untuk menghitung luas dan keliling lingkaran

📐 Luas Lingkaran:

153.94 cm²

π × r²

hitungLuas(7)

⭕ Keliling Lingkaran:

43.98 cm

2 × π × r

hitungKeliling(7)

📝 Ringkasan Method Java

  • ✅ Method membuat kode lebih terorganisir dan reusable
  • void → Method tanpa return value
  • return type → Method mengembalikan nilai (int, double, String, dll)
  • Parameter → Input untuk method
  • Overloading → Nama sama, parameter beda
  • ✅ Gunakan method untuk menghindari code duplication