Membuat Dan Menggunakan Method Di C#

method di c#

Halo! Selamat datang kembali di “Seri Belajar Dasar Pemrograman Bahasa C#“. Kali ini kita kan mempelajari tentang bagaimana membuat dan menggunakan method di C#.

Sampai saat ini, mestinya Anda sudah sangat familiar dengan method Main(), bukan?

Selain method Main() yang merupakan pintu masuk dari sebuah program yang dibuat dengan bahasa C#, Kita juga bisa membuat dan menggunakan method kita sendiri.

Apabila Anda pernah mempelajari bahasa pemrograman lain, seperti JavaScript, tentunya Anda sudah familiar dengan sebuah konstruksi bernama function. Method dalam pemrograman C#, memiliki fungsi dan cara kerja yang mirip dengan function di JavaScript.

Konstruksi ini dinamakan “method” di C# bukan tanpa alasan, bukan pula supaya sekedar menggunakan istilah yang berbeda dengan bahasa pemrograman yang lain. Bahasa C# pada dasarnya adalah bahasa pemrograman berorientasi objek, di mana semua kode program dienkapsulasi dalam sebuah class. Contohnya, Main() yang dienkapsulasi di dalam class Program.

Dalam pemrograman, sebuah function yang didefinisikan di dalam sebuah class disebut dengan method. Berbeda dengan JavaScript di mana kita bisa mendefinisikan sebuah function di luar sebuah class, C# mewajibkan kita untuk mendefinisikan function di dalam sebuah class. Itulah mengapa konstruksi ini di C#, disebut dengan method.

Di C#, method merupakan salah satu konstruksi dari function, konstruksi function yang lain adalah delegate dan lambda expressions.

Motivasi Menggunakan Method Di C#

Di dalam pemrograman, kita mengenal prinsip Don’t Repeat Yourself atau DRY. Maksudnya, dalam menulis kode program, sebaiknya kita menghindari penulisan kode program dengan fungsionalitas yang sama di berbagai tempat.

Mengapa?

Coba perhatikan kode program di bawah ini.

using System;

namespace BekerjaDenganMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine(10 + 20);
            Console.WriteLine(10 + 20);
            Console.WriteLine(10 + 20);
        }
    }
}

Pada kode program di atas, kita menulis 10 + 20 di tiga tempat yang berbeda. Katakanlah, di kemudian hari Anda diminta untuk mengubah operasi penambahan menjadi operasi perkalian. Artinya, Anda harus mengganti tanda + dengan * di tiga tempat berbeda.

Masalah?

Untuk kasus seperti di atas, di mana hanya terdapat beberapa baris kode program saja, tentunya tidak akan menjadi masalah. Tapi pada situasi sebenarnya di mana kita biasanya menulis ribuan baris kode program, ini bisa menjadi masalah. Misalnya, jika Anda menulis 10 + 20 di puluhan tempat yang berbeda, maka mengubahnya menjadi 10 * 20 menjadi pekerjaan yang membosankan dan melelahkan.

Perlu diingat bahwa proses pengembangan perangkat lunak merupakan proses yang dinamis. Artinya, tuntutan untuk memperbaiki atau memperbarui sebuah fitur akan selalu ada.

Catatan: Semua method pada materi ini didefinisikan dengan kata kunci static karena akan dipanggil dari method Main() merupakan method static. Sebuah method static tidak bisa memanggil method yang tidak didefinisikan dengan kata kunci static. Untuk saat ini, Anda bisa mengabaikan pemahaman tentang kata kunci static. Materi tentang kata kunci static baru akan kita pelajari di materi mengenai pemrograman berorientasi objek.

Mendefinsikan Dan Memanggil Method Di C#

Permasalahan di atas dapat kita atasi dengan mengenkapsulasi atau merangkum kode program untuk memproses suatu fungsionalitas tertentu ke dalam sebuah method.

Kode program di atas dapat kita tulis ulang seperti pada contoh di bawah ini.

using System;

namespace BekerjaDenganMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            HitungTampilkanHasil();
            HitungTampilkanHasil();
            HitungTampilkanHasil();
        }

        static void HitungTampilkanHasil()
        {
            Console.WriteLine(10 + 20);
        }
    }
}

Kode program di atas akan menghasilkan keluaran yang sama persis seperti sebelumnya. Namun kali ini, apabila kita diminta untuk mengubah operasi penambahan menjadi operasi perkalian, kita hanya perlu mengubah 10 + 20 menjadi 10 * 20 di satu tempat saja, yaitu di dalam blok HitungTampilkanHasil().

Perhatikan kembali blok kode program di bawah ini.

static void HitungTampilkanHasil()
{
    Console.WriteLine(10 + 20);
}

Blok kode program di atas disebut dengan method.

Kata kunci void berfungsi untuk memberitahu compiler bahwa method di atas tidak mengembalikan nilai apapun.

HitungTampilkanHasil merupakan identifier (pengenal/nama) yang kita berikan untuk method di atas. Identifier yang diberikan untuk sebuah method sebaiknya bisa menjelaskan apa fungsi atau apa yang dilakukan oleh method tersebut.

Kode program di dalam method HitungTampilkanHasil() berfungsi untuk melakukan sebuah operasi aritmatika (dalam hal ini penjumlahan 10 + 20) dan sekaligus menampilkannya ke layar console (Console.WriteLine()).

Method yang telah didefinisikan bisa kita gunakan sebanyak yang kita perlukan. Untuk menggunakannya, kita cukup memanggil method tersebut seperti pada kode program di bawah ini.

static void Main(string[] args)
{
    HitungTampilkanHasil();
    HitungTampilkanHasil();
    HitungTampilkanHasil();
}

Mendefinisikan Dan Memanggil Method Dengan Nilai Balik Dan Parameter Di C#

Seperti yang telah kita pelajari sebelumnya, mendefinisikan sebuah method dengan kata kunci void membuat method tersebut tidak memiliki nilai balik.

Lalu, apa yang dimaksud dengan nilai balik?

Untuk membantu pemahaman Anda, perhatikan kode program di bawah ini.

static int Penjumlahan(int x, int y)
{
    int hasil = x + y;

    return hasil;
}

Kode program di atas mendefinisikan sebuah method untuk melakukan satu fungsionalitas, yaitu operasi penjumlahan. Perhatikan bahwa kali ini, kita menggunakan int sebagai nilai balik.

int Penjumlahan(int x, int y)

Artinya, setelah blok kode program di dalam method Penjumlahan() selesai dieksekusi, method tersebut akan menghasilkan sebuah nilai dari tipe int.

Di dalam method Penjumlahan() di atas, kita mendeklarasikan variabel hasil dengan tipe int untuk menampung hasil dari penjumlahan x + y.

int hasil = x + y;

Lalu variabel tersebut kita berikan ke pernyataan return sebagai nilai balik dari method Penjumlahan().

return hasil;

Perhatikan bahwa nilai yang diberikan ke pernyataan return harus dari tipe data yang sama dengan definisi nilai balik sebuah method. Dalam hal ini, nilai variabel hasil harus dari tipe int karena nilai balik dari method Penjumlahan() juga bertipe int.

Satu hal yang juga perlu Anda perhatikan adalah deklarasi variabel int x dan int y di dalam tanda kurung.

Penjumlahan(int x, int y)

Deklarasi variabel di dalam tanda kurung seperti ini disebut dengan parameter. Method Penjumlahan() di atas memiliki dua buah parameter, yaitu x dan y. Artinya, method tersebut nantinya bisa menerima dua buah nilai untuk diproses saat dipanggil.

Memanggil method dengan nilai balik dan parameter bisa dilakukan dengan cara seperti di bawah ini.

static void Main(string[] args)
{
    Console.WriteLine($"4 + 5 = {Penjumlahan(4, 5)}");
}

Perhatikan nilai 4 dan 5 yang kita berikan pada saat memanggil method Penjumlahan().

Penjumlahan(4, 5)

Nilai (bisa berupa konstanta maupun variabel) yang diberikan pada sebuah method, dalam hal ini Angka 4 dan 5, disebut dengan argument.

Kode program di atas akan menghasilkan keluaran seperti di bawah ini.

4 + 5 = 9

Menyederhanakan Definisi Method Dengan Expression-Embodied Member

Di dalam method Penjumlahan() sebelumnya, kita mendeklarsikan variabel lokal hasil untuk menampung hasil operasi x + y. Lalu memberikan variabel tersebut ke pernyataan return sebagai nilai balik dari method tersebut.

Karena operasi x + y sendiri menghasilkan nilai dengan tipe int, kita sama sekali tidak memerlukan variabel hasil untuk menampung hasil operasi tersebut. Sebagai gantinya, kita bisa langsung memberikan operasi x + y ke pernyataan return seperti pada definisi baru method Penjumlahan() di bawah ini.

static int Penjumlahan(int x, int y)
{
    return x + y;
}

Lebih ringkas, bukan?

Di C#, kita bahkan bisa meringkasnya lebih jauh lagi menggunakan konstruksi yang dinamakan expression-embodied member seperti yang ditunjukkan oleh kode program di bawah ini.

static int Penjumlahan(int x, int y) => x + y;

Jauh lebih ringkas, bukan?

Tanda => disebut dengan operator lambda. Operator yang mirip dengan anak panah ini menyatakan bahwa nilai balik dari method di sebelah kirinya adalah hasil dari operasi yang “ditunjuk” oleh anak panah di sebelah kanannya.

Memanggil Method Sebagai Ekspresi

Sebuah method yang memiliki nilai balik, bisa kita gunakan sebagai sebuah ekspresi pada sebuah pernyataan. Ekspresi sendiri sederhananya adalah suatu operasi yang menghasilkan sebuah nilai.

Pada contoh kode program sebelumnya, kita menulis sebuah pernyataan untuk menampilkan hasil penjumlahan ke layar console seperti berikut ini.

Console.WriteLine($"4 + 5 = {Penjumlahan(4, 5)}");

Penjumlahan(4, 5) merupakan sebuah ekspresi karena menghasilkan nilai 9. Oleh karena itu, kita bisa menggunakan interpolasi string untuk menampilkan nilai dari ekspresi Penjumlahan(4, 5).

Karena method dengan nilai balik bisa kita gunakan sebagai ekspresi, kita bahkan bisa menggunakan sebuah method sebagai kondisi pada sebuah pernyataan if.

using System;

namespace BekerjaDenganMethod
{
    class Program
    {
        static void Main(string[] args)
        {
            if (AngkaYangSama(5, 5))
            {
                Console.WriteLine("Angkanya sama");
            }
            else
            {
                Console.WriteLine("Angkanya berbeda");
            }
        }

        static bool AngkaYangSama(int x, int y) => x == y;
    }
}

Method AngkaYangSama() akan mengevaluasi apakah kedua argumen yang diberikan bernilai sama atau tidak. Jika nilainya sama, maka method tersebut akan mengembalikan nilai boolean true, sebaliknya akan mengembalikan nilai boolean false jika kedua argumen yang diberikan nilainya berbeda.

Karena method AngkaYangSama() mengembalikan sebuah nilai bool, maka kita bisa menggunakannya sebagai kondisi dari pernyataan if seperti di bawah ini.

if (AngkaYangSama(5, 5))

Dengan memberikan angka 5 sebagai argumen untuk masing-masing parameter method AngkaYangSama(), maka hasil evaluasinya akan bernilai true.

Menggunakan Array Sebagai Nilai Balik

Selain menggunakan tipe data primitif seperti int, bool, string, dan lain-lain, kita juga bisa menggunakan array sebagai nilai balik dari sebuah method seperti yang ditunjukkan oleh kode program di bawah ini.

static string[] DapatkanNilaiArray()
{
    string[] strArray = { "Halo ", "Dari ", "DapatkanNilaiArray" };
    return strArray;
}

Sama halnya dengan mengiterasi sebuah array, kita juga bisa mengitarasi sebuah method dengan nilai balik sebuah array seperti yang ditunjukkan oleh kode program di bawah ini.

foreach (string str in DapatkanNilaiArray())
{
    Console.Write(str);
}

Selain itu, kita juga bisa menggunakan properti array seperti Length untuk mendapatkan ukuran dari DapatkanNilaiArray().

DapatkanNilaiArray().Length

Penutup

Pada materi kali ini, kita telah mempelajari bagaimana mendefinisikan sebuah method sederhana tanpa nilai balik dan parameter. Selain itu, kita juga telah mempelajari bagaimana mendefinisikan sebuah method dengan nilai balik dan parameter.

Kita bisa menyederhanakan method dengan nilai balik menggunakan konstruksi bernama expression-embodied member, yaitu mengganti pernyataan return dengan operator lambda.

Method dengan nilai balik bisa juga kita gunakan sebagai ekspresi.

Itu saja meteri kita kali ini. Jika Anda merasa kesulitan dalam memahami materi ini, jangan menyerah! Tulis kesulitan atau pertanyaan Anda di kolom komentar, saya akan membantu.

Selamat belajar!

Mendapat Manfaat Dari Tulisan Ini? Bantu Bagikan Ya...
Share on facebook
Facebook
Share on twitter
Twitter
Share on linkedin
LinkedIn
Share on whatsapp
WhatsApp
Tinggalkan Balasan

Close Menu