⚙️ 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)
// 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
// 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
// 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
// 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.
// 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
// 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