C#

43
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

Transcript of C#

Page 1: C#

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

 

 

Page 2: C#

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.

Page 3: C#

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

Page 4: C#

 

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

Page 5: C#

 

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

Page 6: C#

         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 ;

Page 7: C#

Dan hasil dari kode diatas adalah seperti gambar dibawah ini

Page 8: C#

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]);

Page 9: C#

         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

Page 10: C#

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

Page 11: C#

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

 

Page 12: C#

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

Page 13: C#

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

Page 14: C#

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)

Page 15: C#

  {      listBox1.Items.Add(i);  } 

Semua contoh kode diatas apabila dijalankan akan seperti gambar dibawah ini hasilnya :

 

Page 16: C#

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

Page 17: C#

 

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;

 

Page 18: C#

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

Page 19: C#

{

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

Page 20: C#

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 :

 

 

Page 21: C#

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

Page 22: C#

 

 

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

Page 23: C#

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)

Page 24: C#

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

Page 25: C#

 

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 

Page 26: C#

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

 

Page 27: C#

 

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

Page 28: C#

   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

 

Page 29: C#

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.

 

Page 30: C#

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)

 

Page 31: C#

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.

Page 32: C#

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

Page 33: C#

      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 :

Page 34: C#

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

   { 

Page 35: C#

      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. 

Page 36: C#

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

 

 

Page 37: C#

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

Page 38: C#

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)