Metode adalah blok kode yang memiliki nama. Kamu dapat menjalankan blok ini dengan memanggil nama metode dari bagian lain program, mengirimkan data ke metode, dan menerima data keluaran yang dikembalikan oleh metode.
Susunan Metode
Sebagaimana dijelaskan sebelumnya, metode merupakan anggota fungsi dari sebuah kelas.
Sebenarnya metode hanyalah fungsi. Istilah metode digunakan ketika fungsi berada di dalam kelas. Di bahasa C, semua konstruksi seperti ini hanya disebut fungsi.
Metode terdiri dari dua bagian utama: kepala metode (deklarasi metode) dan badan metode.
- Kepala metode: Menentukan seluruh ciri metode dan memuat informasi berikut:
- Apakah metode memiliki nilai balik; jika ada, tipe nilai balik harus ditentukan
- Nama metode
- Tipe data yang dapat dikirim masuk / keluar, serta aturan pemrosesan data
- Badan metode: Dibentuk dari urutan perintah yang dapat dieksekusi. Program akan mulai menjalankan perintah pertama di badan metode dan berjalan secara berurutan.
Lihat contoh berikut
string Introduce(string name,int age)
{
string words = $"hello my name is {name},i'm {age} years old";
Console.WriteLine(words);
return words;
}Code language: C# (cs)
Kepala metode: string Introduce(string name,int age)
string: Tipe nilai balik, yaitu tipe teksIntroduce: Nama metode(string name,int age): Daftar parameter. Kedua bagian ini adalah variabel yang menerima nama dan usia dari luar, lalu dapat digunakan di dalam badan metode.

Bagaimana cara memanggil metode ini?
Metode ini berada di kelas Program, satu kelas dengan metode Main. Namun Main adalah metode statis (static). Metode statis tidak dapat langsung memanggil metode non-statis. Jika ingin memanggil Introduce, kamu harus membuat instance dari Program terlebih dahulu lalu memanggil melalui instance tersebut.
class Program
{
static void Main()
{
Program program = new Program();
program.Introduce("John", 30);
}
string Introduce(string name,int age)
{
string words = $"hello my name is {name},i'm {age} years old";
Console.WriteLine(words);
return words;
}
}Code language: C# (cs)
Pemanggilan langsung seperti di bawah akan menimbulkan kesalahan kompilasi

Cara yang benar adalah membuat instance Program menggunakan new di dalam fungsi Main, lalu panggil Introduce melalui instance tersebut
Program program = new Program();//√
program.Introduce("John", 30);Code language: C# (cs)
Badan Metode
Badan metode dapat berisi nol atau lebih perintah yang dapat dieksekusi.
Badan metode merupakan blok kode (kumpulan perintah yang dibungkus kurung kurawal). Di dalam blok kode dapat dituliskan hal-hal berikut:
- Variabel lokal
- Struktur kendali alur (perulangan, percabangan, dan lain-lain)
- Pemanggilan metode lain
- Blok kode bersarang
- Fungsi lokal (sub-metode yang didefinisikan di dalam metode) [dipelajari kemudian]
class Program
{
static void Main()
{
int age = 3; // Variabel lokal, nilai awal 3
while (age > 0) // Struktur kendali alur
{
--age;
Introduce("Tom", age); // Pemanggilan metode
}
{
//Blok kode bersarang
}
}
static string Introduce(string name,int age)
{
string words = $"hello my name is {name},i'm {age} years old";
Console.WriteLine(words);
return words;
}
}
Code language: JavaScript (javascript)
Pada kode di atas, kata kunci static ditambahkan di depan Introduce sehingga menjadi fungsi statis. Dengan begitu fungsi ini dapat dipanggil langsung dari Main tanpa membuat instance terlebih dahulu.
Variabel Lokal (Local Variables)
Sama seperti bidang instance yang dibahas sebelumnya, variabel lokal berfungsi menyimpan data. Bidang instance umumnya menyimpan status objek, sedangkan variabel lokal hanya menampung data sementara untuk perhitungan sekali jalan.
Ketika metode tempat variabel lokal berada selesai dijalankan, variabel akan dikeluarkan dari stack. Variabel tipe nilai akan langsung dihapus, sedangkan variabel tipe referensi akan dibersihkan oleh garbage collector di waktu tertentu.
1. Sintaks deklarasi variabel lokal
Tipe NamaVariabel = NilaiAwal;
NamaVariabel: Pengenal buatan pengguna= NilaiAwal: Inisialisator opsional untuk memberikan nilai awal pada variabel
2. Aturan utama variabel lokal
- Masa hidup dan cakupan lingkup: Hanya ada di blok tempat ia dideklarasikan beserta semua sub-blok bersarang di dalamnya
- Variabel baru aktif mulai dari baris tempat variabel dideklarasikan
- Setelah blok kode selesai dieksekusi, variabel menjadi tidak valid dan dihapus
- Lokasi deklarasi bebas: Dapat ditulis di mana saja di badan metode, namun harus dideklarasikan sebelum digunakan
static void Main()
{
int age = 3; //Variabel lokal
Phone p = new Phone(); //Variabel lokal tipe buatan sendiri
{
int one = 1; //Variabel lokal milik sub-blok kode
bool two = false;
}
double d = 0;
}Code language: JavaScript (javascript)

Bidang Instance vs Variabel Lokal
| Bidang Instance | Variabel Lokal | |
|---|---|---|
| Masa Hidup | Dibuat saat instance objek diciptakan; dihapus ketika objek tidak dapat diakses lagi | Aktif pada baris deklarasi; dihapus setelah blok induk selesai dieksekusi |
| Inisialisasi Bawaan | Kompiler otomatis memberikan nilai bawaan sesuai tipe | Tidak ada inisialisasi otomatis; pakai tanpa nilai akan menyebabkan kesalahan kompilasi |
| Penyimpanan Memori | Semua disimpan di Heap, baik tipe nilai maupun tipe referensi | Tipe nilai: Stack; tipe referensi: referensi di Stack, data objek di Heap |
Metode (Method)