C# – Methods
Metode itu adalah kumpulan pernyataan yang bekerja sama untuk melakukan tugas tertentu. Setiap program C# minimal punya satu kelas dengan metode bernama Main.
Untuk menggunakan metode, kamu perlu:
- Mendefinisikan metode tersebut
- Memanggil metode tersebut
Defining Methods in C#
Ketika kamu mendefinisikan sebuah metode, sebenarnya kamu mendeklarasikan elemen-elemen strukturnya. Berikut ini adalah sintaks untuk mendefinisikan sebuah metode dalam C#
<Access Specifier> <Return Type> <Method Name>(Parameter List) {
Method Body
}
Berikut ini adalah elemen-elemen yang terdapat dalam sebuah metode:
- Access Specifier − Ini menentukan visibilitas variabel atau metode dari kelas lain.
- Return type − Sebuah metode bisa mengembalikan nilai. Return type adalah tipe data dari nilai yang dikembalikan oleh metode. Jika metode tersebut tidak mengembalikan nilai, maka return type-nya adalah void.
- Method name − Nama metode adalah pengenal unik dan bersifat case sensitive. Nama metode tidak boleh sama dengan pengenal lain yang sudah dideklarasikan dalam kelas.
- Parameter list − Diapit oleh tanda kurung, parameter-parameter digunakan untuk mengirim dan menerima data dari sebuah metode. Daftar parameter merujuk pada tipe, urutan, dan jumlah parameter dari sebuah metode. Parameter bersifat opsional; artinya, sebuah metode bisa tidak memiliki parameter.
- Method body − Ini berisi kumpulan instruksi yang diperlukan untuk menyelesaikan aktivitas yang dibutuhkan.
Contoh :
Berikut ini adalah kode yang menunjukkan sebuah fungsi FindMax yang mengambil dua nilai integer dan mengembalikan nilai yang lebih besar di antara keduanya. Fungsi ini memiliki access specifier public, sehingga bisa diakses dari luar kelas menggunakan instance dari kelas tersebut.
class NumberManipulator {
public int FindMax(int num1, int num2) {
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
...
}
Calling Methods in C#
Berikut ini adalah contoh pemanggilan metode menggunakan nama metodenya:
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int FindMax(int num1, int num2) {
/* local variable declaration */
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
static void Main(string[] args) {
/* local variable definition */
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
//calling the FindMax method
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
Kalo kode di atas di-compile dan dijalankan, hasilnya bakal seperti ini nih:
Max value is : 200
Kamu juga bisa memanggil public metode dari kelas lain dengan menggunakan instance dari kelas tersebut. Sebagai contoh, jika metode FindMax milik kelas NumberManipulator, kamu bisa memanggilnya dari kelas lain seperti Test.
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int FindMax(int num1, int num2) {
/* local variable declaration */
int result;
if(num1 > num2)
result = num1;
else
result = num2;
return result;
}
}
class Test {
static void Main(string[] args) {
/* local variable definition */
int a = 100;
int b = 200;
int ret;
NumberManipulator n = new NumberManipulator();
//calling the FindMax method
ret = n.FindMax(a, b);
Console.WriteLine("Max value is : {0}", ret );
Console.ReadLine();
}
}
}
Kalo kode di atas di-compile dan dijalankan, hasilnya bakal seperti ini nih:
Max value is : 200
Recursive Method Call
Sebuah metode bisa memanggil dirinya sendiri. Hal ini disebut sebagai rekursi. Berikut ini adalah contoh yang menghitung faktorial dari sebuah angka menggunakan fungsi rekursif.
using System;
namespace CalculatorApplication {
class NumberManipulator {
public int factorial(int num) {
/* local variable declaration */
int result;
if (num == 1) {
return 1;
} else {
result = factorial(num - 1) * num;
return result;
}
}
static void Main(string[] args) {
NumberManipulator n = new NumberManipulator();
//calling the factorial method {0}", n.factorial(6));
Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
Console.ReadLine();
}
}
}
Kalo kode di atas di-compile dan dijalankan, hasilnya bakal seperti ini nih:
Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320
Passing Parameters to a Method
Ketika sebuah metode dengan parameter dipanggil, kamu perlu menyampaikan nilai-nilai parameter ke dalam metode tersebut. Ada tiga cara yang bisa digunakan untuk menyampaikan parameter ke dalam metode:
Sr.No. | Mechanism & Description |
---|---|
1 | Value parameters Metode ini akan menyalin nilai aktual dari argumen ke dalam parameter formal metode. Dalam hal ini, perubahan yang dilakukan pada parameter di dalam metode tidak berpengaruh pada argumen. |
2 | Reference parameters Metode ini akan menyalin referensi ke lokasi memori dari argumen ke dalam parameter formal. Ini berarti perubahan yang dilakukan pada parameter akan mempengaruhi argumen. |
3 | Output parameters Metode ini digunakan untuk mengembalikan lebih dari satu nilai. |