Method: parameter, return, dan overloading
Kemas langkah bernama yang bisa dipanggil ulang dan mengembalikan hasil.
Pahami konsepnya
Method adalah potongan kode bernama yang menjalankan satu tugas — dipanggil cukup dengan namanya, kapan pun, berapa kali pun. Ia menerima bekal lewat parameter, dan boleh mengembalikan hasil lewat return. Deklarasinya menyebut tipe hasilnya (atau void bila tak mengembalikan apa pun), namanya, lalu daftar parameternya: double Diskon(double harga, int persen).
return sekaligus menutup panggung: baris itu berada, method selesai, dan nilai setelahnya diserahkan kepada pemanggil. Dalam method void, return telanjang hanya berperan sebagai pintu keluar darurat. Data masuk lewat parameter, keluar lewat return — jalur yang jernih inilah yang membuat method mudah dipakai ulang dan dites.
Dua pemanis lanjutan: overloading membolehkan beberapa method bernama sama selama parameternya berbeda — Print(int) dan Print(string) hidup damai, kompiler memilih yang pas menurut argumenmu. Dan satu method boleh mengembalikan beberapa nilai sekaligus lewat tuple: (int min, int maks) — dibongkar langsung ke dua variabel. Aturan penamaannya sama seperti variabel: kata kerja jelas untuk aksi (HitungTotal, CekLogin), dan satu method satu tanggung jawab.
Coba contoh kode
using System;
class Program
{
static double Diskon(double harga, int persen)
{
return harga * persen / 100;
}
static string Kategori(double imt)
{
if (imt < 18.5) return "Kurus";
if (imt < 25) return "Ideal";
return "Berlebih";
}
static void Main()
{
System.Threading.Thread.CurrentThread.CurrentCulture = System.Globalization.CultureInfo.GetCultureInfo("id-ID");
Console.Write("Harga = ");
double harga = double.Parse(Console.ReadLine());
double bayar = harga - Diskon(harga, 20);
Console.WriteLine($"Setelah diskon 20%: {bayar:C0}");
Console.Write("IMT = ");
double imt = double.Parse(Console.ReadLine());
Console.WriteLine($"Kategori: {Kategori(imt)}");
}
}Dua method kecil bekerja untuk satu program: Diskon menghitung dan mengembalikan angka, Kategori memutuskan dan mengembalikan teks — return-nya bahkan tiga cabang, masing-masing menutup method ketika giliran. Panggilannya terbaca seperti kalimat: harga dikurangi Diskon(harga, 20). Inilah kenaikan level: logika diberi nama, lalu disusun.
Overloading dan tuple
using System;
class Program
{
static void Sapa(string nama)
{
Console.WriteLine($"Halo, {nama}!");
}
static void Sapa(string nama, string gelar)
{
Console.WriteLine($"Halo, {gelar} {nama}!");
}
static (int Min, int Maks) Rentang(int a, int b)
{
return (Math.Min(a, b), Math.Max(a, b));
}
static void Main()
{
Sapa("Ari");
Sapa("Ari", "Kak");
var rentang = Rentang(42, 17);
Console.WriteLine($"{rentang.Min} ... {rentang.Maks}");
}
}Dua Sapa hidup berdampingan karena parameternya berbeda — kompiler memilih sesuai jumlah argumen yang kamu kirim. Method Rentang mengembalikan dua nilai sekaligus sebagai tuple bernama, dibongkar langsung ke kecil dan besar. Multi-return tanpa ceremony seperti variabel cadangan.
Latihan singkat
Uji: lengkapi HitungPajak (5%) — dengan gaji `2000000` program harus mencetak persis `Pajak: 100000`.