Control Statement Dalam C#

Teo Filus 26 Januari 2017

Control Statement Dalam C#

Bertemu kembali dengan saya dalam tutorial bahasa pemrograman C#. Dalam tutorial kali ini kita akan belajar lebih lanjut mengenai dasar-dasar pemrograman C#, bisa dibilang lebih sulit dari tutorial sebelumnya, namun tenang saja kita akan buat ini menjadi mudah. Selain itu jika ada pertanyaan jangan sungkan untuk bertanya melalui komentar dibawah artikel ini dan mari kita mulai pembelajarannya !

Operator Lanjutan dalam C#

Sebelumnya kita telah mengenal operator aritmatika dasar dalam C# yang terdiri dari +,-,*,/ dan %, tetapi saat ini kita belajar lebih lanjut mengenai operator yang terdapat dalam C# yaitu mulai dari Assignment operator,* Increment* dan Decrement operator, dan Operator yang termasuk dalam lingkungan boolean.

Assignment Operator

Disaat menulis program mungkin saja kita perlu menuliskan method atau logika seperti x = x + a. Namun dengan operator ini kamu dapat menyederhanakan logika tersebut, karena fungsi operator ini adalah untuk menangani perhitungan dan penugasan dengan satu operator. Macam-macam Assignment operator adalah +=, -=, *=, /= dan %=.

Contoh penggunaannya;

x = x + a menjadi x +=a
x = x - a menjadi x -=a 
x = x * a menjadi x *= a
x = x / a menjadi x /= a
x = x % a menjadi x %= a

Decrement dan Increment Operator

Operator ini sebenarnya bagian dari* Assignment Operato*r, tugasnya untuk mengulangi suatu perintah dan biasanya kita akan temukan pada pengulangan for. Simbol operator ini adalah++ dan --.

Contoh penggunaannya,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
int a= 150;
int b;
b = a++;
Console.WriteLine(a);

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Maka kode diatas akan menghasilkan angka 151, namun jika diganti menjadi ++a apa yang terjadi ? Coba cari tahu. Untuk sekedar informasi contoh diatas adalah Post-Increment dan yang harus kamu coba sendiri adalah contoh Pre-Increment.

Operator Dalam Lingkungan Boolean

Operator dalam lingkungan boolean ini bisa jadi tidak asing bagi kamu apalagi yang pernah mempelajari bahasa pemrograman sebelumnya. Operator ini melibatkan boolean dalam operasinya, jenis-jenis operator dalam lingkungan boolean adalah,

Operator Pembanding

Operator pembanding atau yang bahasa kerennya Relational and Equality Operators adalah operator seperti < (lebih kecil dari),> (lebih besar dari),<= (lebih kecil atau sama dengan dari),>=(lebih besar atau sama dengan dari),==(sama dengan), dan!= (tidak sama dengan). Untuk penggunaanya tidak perlu saya contohkan, pasti kamu tahu cara menggunakannya selain itu operator ini juga akan kita gunakan dalam contoh nanti.

Operator Logika

Operator Logika atau yang bahasa gaulnya Logical Operators adalah operator yang benar-benar menghasilkan hasil boolean, macamnya operator ini adalah || (OR operator), && (AND operator), dan ^ (Exclusive OR operator atau XOR). Pada* OR operator* jika semuanya benar atau salah satu saja yang benar maka hasilnya** true**, kemudian untuk AND operator harus benar semua, jika ada satu nilai yang salah maka hasilnya akan false, lalu untuk XOR Operator jika semuanya salah atau salah satu saja yang salah maka hasilnya True, namun jika semuanya benar maka justru hasilnya akan false.

Contoh penggunaan;

bool a = 5 < 4 || 5 >1 akan menghasilkan True.
bool a = 5 > 4 && 5>1 akan menghasilkan True.
bool a = 5 < 4 ^ 5 > 10 akan menghasilkan True

Untuk operator yang lain tidak akan kita bahas disini karena pada tingkatan ini masih belum terpakai. Dan selanjutnya kita akan belajar tentang Control Statement yang berisi pernyataan kondisional dan perulangan.

Control Statement dalam C#

Control Statement adalah suatu mekanisme yang mengendalikan jalannya atau pengeksekusiannya blok kode tertentu, baik itu dengan perulangan maupun dengan pernyataan kondisional atau seleksi. Dalam tutorial kali ini kita akan membahas hal-hal yang berkaitan dengan* Control Statement* dasar, yang terdiri dari* If Statement, If-Else Statement, While Statement, Do-While Statement, For Statement dan Foreach Statement. Untuk statement seperti switch dan juga Jump Statement* tidak akan kita bahas sekarang.

If Statement

Pernyataan atau* statement If* adalah mekanisme yang menjalankan suatu statement atau kode namun harus memenuhi suatu kondisi yang ditentukan. Jika tidak memenuhi kondisi yang telah ditentukan maka statement yang berada dalam lingkup kondisional tersebut tidak akan dijalankan.

Rumus pernyataan* If* adalah,

if (condition) {

then-statement

}

Sedangkan contoh cara penggunaannya,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{

    if (5>2){
       Console.WriteLine("You Right");
    }
		
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Outputnya adalah "You Right", sedangkan jika kita ganti angka 2 menjadi angka yang lebih besar atau sama dengan dari 5 maka tidak akan tampil apapun. Jika kita menginginkan program tersebut tetap menampilkan pesan tertentu maka kita memakai statement dibawah ini yaitu pernyataan* If-Else*.

If -Else Statement

Pernyataan* If-Else* memiliki cara kerja yang persis dengan pernyataan* If*, hanya saja pernyataan If-Else ini tetap memberikan keluaran berupa pesan tertentu jika suatu kondisi dalam If tidak terpenuhi, selain itu pernyataan ini juga lebih sering digunakan ketimbang pernyataan* If.*

Rumus pernyataan If-Else adalah,

if (condition) {

then-statement

}else {

else-statement

}

Sedangkan contoh cara penggunaanya yaitu,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{

  if (5>2){
    Console.WriteLine("Itu benar");
  }else{
    Console.WriteLine("Itu salah");
  }

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Output dari program ini seperti yang dapat diduga yaitu "Itu benar", sedangkan jika kita ganti angka 2 menjadi angka yang lebih besar atau sama dengan dari 5 maka akan menampilkan pesan "Itu salah".

While Statement

Pernyataan while, do-while, for dan foreach merupakan pernyataan yang termasuk dalam keluarga perulangan. Pernyataan whilememiliki mekanisme yaitu suatu statement akan dijalankan secara berulang selama kondisi dalam while masih terpenuhi.

Rumus pernyataan* While* adalah,

while (condition){

then-statement

}

Sedangkan contoh cara penggunaannya adalah,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
int a = 5;
  while (a > 0){
    Console.WriteLine("Hello");
		a -= 1;
}

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Output diatas adalah diulangnya "Hello" sebanyak 5 kali berturut-turut.

Do-While Statement

Pernyataan Do-While memiliki mekanisme dimana blok kode yang terdapat dalam lingkup do dieksekusi dahulu, kemudian setelah itu baru dieksekusi oleh while, itupun bila kondisi dalam while terpenuhi tapi jika tidak maka blok kode dalam lingkup do akan berlanjut ke perintah berikutnya. Untuk lebih jelasnya silahkan liat rumus dan contoh penggunaan berikut.

Rumus pernyataan Do-While yaitu,

do {

then-statement

} while (condition)

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{
  int angka;
    do {
       System.Console.WriteLine("Masukkan angka 1-10 : ");
       angka = int.Parse(System.Console.ReadLine());
     } while (angka > 10 || angka < 1);
		
Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Output program diatas yaitu mengeluarkan pertanyaan yang harus diisi pengguna (program inputan), jika pengguna memasukkan angka diantara rentang tersebut maka blok kode dalam do akan berlanjut ke blok kode yang terdapat dibawahnya, namun jika pengguna memasukkan angka diluar rentang tersebut, maka while akan di eksekusi alias pertanyaan yang terdapat dalam blok kode do diulang kembali.

For Statement

Pernyataan* For* memiliki mekanisme yang hampir mirip dengan pernyataan While dimana suatu blok kode akan di iterasi sampai mencapai kondisi tertentu, namun yang membedakan antara for dengan while adalah sintaks dalam for sudah di built-in dan juga menggunakan operator* increment* atau decrement.

Rumus pernyataan* For* yaitu,

for (initial ; condition ; loop/increment) {

then-statement

}

Sedangkan contoh cara penggunaanya yaitu,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{

  int angka;
    for ( angka = 1 ; angka <= 10 ; angka++){
      Console.WriteLine ("Ini angka ke "+angka);
}

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Output program diatas adalah muncul kalimat "ini angka ke 1" sampai "ini angka ke 10" secara berurutan.

Foreach Statement

Pernyataan* Foreach* memiliki mekanisme hampir sama seperti for hanya saja pernyataan ini untuk tujuan lain yaitu melakukan perulangan pada setiap isi atau elemen pada arrays (arrays secara mendalam tidak akan di bahas pada tutorial ini).

Rumus pernyataan* Foreach* yaitu,

foreach (type variable in collection {

then-statement

}

Berikut contoh cara penggunaannya,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{

  string huruf = "belajar";
    foreach (char huruf1 in huruf){ //convert ke char
      Console.WriteLine ("Ini elemen "+huruf1);
}

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Output program diatas adalah keluarnya kalimat "Ini elemen b" sampai "ini elemen r" secara berurutan. Pertanyaannya kenapa program tidak error dan tetap mengeluarkan output perulangan padahal string tersebut tidak berada dalam arrays, sedangkan jika kita pakai char dalam program tersebut hasilnya akan error ? Jika kita lihat kode program tersebut saya mengconvert string tersebut menjadi char agar setiap elemen dalam string tersebut dapat diulangi satu-persatu. Nah string ini bisa di convert menjadi tipe data integral apa saja tapi tidak dapat di convert ke string. Namun jika saya masukkan nilai dari string tersebut ke dalam arrays string maka yang ditampilkan adalah keseluruhan nilai, yaitu menjadi "ini elemen belajar" dan hanya dapat bertipe data string jadi kebalikan dari yang sebelumnya. Kemudian seperti yang sudah dibahas dalam tutorial sebelumnya, tipe data char termasuk dalam tipe data integral sehingga elemennya harus berada didalam arrays dan juga hanya bisa di convert ke tipe data integral. Selanjutnya contoh penggunaan untuk tipe data integral yaitu,

using System;

namespace belajarCSharp
{
  class MainClass
{
  static void Main(string[] args)
{

int[] angka = {5,3,9,2,3,5,1,23,1,2,9,1,2};
  foreach (int angka1 in angka){
    Console.WriteLine ("Ini angka "+angka1);
}

Console.Write("Press any key to continue . . . ");
   Console.ReadKey(true);
  }
 }
}

Output program diatas yaitu keluarnya kalimat "Ini angka 5" sampai angka terakhir yang terdapat dalam arrays tersebut.

Penutup

Sampai disini kita telah belajar hal yang lebih lanjut mengenai C# dan berarti kita juga dapat memperbaiki atau lebih menyempurnakan lagi "Program Gaji Karyawan". Pasti kamu bertanya-tanya pada program sebelumnya, misalnya bagaimana cara agar menghandle pengguna yang memasukkan angka lebih dari 10 dan memberikan pesan error kepadanya secara intertaktif ? Pertanyaan itu akan kita jawab sekarang melalui kode program dibawah ini. Penulis berharap tutorial ini dapat membantu pembaca dalam memahami C# dan mohon maaf apabila penulis jarang update tutorial C# ini, karena memang adanya keterbatasan waktu yang dimiliki.

using System;

namespace belajarCSharp
{
class MainClass
{
 static void Main(string[] args)
{
  int lembur;

//kode inputan 		
  Console.WriteLine("Masukkan Nama Karyawan : ");
   string nama = Console.ReadLine();
	 
 //dibawah ini adalah pernyataan kondisional do-while
   do {
	 
//kode inputan 
   Console.WriteLine("Masukkan Jam Lembur (0 - 10) : ");
   lembur = int.Parse(Console.ReadLine());
//int lembur = Convert.ToInt32(Console.ReadLine());  ini adalah alternatif dari int.Parse

//dibawah ini adalah pernyataan kondisional if
  if (lembur > 10 || lembur < 0) {
  Console.WriteLine("Error: Angka harus diantara 0-10");
  Console.WriteLine("");
  }
	
//pernyataan while
  } while (lembur > 10 || lembur < 0);
	
//logika perhitungan gaji
  double bonus = 600000 * lembur;
  double gaji = 4500000 + bonus;

  Console.WriteLine("");
  Console.WriteLine("Nama Pegawai : " + nama);
  Console.WriteLine("Jam Lembur : " + lembur);
  Console.WriteLine("Gaji yang diperloeh : " + gaji);

  Console.Write("Press any key to continue . . . ");
  Console.ReadKey(true);
  }
 }
}

Untuk sekedar info, saya membuat kode program diatas melalui** Xamarin Studio Community** karena bosan dengan interface** SharpDevelop** hehe. Untuk referensi mengapa referensi yang saya gunakan berbeda dari sebelumnya ? Jawabannya jika kamu sering membaca buku yang berbeda namun tetap satu topik, pasti kamu akan mengerti buku mana yang lebih baik dalam mengupas topik tersebut. Terimakasih.

Referensi :

Michaelis, Mark., & Lippert Eric. (2016). Essential C# 6.0 5th Edition. Michigan: Pearson Education (Addison Wesley). ISBN-13: 978-0-13-414104-6