Metode (Method)

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.

  1. 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
  2. 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 teks
  • Introduce: 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.
Gambar di atas menjelaskan setiap bagian penyusun 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

  1. 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
  2. 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)
Setelah sub-blok bersarang pada gambar selesai dijalankan, variabel lokal one dan two akan dikeluarkan dari stack lalu dihapus

Bidang Instance vs Variabel Lokal

Bidang InstanceVariabel Lokal
Masa HidupDibuat saat instance objek diciptakan;
dihapus ketika objek tidak dapat diakses lagi
Aktif pada baris deklarasi;
dihapus setelah blok induk selesai dieksekusi
Inisialisasi BawaanKompiler otomatis memberikan nilai bawaan sesuai tipeTidak ada inisialisasi otomatis;
pakai tanpa nilai akan menyebabkan kesalahan kompilasi
Penyimpanan MemoriSemua disimpan di Heap,
baik tipe nilai maupun tipe referensi
Tipe nilai: Stack;
tipe referensi: referensi di Stack, data objek di Heap

Metode (Method)

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *