User
Defined Function / Method
Method atau fungsi dalam C# adalah suatu cara
untuk memecah program menjadi beberapa bagian, sehingga ketika mengerjakan
program tersebut bisa dilakukan pembagian tugas kepada beberapa orang. Ketika
kita sudah mendevelop program dalam sekala besar maka kita perlu menggunakan
yang namanya Method.
Untuk lebih jelasnya perhatikan program dibawah
ini :
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Print();
- }
- static void Print()
- {
- Console.WriteLine("Method Print Sukses Dipanggil!!!");
- }
- }
Keyword
static disini diperlukan karena Method tersebut berada di main class yang juga
bersifat static sehingga Method Method menyertainya juga harus bersifat static.
Keyword void merupakan salah satu indikasi bahwa Method ini tidak mereturn/mengembalikan nilai apapun, untuk Method yang mereturn/mengembalikan suatu nilai tertentu akan kita bahas nanti.
Method diatas adalah salah satu Method yang tidak menerima passing variable apapun dan juga tidak mereturn variable apapun, untuk contoh Method yang menerima passing variable tertentu perhatikan contoh dibawah ini :
Keyword void merupakan salah satu indikasi bahwa Method ini tidak mereturn/mengembalikan nilai apapun, untuk Method yang mereturn/mengembalikan suatu nilai tertentu akan kita bahas nanti.
Method diatas adalah salah satu Method yang tidak menerima passing variable apapun dan juga tidak mereturn variable apapun, untuk contoh Method yang menerima passing variable tertentu perhatikan contoh dibawah ini :
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Maksimum(5, 7);
- }
- static void Maksimum(int a, int b)
- {
- if (a < b)
- Console.WriteLine("Nilai Maksimumnya Adalah : " + a);
- else if (b > a)
- Console.WriteLine("Nilai Maksimumnya Adalah : " + b);
- else
- Console.WriteLine("Dua Bilangan Tersebut Sama Besar");
- }
- }
Dari contoh diatas dapat kita ketahui bahwa Method Maksimum membutuhkan dua variable integer untuk dipassingkan, dan dari dua variable integer yang dipassingkan tersebut akan dicetak variable mana yang lebih besar. Selain itu ada juga Method yang memiliki nilai kembalian, atau return value, sebagai contoh perhatikan program untuk mencari nilai kuadrat bilangan integer dibawah ini dibawah ini :
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine(Kuadrat(5));
- }
- static int Kuadrat(int n)
- {
- return n * n;
- }
- }
Untuk
membuat Method yang memiliki nilai kembalian/return value, maka kita harus
menghilangkan keyword void pada Method yang kita buat dan menggantikannya
dengan jenis variable kembalian kita, dimana dalam contoh tersebut nilai
kembalian / return value berupa integer.
Pengenalan Teknik Rekursif
Dalam suatu Method kita dapat memanggil Method yang lainnya, atau bahkan memanggil Method itu sendiri, peristiwa pemanggilan Method oleh dirinya sendiri inilah yang disebut rekursif. Contoh sederhana dari rekursif adalah faktorial (!).
Untuk lebih jelasnya perhatikan contoh dibawah ini :
Pengenalan Teknik Rekursif
Dalam suatu Method kita dapat memanggil Method yang lainnya, atau bahkan memanggil Method itu sendiri, peristiwa pemanggilan Method oleh dirinya sendiri inilah yang disebut rekursif. Contoh sederhana dari rekursif adalah faktorial (!).
Untuk lebih jelasnya perhatikan contoh dibawah ini :
- 5! = 4! * 5
- 4! = 3! * 4
- 3! = 2! * 3
- 2! = 1! * 2
- 1! = 1
Dari
contoh diatas dapat kita lihat bahwa sebenarnya faktorial dari bilangan n,
merupakan faktorial bilangan n-1 dikali dengan n, dan begitu seterusnya hingga
n=1. Ketika n=1 maka ada kasus spesial yaitu
:
1!=1.
Untuk implementasinya pada C#, perhatikan program dibawah ini :
Untuk implementasinya pada C#, perhatikan program dibawah ini :
- using System;
- class Program
- {
- static void Main(string[] args)
- {
- Console.WriteLine(Faktorial(5));
- }
- static int Faktorial(int n)
- {
- if (n == 1)
- return 1;
- else
- return n * Faktorial(n - 1);
- }
- }
if pertama merupakan rekursif case, yaitu bagian yang membuat program tersebut loopping atau melakukan perulangan secara rekursif, dan bagian else adalah base case, yaitu bagian yang membuat perulangan rekursif tadi berhenti. Seperti halnya perulangan biasa, jika tidak ada base case maka Method rekursif ini akan mengalami infinite loop yang akan menghabiskan memori.
Sumber
:
Tidak ada komentar:
Posting Komentar