Variabel adalah lokasi penyimpanan sementara dalam memory komputer. Anda bisa menempatkan data kedalam variabel dan mengambilnya kembali. Beberapa type variabel dalam C# yang sering digunakan adalah seperti int, string, bool, float, long, double, decimal Untuk mendeklarasikan variabel dalam C# rumusnya adalah seperti berikut ini
Dalam contoh yang lain bisa juga seperti dibawah ini dalam mendklarasikan variabel
Pada C#, juga di ijinkan untuk mendklarasikan variabel seperti dibawah ini : var nama="rudi" ; var jumlah = 0 ;
jadi type datanya secara explicit tidak perlu di deklarasikan, dan C# otomatis akan menyesuaikan dengan initial variabel tersebut. Seperti contoh diatas, variabel nama otomatis akan bertype string begitu juga dengan variabel jumlah akan bertype integer.
Operator Ternary ? Kalo Anda pernah menggunakan operator IIF pada Visual Basic, maka operator ternary yang dengan
simbol ? (tanda tanya) adalah sama fungsinya sebagai kondisi percabangan seperti hal nya kalo kita menggunakan IF sebagai kondisi percabangan. Rumus nya adalah seperti dibawah ini : Kondisi ? True, False keterangan : kalo kondisi terpenuhi berati true dijalankan expresinya, tapi kalo salah false dijalankan expresinya
Contoh :
private void button1_Click(object sender, EventArgs e) { string txt = (textBox1.Text == "devi") ? "devi" : String.Empty; textBox4.Text = txt; }
perhatikan kode diatas, pada saat button1 di klik variabel txt akan terisi apabila textBox1 berisi devi (true), bila tidak maka ga ada isinya (false). dan hasilnya seperti pada gambar dibawah ini
if Statement
Contoh nya seperti dibawah ini ; private void button1_Click(object sender, EventArgs e) { listBox1.Items.Clear(); for (int i = 1; i <= 10; i++) { //jika pembagian dgn 2 sisanya 0 if (i % 2 == 0) { listBox1.Items.Add(i + " Bilangan Genap"); } } }
if else
Rumus nya ; if (kondisi) { kondisi true dijalankan } else { kondisi false dijalankan }
private void button2_Click(object sender, EventArgs e) { listBox1.Items.Clear(); for (int i = 1; i <= 10; i++) { if (i % 2 == 0) {
listBox1.Items.Add(i + " Bilangan Genap"); } else { listBox1.Items.Add(i + " Bilangan Ganjil"); } } } hasil dari kode diatas seperti gambar dibawah ini
if else if
Contoh penggunaan ini adalah seperti berikut ini ;
Dan hasil dari kode diatas adalah seperti gambar dibawah ini
switch adalah bentuk lain dari penyeleksian ( if ) yang bisa melakukan banyak penyeleksian sekaligus berdasarkan parameter nilai yang diberikan. Sintaknya adalah seperti dibawah ini switch (parameterYangDiseleksi) { case { .... } }
private void button4_Click(object sender, EventArgs e) { listBox1.Items.Clear(); string[] days = { "Minggu", "Senin", "Selasa", "Rabu", "Kamis", "Jumat", "Sabtu" }; switch (DateTime.Now.DayOfWeek) { case DayOfWeek.Sunday: { listBox1.Items.Add("Sekarang hari " + days[0]); break; } case DayOfWeek.Monday: { listBox1.Items.Add("Sekarang hari " + days[1]); break; } case DayOfWeek.Tuesday: { listBox1.Items.Add("Sekarang hari " + days[2]); break; } case DayOfWeek.Wednesday: { istBox1.Items.Add("Sekarang hari " + days[3]); break; } case DayOfWeek.Thursday: { istBox1.Items.Add("Sekarang hari " + days[4]);
break; } case DayOfWeek.Friday: { listBox1.Items.Add("Sekarang hari " + days[5]); break; } default: { listBox1.Items.Add("Sekarang hari " + days[6]); break; } } }
for digunakan untuk melakukan Looping seperti halnya while. Gunakanlah for apabila sudah diketahui dengan pasti berapa kali statement yang akan di looping. contoh kodenya seperti dibawah ini for (int i = 0; i < 10; i++) { listBox1.Items.Add(i); }
kode diatas akan mencetak bilangan dari 0 sampai 9 seperti gambar dibawah ini
foreach biasanya digunakan untuk melakukan looping dari suatu Object Collection seperti Array, List, ArrayList, LinkedList, HashTable, Dictionary. Sintaknya adalah seperti dibawah ini foreach ( typedata namaVariabel in List )
Contohnya adalah seperti dibawah ini int[] angka=new int[10] {0,1,2,3,4,5,6,7,8,9}; foreach (int i in angka) { listBox1.Items.Add(i.ToString()); }
while akan melakukan looping selama kondisi yang dievaluasi itu bernilai true. Proses looping nya karena terjadi pada awal kondisi, maka while tidak menjamin proses looping akan dijalankan. Karena apabila kondisi yang di evaluasi bernilai false, maka proses looping akan langsung di skip. Contoh penggunaanya seperti dibawah ini
do...while digunakan untuk melakukan proses looping dengan mengecek kondisi perulangannya di akhir perulangannya (while). Jadi proses do...while ini akan melakukan proses loopingnya minimal sekali. Gunakanlah do loop ini apabila menginginkan looping dijlalankan minimal satu kali proses. Contohnya seperti terlihat dibawah ini
Array bisa dikatakan sebagai sekumpulan data yang memiliki type data yang sama. Ada array ber dimensi satu, dimensi dua dan dimensi banyak. namun pada prakteknya dimensi satu yang paling sering digunakan dalam pemrograman, meski dimensi dua juga digunakan sih
Cara mendklarasikan Array adalah seperti dibawah ini typedata[ ] namaArray = { initial array };
string[] data = { "satu", "dua", "tiga", "empat", "lima" }; for (int i = data.GetLowerBound(0); i <= data.GetUpperBound(0); i++) { listBox1.Items.Add(data[i]); } atau bisa juga seperti dibawah ini dengan variasi yang lain
string[] data = new string[5] { "satu", "dua", "tiga", "empat", "lima" }; for (int i = data.GetLowerBound(0); i <= data.GetUpperBound(0); i++) { listBox1.Items.Add(data[i]); } atau bisa juga seperti dibawah ini string[] data = new string[5]; data[0]="satu"; data[1]="dua"; data[2]="tiga"; data[3]="empat"; data[4]="lima"; foreach (string i in data)
{ listBox1.Items.Add(i); } Semua contoh kode diatas apabila dijalankan akan seperti gambar dibawah ini hasilnya :
List merupakan sebuah Object Collection yang lebih baik dari ArrayList, karena tanpa melalui proses Boxing seperti halnya pada ArrayList. Sehingga pengaksesan data didalamnya lebih cepat. Contoh penggunaanya adalah seperti dibawah ini Cara pertama ; string[] arr = new string[5] { "satu", "dua", "tiga", "empat", "lima" };
Cara kedua : List<string> data = new List<string>(new string[5] {"satu", "dua", "tiga", "empat", "lima"});
Cara ketiga List<string> data = new List<string>(); //data.Add("satu"); //data.Add("dua"); //data.Add("tiga"); //data.Add("empat"); //data.Add("lima"); Untuk mengambil data-datanya adalah seperti dibawah ini foreach (var item in data) { listBox1.Items.Add(item); } Dan hasilnya seperti gambar dibawah ini
Class pada C# adalah inti dari konsep OOP, yang merupakan wadah atau kumpulan yang bisa terdiri dari variabel(field), property maupun methode. Untuk membuat Class contohnya seperti dibawah ini
Dari gambar diatas, nama Class tersebut adalah Customer. Setiap Class pada C# selalu memiliki Constructor. Nama Constructor selalu sama dengan nama Classnya, seperti contoh dibawah ini
Constructor boleh digunakan atau tidak. Constructor akan selalu pertama kali dijalankan pada saat di Instantiated, biasanya constructor ini digunakan untuk meletakkan kode-kode yang sifatnya Initial seperti koneksi ke database Server, membuka tabel dll. Setelah class dibuat maka didalam class itu bisa ditambahkan property, methode dan variabel seperti dibawah ini:
Membuat field/variabel.
string kodeBarang;
{ return kodeBarang; }
Dibawah ini, adalah contoh untuk mengakses Class tersebut berikut variabel dan methodenya
private void button3_Click(object sender, EventArgs e) { Customer cust = new Customer(); cust._kodeBarang = "XXX-102003"; string Kode = cust.kode(); listBox1.Items.Add(Kode); }
Sebenarnya kalo sudah pernah membuat fungsi dan prosedur pada Visual Basic, tentulah mempelajari methode pada C# ini menjadi mudah, karena pada prinsipnya adalah sama. Untuk membuat prosedur pada C# adalah seperti dibawah ini void namaProsedur(paramater) { Stamements }
Contoh :
Dibawah ini adalah contoh untuk membuat function C# typedata namaFunction(parameter) { Statements; }
Catatan : Mungkin sebagian ada yang bingung dengan penamaan fungsi diatas, sebab nama fungsi bilanganGenap tapi hasilnya koq 9 yaitu bilangan ganjil
AccessModifier = private, public, internal, protected. typedata = int, string, double, single dan lain-lain.
Sama seperti procedure (void) dalam function juga ada 4 parameter yaitu byval, byref, out dan params.
int a = 12; int c = jumlah(ref a); listBox1.Items.Add(c); } Hasil dari kode diatas adalah 14
Bila dalam Visual Basic procedure di deklarasikan dengan Sub, maka di C# menggunakan kata void. Dengan rumus seperti dibawah ini :
Contoh dibawah ini akan mencetak bilangan Prima sebanyak parameter yang di Input
Karena parameter yang dimasukkan adalah 10, yang berarti akan mencetak bilangan Prima sebanyak 10 angka, maka bila di jalankan hasilnya seperti dibawah ini
int bil = 10; perkalian(ref bil); listBox1.Items.Add(bil); } hasil dari nilai diatas adalah 200. Sekarang perhatikan penjelasan dibawah ini, kenapa hasilnya bisa 200, padahal yang nilai yang di input 10.
Dari gambar diatas, didapatkan, pada saat procedure perkalian dipanggil, nilai yang dikirim (variabel bil) adalah 10 dan diterima oleh parameter x lalu diolah dengan di kalikan 20 (variabel y dalam procedure). Setelah selesai diolah, maka hasilnya dikembalikan lagi sama si pemanggil procedure (dalam hal ini sipemanggil adalah button6) jadi variabel bil berubah nilainya dari angka 10 menjadi angka 200. Inilah yang dimaksud by reference, yang akan mengembalikan nilainya ke variabel pemanggil
private void namaPelanggan(string nama) { nama = "Rudi"; } private void button7_Click(object sender, EventArgs e) { string nama = "evi"; namaPelanggan(nama); listBox1.Items.Add(nama); } Hasil dari kode diatas adalah evi. Kenapa hasilnya tetep evi, padahal nama dalam procedure sudah diganti jadi Rudi, perhatikan gambar dibawah ini sebagai penjelasanya.
Dari gambar diatas, pada saat procedure namaPelanggan dipanggil, yang dikirimkan valuenya berupa string evi, dan di dalam procedure itu namanya diolah kembali jadi Rudi dan memang nama itu sudah berubah dari evi menjadi Rudi. Tetapi, karena sifat dari by val ini adalah pengiriman berdasarkan nilainya, maka meskipun nilainya itu telah berubah, namun hasil akhirnya adalah tetap berdasarkan nilai yang dikirim tersebut. Jadi nilainya aslinya tidak berubah berbeda dengan by reference yang akan mengubah nilai aslinya.
private void penjumlahan(int x, out int z) { int y=5; z=y+x; } private void button8_Click(object sender, EventArgs e) { int hasil; penjumlahan(15, out hasil); listBox1.Items.Add(hasil); } Hasil procedure diatas adalah 20. Jika diperhatikan kode diatas, parameter out ini sebenarnya akan mengirimkan nilainya ke variabel pemanggil yang akan menampung hasilnya, dalam hal ini variabel pemanggil adalah hasil yang akan menampung parameter out dari procedure (parameter z). Ilustrasi dari hasil diatas seperi gambar dibawah ini
private void daftarNama(params string[] namaAnggota) { foreach (string nama in namaAnggota) { listBox1.Items.Add(nama); } } private void button9_Click(object sender, EventArgs e) { string[] Nama = { "Silva", "Raski", "Reza" }; daftarNama(Nama); } Hasil kode diatas adalah : Silva Raski Reza
Parhatikan ilustrasi pada gambar dibawah ini untuk menjelaskan kode diatas
Setelah mengirimkan 3 nama ke parameter dalam procedure, selanjutnya parameter tersebut di ambil nilainya dengan foreach untuk ditampilkan pada listbox.
Encapsulation adalah suatu penyembunyian data supaya tidak bisa langsung diakses dari luar class tanpa melalui property dan methode nya. Pada saat membuat variabel(field) yang memiliki Access Modifier Public, maka variabel ini dipastikan bisa di akses diluar class itu sendiri. Namun adakalanya bagi programmer informasi yang ada di dalam class tersebut di sembunyikan agar tidak semua resource dapat di tarik begitu saja dari luar class. Sebagai contoh, pada saat ada sms masuk, kita tidak tau bagaimana sms itu bisa masuk, namun informasi didalamnya kita bisa baca dan bisa kita modify lagi trus di forward. Konsep yang sama bisa diterapkan pada Encapsulation ini. Sebagai contoh :
class Login { //---informasi data ini yang di encapsulation agar tidak langsung diakses dluar class private string serverName; private string userName; private string password; //---ini adalah property utk mengisi data yg di encapsul(dibungkus) dari luar class public string _serverName { get { return serverName; } set { serverName = value; } } public string _userName { get { return userName; } set { userName = value; } } public string _password { get { return password; } set { password = value; } } //---ini methode utk mengambil informasi data yg di encapsul, tanpa methode ini //---data yg di encapsul tidak bisa diambil informasinya (isi datanya) public SqlConnection connectDatabase() { SqlConnectionStringBuilder conn = new SqlConnectionStringBuilder();
conn.DataSource = serverName; conn.UserID = userName; conn.Password = password; SqlConnection db = new SqlConnection(conn.ConnectionString); try { db.Open(); MessageBox.Show("Koneksi ke server berhasil"); } catch (Exception ex) { MessageBox.Show(ex.Message); } return db; } }
Cara menggunakan kode diatas adalah seperti dibawah ini private void buttonLogin_Click(object sender, EventArgs e) { Login cls = new Login(); cls._serverName = textBox1.Text; cls._userName = textBox2.Text; cls._password = textBox3.Text; SqlConnection conn = cls.connectDatabase(); } Dan kalo dijalankan maka hasilnya akan seperti gambar dibawah ini :
Inheritance, adalah salah satu konsep utama dalam Pemrograman Berorientasi Objek. Inheritance memperbolehkan penggunaan kembali kode-kode yang ada pada Base Class nya untuk diturunkan pada Derived Class. Contohnya seperti dibawah ini.
Dari contoh class diatas, Class kumpulanVariabel hanya berisi variabel-variabel yang akan diturunkan dalam Class aksesData yang digunakan untuk mengeset koneksi database dan mengambil data tabel.
Polymorphism berasal dari kata poly yang berarti banyak dan morph yang berarti bentuk. Jadi Polymorphism mengacu pada suatu type yang memiliki banyak bentuk. Dalam pemrograman berorientasi objek, Polymorphism berati bisa dikatakan memiliki banyak bentuk dalam methode, artinya satu nama methode bisa memiliki behavior(perlakuan) yang beragam fungsinya. Apabila penggunaanya masih dalam satu nama class yang sama itu sering di istilahkan dengan Overloading Methode, tetapi bila digunakan pada Derived Class (Class turunan) istilahnya Override Methode. Contoh Overloading Methode dalam class adalah seperti dibawah ini
Perhatikan kode diatas, dalam hal ini ada satu nama methode "perhitungan" didalam class namun memiliki fungsi yang berbeda-beda dalam melakukan perhitungan angka, inilah yang disebut Polymorphism.
Contoh Override dibawah ini melibatkan dua class yang berbeda (Base Class dan Derived Class)
class barang : hargaBarang { public override double harga() { double total = base.harga(); total = total + (total * 0.1); return total; } }
Untuk mengakses kode diatas contohnya seperti dibawah ini private void button4_Click(object sender, EventArgs e) { Barang brg = new Barang(); double harga = brg.harga(); listBox1.Items.Add(harga); } Perhatikan pada class hargaBarang (Base Class) methode nya menggunakan kata kunci virtual,
yang artinya pada derived class (class turunan) methode tersebut bisa di replace(dimodify). Sedangkan pada class barang (Derived Class) methode nya menggunakan kata kunci override, yang artinya methode tersebut mereplace methode yang ada pada base class nya dengan nama yang sama tapi menghasilkan output yang berbeda. Hasil methode diatas adalah total = total + (total * 0.1) yaitu 165,000 dimana 150,000 berasal dari base class dan 15,000 berasal dari perkalian (total x 0.1)