Memahami Bahasa Pemrograman tentulah tidak mudah, namun
apabila kita adalah seorang yang selalu pengen tahu dan suka sekali mengeksplor
kemampuan diri, belajar Bahasa pemrograman sangatlah menyenangkan, karena di
sini lah kita bisa menemukan berbagai tantangan. Nah kali ini kita akan
membahas tentang Array, Class, Method, dan Event pada
Bahasa Pemrograman C#. Apa itu Array? Apa itu Method ? Apa itu Class
dan Event ? Apa fungsi dari mereka semua ? Mari kita akan bahas disini.
Array Bahasa C#
Array pada umumnya merupakan variabel yang dapat menampung
banyak nilai sekaligus. Array dideklarasikan dengan tipe data diikuti dengan
sepasang kurung siku. Di seluruh Bahasa pemrograman, array tidak ada
bedanya. Berikut merupakan contoh Array :
Deklarasi array di atas hanya menghasilkan variabel array
kosong. Untuk memberi nilai awal pada array, lakukan salah satu dari cara
berikut:
Contoh pertama membuat 5 int kosong, sedangkan contoh kedua
membuat array dengan ukuran 3 dan langsung menugaskan nilai-nilai kepada
elemen-elemen array tersebut. Contoh ke tiga menunjukkan versi lain dari contoh
ke dua yang mengabaikan keyword "new". Contoh ke tiga juga
menunjukkan bahwa kita dapat menugaskan nilai bertipe apa saja kepada suatu
objek. Pada contoh ke tiga, kita menugaskan double, string, DateTime, bool dan
char sekaligus ke dalam array object tersebut.
Class pada C#
Kita mendefinisikan class di dalam namespace pada C#. Untuk
mendefinisikan suatu class sederhana, kita tuliskan dalam namespace:
[access modifier] class [nama class] {
//Member-member
pada class
}
Access modifiers pada C# akan dijelaskan terakhir pada
bagian ini. Untuk sekarang, cukup gunakan public untuk semua class. Sebagai
contoh, kita dapat membuat class Mobil sebagai berikut:
namespace Belajar1 {
class Program {
static void
Main(string[] args) {
}
}
public class Mobil {
public
double kecepatan;
public
double bensin;
public
double posisi;
public
string nama;
public void
percepat() {
this.kecepatan
+= 10;
this.bensin
-= 5;
}
public void
maju() {
this.posisi
+= this.kecepatan;
this.bensin
-= 2;
}
public void
isiBensin(double bensin) {
this.bensin
+= bensin;
}
}
}
Perhatikan bahwa class Mobil berada di dalam namespace
Belajar1 setingkat dengan class Program (dalam hal level kurung kurawalnya). Di
sini kita telah melakukan proses abstraksi. Pada class Mobil di atas,
kecepatan, bensin, posisi dan nama adalah fields, sedangkan percepat, maju dan
isiBensin adalah method. Field, Property dan Mehtod akan dijelaskan lain kali.
Method pada C#
Method
adalah sekumpulan pernyataan yang akan dijalankan ketika dipanggil. Untuk
mendefiniskan suatu method pada C#:
[Access
modifier] [tipe data] [nama method] (parameter1, parameter2, ...) {
//Kumpulan perintah
}
Dari
struktur di atas:
Access modifier, untuk saat ini, gunakan saja
access modifier public.
Tipe data, bisa berupa void atau
tipe data C# lainnya, termasuk enum atau class custom. Merupakan tipe data yang
dihasilkan method.
Nama method, berupa suatu identifier yang
valid.
Parameter, sekumpulan variabel pada method
untuk berkomunikasi dengan program di luar method. Method juga bisa tidak
memiliki parameter.
Kumpulan perintah, perintah perintah yang akan
dijalankan ketika method dipanggili.
Suatu
method harus ditempatkan di dalam suatu class, Method adalah salah satu bentuk
dari member suatu class. Suatu method dipanggiil / dijalankan dengan menuliskan
namanya.
Method void
Suatu
method void adalah suatu method yang hanya menjalankan sekumpulan perintah dan
tidak menghasilkan suatu nilai (Tetapi masih dapat menampilkan sesuatu ke
layar). Sebagai contoh:
namespace
Belajar2 {
class
Program {
static
void Main(string[] args) {
ContohMethod
met = new ContohMethod();
met.Pemisah();
//Akan menampilkan pemisah
}
}
public
class ContohMethod {
public
void Pemisah() {
Console.WriteLine("----------------------");
Console.WriteLine("----------------------");
}
}
}
Perintah return pada C#
Pada
method void, suatu perintah return akan mengakhiri suatu method seperti yang
telah dijelaskan sebelumnya di bagian kondisi pada C#. Bagi method dengan
tipe data selain void, perintah return harus menyertakan suatu nilai dengan tipe
data yang sama dengan tipe data method yang bersangkutan. Pada class
ContohMethod, tambahkan method berikut:
public
void TampilBilanganRandom() {
Random
r = new Random();
int
angka = r.Next(1, 50);
if
(angka > 25) {
Console.WriteLine("Terlalu
panjang");
return;
}
for
(int i = 1; i <= angka; i++) Console.Write(i + " ");
Console.WriteLine();
}
Jangan
lupa panggil method tersebut pada method Main pada class Program.
static
void Main(string[] args) {
ContohMethod
met = new ContohMethod();
met.TampilBilanganRandom();
met.Pemisah();
Console.ReadKey();
}
Method
tersebut akan menampilkan sederet angka jika angka random lebih kecil dari 25.
Selain itu, ia hanya akan menampilkan "Terlalu panjang". Tanpa
perintah return, kode di atas masih akan terus menampilkan angka angka setelah
menampilkan "Terlalu panjang". Tetapi dengan perintah return, aliran
program akan keluar dari method dan sisa kode pada method tersebut akan
diabaikan. Jika tipe data method bukan void, perintah return harus menyertakan
suatu nilai yang akan menjadi nilai method tersebut. Sebagai contoh, tambahkan
method berikut ke dalam class Contoh Method:
public
int GaussianRandom() {
Random
r = new Random();
int
angka1 = r.Next(0, 10);
int
angka2 = r.Next(0, 10);
int
angka3 = r.Next(0, 10);
return
angka1 + angka2 + angka3;
}
Untuk
mencoba method tersebut, tambahkan pemanggilan method GaussianRandom pada
method Main, sehingga kodenya menjadi:
static void
Main(string[] args) {
ContohMethod
met = new ContohMethod();
met.TampilBilanganRandom();
met.Pemisah();
Console.WriteLine(met.GaussianRandom());
met.Pemisah();
Console.ReadKey();
}
Topik
mengenai random Gaussian berada di luar pembahasan kita. Anggap saja sebagai
bentuk lain dari random. Suatu method dengan nilai return sebaiknya digunakan
seperti suatu variabel seperti ditunjukkan pada kode di atas.
Parameter method pada C#
Suatu
method dapat mejadi lebih interaktif dengan parameter. Sebagai contoh:
public
int Max(int a, int b) {
if
(a > b) return a; else return b;
}
Contoh
perintah yang menggunakan method di atas sebagai berikut:
Console.WriteLine("Antara
2 dan 10, " + met.Max(2, 10) + " lebih besar");
Parameter
optional pada C#
Parameter
optional / pilihan, berarti nilai untuk parameter yang bersangkutan dapat
disertakan atau tidak disertakan. Kita dapat mengubah method Max di atas agar
dapat membandingkan dua atau tiga nilai sekaligus:
public
int Max(int a, int b, int c = Int32.MinValue) {
int
max1 = (a > b) ? a : b;
return
(c > max1) ? c : max1;
}
Sekarang,
kita masih dapat menggunakan method tersebut dengan hanya dua parameter,
tetapikita juga dapat menggunakan method tersebut dengan tiga parameter:
Console.WriteLine("Antara
2 dan 10, " + met.Max(2, 10) + " lebih besar");
Console.WriteLine("5,
8, dan 7, yang terbesar adalah: " + met.Max(5, 8, 7));
Untuk
mendeklarasikan parameter opsional, kita cukup memberi nilai default kepada
parameter yang bersangkutan. Pada contoh di atas, variabel c diberi nilai
terkecil pada int, sehingga tidak akan mempengaruhi hasil perbandingan ketika
hanya dua parameter yang diberikan. Perlu diketahui bahwa parameter-parameter
opsional harus diletakkan sebagai parameter-parameter terakhir.
Method overloading pada C#
Jika
Anda mencoba memasukkan double sebagai parameter untuk method Max di atas, akan
timbul error. Kita dapat membuat method lain dengan nama yang sama yang
menerima parameter yang berbeda. Sebagai contoh:
public
double Max(double a, double b, double c = double.MinValue) {
double
max1 = (a > b) ? a : b;
return
(c > max1) ? c : max1;
}
Dengan
begitu, method Max kita sudah mendukung tipe data double.
Parameter referensi pada C#
Suatu
parameter sederhana yang dimasukkan ke dalam suatu method nilainya akan tetap
meskipun diubah di dalam method. Sebagai contoh:
public
void tukar(int a, int b) {
int
sementara = a;
a
= b;
b
= sementara;
}
Jika
kita gunakan method di atas:
int
a = 1000;
int
b = 50;
met.tukar(a,
b);
Console.WriteLine(a);
//masih 1000
Program
masih akan menampilkan 1000. Akan tetapi apabila kita menyatakan parameternya
sebagai referensi:
public
void tukar(ref int a, ref int b) {
int
sementara = a;
a
= b;
b
= sementara;
}
Dan
menggunakan methodnya juga dengan kata kunci ref:
int
a = 1000;
int
b = 50;
met.tukar(ref
a, ref b);
Console.WriteLine(a);
//Menampilkan 50
Program
akan menampilkan 50 yang semulanya merupakan nilai variabel b. Perlu diketahui
juga bahwa variable yang dideklarasikan di dalam suatu method akan hilang
begitu alur program keluar dari method.
Parameter out pada C#
Parameter
Out menyediakan cara lain untuk menugaskan nilai ke suatu variabel menggunakan
method. Sebagai contoh:
public
bool Kelipatan3(int a, out int terdekat) {
int
mod = a % 3;
terdekat
= (mod == 2) ? a + 1 : a - mod;
if
(mod == 0) return true; else return false;
}
Method
di atas sesungguhnya menghasilkan dua output. Pertama adalah menentukan apakah
angka yang bersangkutan merupakan kelipatan 3 atau bukan. Kedua, method
tersebut juga menghasilkan faktor kelipatan 3 yang paling dekat dengan angka
tersebut. Untuk menggunakan method tersebut:
int
angka = 7;
int
terdekat;
bool
BerupaFaktor = met.Kelipatan3(angka, out terdekat);
if
(BerupaFaktor) Console.WriteLine(angka + " adalah kelipatan 3");
else
Console.WriteLine(angka + " bukan kelipatan 3. Kelipatan terdekat: "
+ terdekat);
Method rekursif pada C#
Suatu
method dapat dipanggil dari method lain pada class yang sama yang bukan method
static (method static akan dijelaskan segera). Sebagai contoh:
public
void PemisahBesar() {
for
(int i = 1; i <= 5; i++) Pemisah();
}
Method
yang memanggil dirinya sendiri di dalam dirinya disebut method rekursif.
Sebagai contoh:
public
int faktorial(int n) {
if
(n <= 1) return 1;
return
faktorial(n - 1) * n;
}
Silahkan
coba panggil method di atas dengan
perintah Console.WriteLine("Factorial of 5: " +
met.factorial(5));. Program akan menampilkan 120 ke layar. Nilai 120 berasal
dari:
faktorial(5)
faktorial(4)
* 5
faktorial(3)
* 4 * 5
faktorial(2)
* 3 * 4 * 5
faktorial(1)
* 2 * 3 * 4 * 5
1
* 2 * 3 * 4 * 5
120
Method static pada C#
Method
static adalah method yang dapat diakses tanpa meng-instantiate (membuat objek)
suatu class. Method static dapat dipanggil langsung dari class. Karena ia dapat
dipanggil tanpa meng-instantiate classnya, kata kunci "this" tidak
dapat digunakan di dalam method static. Class static juga tidak dapat memanggil
method yang lain yang berada pada class yang sama tanpa meng-instantiate class
tersebut, terkecuali method yang dipanggil juga suatu method static.
Kita
sebetulnya dapat membuat method-method lain selain method Main pada class
Program kita. Tetapi kita tidak akan bisa memanggil method tersebut dalam
method main apabila method tersebut bukan method static. Method static seperti
method Main hanya dapat memanggil method static lain di dalamnya. Sebagai
contoh, buat method berikut pada class Program:
public static void
Ulang(char karakter, int jumlah) {
for (int
i = 1; i <= jumlah; i++) Console.Write(karakter);
Console.WriteLine();
}
Dan
panggil method tersebut pada method Main:
Ulang('*',
30);
Program
akan menampilkan karakter bintang 30 kali. Apabila kita mendeklarasikan method
di atas pada class ContohMethod, kita memanggil method tersebut dengan cara:
ContohMethod.Ulang('*',
30);
Event pada Bahasa C#
Event
merupakan salah satu bagian komponen yang terdapat di dalam properties pada IDE
Microsoft Visual C#. Tanpa adanya bantuan Event, mungkin program aplikasi yang
kita buat tidak akan bisa berjalan. Lantas, apa sih sebenarnya Event itu ?
Event adalah sebuah perintah atau kejadian yang akan di eksekusi oleh program
saat algoritma baris code yang kita buat di jalankan oleh user. Sebenarnya
tanpa di sadari, kita telah sering mengeksekusi sebuah event yang ada di dalam
program aplikasi. Sebagai contoh, saat kita mengoperasikan Microsoft Word.
Tentu semua tahu donk.... software yang satu ini. hehe Pada saat kita membuka
sebuah dokumen dan hendak ingin menutup dokumen tersebut kadang muncul sebuah
message window. "Do you want to save change........" Nah, itulah
salah satu bentuk event yang tanpa disadari telah dijalankan oleh kita sebagai
user. Contoh lain penggunaan event adalah saat kita hendak membuka dokumen itu
sendiri, dengan menekan kombinasi tombol shortcut Ctrl+O atau melalui menu File
--> Open, kita telah mengeksekusi sebuah perintah yaitu berupa event
click.
Sekian pembahasan tentang Array, Method, Class dan Event
pada Bahasa C, Selamat belajar bahasa C# !
