sElamat Belajar :) ,, sEmoga bErmanfA'at ^_^

Jumat, 17 Mei 2013

User Defined Function / Method


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 :
  1. using System;  
  2. class Program  
  3. {  
  4.     static void Main(string[] args)  
  5.     {  
  6.         Print();  
  7.     }  
  8.     static void Print()  
  9.     {  
  10.         Console.WriteLine("Method Print Sukses Dipanggil!!!");  
  11.     }  
  12. }  
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 :
  1. using System;  
  2.   
  3. class Program  
  4. {  
  5.     static void Main(string[] args)  
  6.     {  
  7.         Maksimum(5, 7);  
  8.     }  
  9.     static void Maksimum(int a, int b)  
  10.     {  
  11.   
  12.         if (a < b)  
  13.             Console.WriteLine("Nilai Maksimumnya Adalah : " + a);  
  14.         else if (b > a)  
  15.             Console.WriteLine("Nilai Maksimumnya Adalah : " + b);  
  16.         else  
  17.             Console.WriteLine("Dua Bilangan Tersebut Sama Besar");  
  18.     }  
  19. }  

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 :
  1. using System;  
  2.   
  3. class Program  
  4. {  
  5.     static void Main(string[] args)  
  6.     {  
  7.         Console.WriteLine(Kuadrat(5));  
  8.     }  
  9.     static int Kuadrat(int n)  
  10.     {  
  11.         return n * n;  
  12.     }  
  13. }  
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 :
  1. 5! = 4! * 5  
  2. 4! = 3! * 4  
  3. 3! = 2! * 3  
  4. 2! = 1! * 2  
  5. 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 :
  1. using System;  
  2. class Program  
  3. {  
  4.     static void Main(string[] args)  
  5.     {  
  6.         Console.WriteLine(Faktorial(5));  
  7.     }  
  8.     static int Faktorial(int n)  
  9.     {  
  10.         if (n == 1)  
  11.             return 1;  
  12.         else  
  13.             return n * Faktorial(n - 1);  
  14.     }  
  15. }  

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