Anda di halaman 1dari 38

VARIABEL

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

Type = int, string, double, dan lain-lain contoh :

Hasilnya seperti gambar dibawah ini

Dalam contoh yang lain bisa juga seperti dibawah ini dalam mendklarasikan variabel

int nomerurut=45; //langsung diberi nilai double cash; int? biaya=null;

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

Rumus : if ( kondisi) { blok pernyataan }

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"); } } }

Hasil dari kode di atas akan seperti gambar dibawah ini ;

if else
Rumus nya ; if (kondisi) { kondisi true dijalankan } else { kondisi false dijalankan }

Contoh seperti dibawah ini :

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 { .... } }

Contoh penggunaannya adalah seperti dibawah ini :

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; } } }

hasil dari kode diatas seperti gambar dibawah ini

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()); }

hasilnya seperit gambar dibawah ini

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

Hasil dari kode diatas adalah seperti gambar 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

Hasil dari kode diatas adalah seperti gambar 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 };

Contoh pemakaian nya seperti dibawah ini

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

public Customer(parameter) { blok code; }

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;

Membuat property untuk mengakses field diluar class.

public string KodeBarang { get { return kodeBarang; } set { kodeBarang=value; } }

Membuat methode untuk mengambil nilai variabel kodeBarang;

public string kode()

{ 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 :

Cara menggunakan prosedur(void) diatas adalah seperti dibawah ini

Dan hasilnya seperti dibawah ini :

Contoh diatas adalah untuk menampilkan bilangan prima sebanyak 10 angka.

Dibawah ini adalah contoh untuk membuat function C# typedata namaFunction(parameter) { Statements; }

Contohnya seperti dibawah ini

Cara menggunakan function diatas adalah seperti dibawah ini

Dan hasilnya seperti dibawah ini

Catatan : Mungkin sebagian ada yang bingung dengan penamaan fungsi diatas, sebab nama fungsi bilanganGenap tapi hasilnya koq 9 yaitu bilangan ganjil

Function dalam C# sintaknya seperti dibawah ini

accessmodifier typedataYangdiKembalikan namaFunction(parameter)

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.

Contoh function tak berparameter :


private int perkalian() { int x = 5; int y = 2; return x * y; } private void button14_Click(object sender, EventArgs e) { int z = perkalian(); listBox1.Items.Add(z); } Hasil dari kode diatas adalah 10

Contoh function dengan parameter by reference


private int jumlah(ref int x) { int z=2; x = z + x; return x; } private void button10_Click(object sender, EventArgs e) {

int a = 12; int c = jumlah(ref a); listBox1.Items.Add(c); } Hasil dari kode diatas adalah 14

Contoh function dengan parameter by value


private int pengalian(int a, int b) { int z; z = a * b; return z; } private void button11_Click(object sender, EventArgs e) { int jumlah = pengalian(30, 2); listBox1.Items.Add(jumlah); } Hasil dari kode diatas adalah 60

Contoh function dengan parameter out


private int pengurangan(int x, out int z) { z = x - 2; return z; } private void button12_Click(object sender, EventArgs e) { int nilaiOut; int hasil = pengurangan(12, out nilaiOut); listBox1.Items.Add("Nilai Out = " + nilaiOut); listBox1.Items.Add("Nilai pengembalian function = " + hasil); }

Hasil kode diatas adalah : Nilai Out = 10 Nilai pengembalian function = 10

Contoh function dengan params


private string ganjil(params int[] bil) { StringBuilder angka = new StringBuilder(); foreach (int i in bil) { if (i % 2 != 0) { angka.Append(i); } } return angka.ToString(); } private void button13_Click(object sender, EventArgs e) { int[] i = { 1, 2, 3, 4, 5, 6, 7, 8, 9 }; string bilGanjil=ganjil(i); listBox1.Items.Add(bilGanjil); } Hasil kode diatas adalah 1 3 5 9

Bila dalam Visual Basic procedure di deklarasikan dengan Sub, maka di C# menggunakan kata void. Dengan rumus seperti dibawah ini :

accessmodifier void namaProsedur(parameter) { blok statement }

Contoh dibawah ini akan mencetak bilangan Prima sebanyak parameter yang di Input

Cara manggilnya seperti dibawah ini

Karena parameter yang dimasukkan adalah 10, yang berarti akan mencetak bilangan Prima sebanyak 10 angka, maka bila di jalankan hasilnya seperti dibawah ini

Parameter Dalam Procedure


Setiap procedure (void) bisa menerima parameter, ada 4 parameter dalam C# yaitu parameter by value, by reference, by out dan parameter array. Defaultnya adalah parameter by value. Pada contoh procedure diatas, parameternya adalah by value, untuk mendefinisikan parameter by reference maka penulisannya harus di awali kata ref, begitu juga dengan out dan params sebagai parameter array.

Contoh parameter by reference


private void perkalian(ref int x) { int y=20; x = y * x; }

private void button6_Click(object sender, EventArgs e) {

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

Contoh parameter by value

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.

Contoh parameter out

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

Contoh parameter dengan params (parameter Array)

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.

Dibawah ini adalah Base Class

class kumpulanVariabel { SqlConnection conn; SqlDataAdapter da; DataSet ds = new DataSet; }

dibawah ini adalah Derived Class

class aksesData : kumpulanVariabel { static aksesData() { conn=new SqlConnection("Data Source=namaServer;Database=northwind;UID=sa;PWD=sa"); conn.Open(); }

public DataSet dataCustomer() {

da=new SqlDataAdapter("SELECT * FROM customer",conn); da.Fill(ds,"customer"); return ds; } }

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 hargaBarang { public virtual double harga() { return 150000; } }

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)