Seluruh teknik pada section ini — parameter, return value, overloading, hingga tuple — adalah alat; kualitas kode ditentukan oleh cara kita merancang methodnya. Method yang dirancang baik mudah dibaca, mudah diuji, dan jarang perlu diubah. Prinsip-prinsip berikut menjadi pegangan sebelum kita menulis method baru.
Prinsip Utama #
| Prinsip | Penerapan |
|---|---|
| Satu tugas per method | HitungTotal hanya menghitung; CetakStruk hanya mencetak |
| Nama deskriptif berupa kata kerja | HitungDiskon, BacaKonfigurasi; hindari nama seperti Proses1 |
| Parameter secukupnya | Lebih dari empat parameter patut disederhanakan, misalnya dikemas sebagai tuple |
| Hindari efek samping tersembunyi | Method bernama Hitung... tidak mengubah data lain atau mencetak diam-diam |
| Body tetap pendek | Bila body memanjang, pecah menjadi local functions atau method kecil |
Parameter boolean yang mengubah arah kerja method secara total juga patut dicurigai: CetakLaporan(true) menyembunyikan maknanya, sementara dua method bernama jelas lebih mudah dipahami.
Contoh Penerapan #
static class Tagihan
{
public static int HitungTotal(int hargaSatuan, int jumlah, int persenDiskon)
{
int subtotal = hargaSatuan * jumlah;
int potongan = subtotal * persenDiskon / 100;
return subtotal - potongan;
}
public static string DeskripsiTagihan(int hargaSatuan, int jumlah, int persenDiskon)
{
int total = HitungTotal(hargaSatuan, jumlah, persenDiskon);
return $"{jumlah} barang, total {total}";
}
}
int total = Tagihan.HitungTotal(25000, 3, 10);
Console.WriteLine($"Total tagihan: {total}");
Console.WriteLine(Tagihan.DeskripsiTagihan(25000, 3, 10));Output yang Dihasilkan:
Total tagihan: 67500
3 barang, total 67500Mari kita bedah baris demi baris:
- Baris 3-8 (
HitungTotal): method ini murni — masukan berupa angka, keluaran berupa angka, tanpa mencetak maupun mengubah data lain. Sifat murni membuatnya mudah diuji: beri masukan, bandingkan keluarannya. - Baris 10-14 (
DeskripsiTagihan): method ini memakai ulangHitungTotalalih-alih menyalin rumusnya, sehingga logika diskon hanya hidup di satu tempat. - Baris 17-19: pemanggil memilih bentuk yang dibutuhkan — angka mentah dari
HitungTotal, atau teks siap tampil dariDeskripsiTagihan.
Bila aturan diskon berubah besok, perbaikan cukup dilakukan pada HitungTotal, dan kedua pemanggil otomatis mengikuti. Inilah manfaat nyata dari pemisahan tugas: satu perubahan, satu lokasi.
Kebiasaan yang Perlu Dihindari #
- Method serba bisa yang namanya tidak menggambarkan isinya, misalnya
ProsesDatayang sekaligus membaca file, menghitung, dan mencetak. - Method yang mengembalikan
voidpadahal hasilnya akan dibutuhkan pemanggil untuk perhitungan berikutnya. - Nama parameter yang generik seperti
a,b, ataudata, yang memaksa pembaca membuka body untuk memahaminya.