Jump Statement Dalam Pemrograman C#

Teo Filus 14 Februari 2017

Jump Statement Dalam Pemrograman C#

Sebelumnya kita telah belajar mengenai Control Statement Dalam C#, dan di tutorial ini kita akan belajar mengenai* Jump Statement* dalam pemrograman C#. Tutorial Jump Statement ini sebenarnya merupakan lanjutan dari Control Statement, karena selain belajar mengenai Jump Statement, kita juga akan belajar mengenai perintah Switch yang memang bagian dari Control Statement, dan langung saja kita mulai pembelajarannya.

Jump Statement

Jump Statement (selanjutnya disebut pernyataan Jump) adalah pernyataan yang memiliki mekanisme untuk mengubah arah eksekusi* loop*. Misalnya saya ingin membuat program perulangan for yang mengulangi angka 1-10, dan kode programnya seperti berikut,

for (int a = 1; a <= 10; a++){
  Console.WriteLine(a);
	}

Kemudian suatu ketika saya ingin agar program tersebut berhenti mengeksekusi jika angka yang diulangi adalah angka 6 dan seterusnya, namun parameter angka 1-10 pada perulangan for tersebut tidak boleh dirubah. Untuk itu saya harus menggunakan pernyataan break untuk memberhentikan eksekusi, sehingga kode program saya menjadi,

for (int a = 1; a <= 10; a++){
   if (a == 6) {    // sama dengannya harus 2
   break;
   } 
 Console.WriteLine(a);
}

Setelah program tersebut saya eksekusi, maka akan keluar hasil seperti yang saya inginkan yaitu perulangan 1-5, namun tetap dalam parameter 1-10. Untuk lebih lanjutnya pernyataan Jump memiliki 3 perintah dasar yaitu break, continue dan goto.

Break

Perintah break seperti yang telah dicontohkan diatas, memiliki mekanisme untuk keluar dari iterasi / loop dalam kondisi tertentu, misalnya program loop harus berhenti pada kondisi di angka sama dengan 6, jadi dengan perintah break loop akan berhenti dieksekusi.

Continue

Perintah continue memiliki mekanisme untuk keluar dari iterasi pada saat kondisi tertentu dan jika kondisi tersebut tidak lagi terpenuhi, lalu program masih bisa dieksekusi, maka akan kembali lagi ke iterasi selanjutnya. Untuk mudah memahaminya perhatikan contoh berikut,

for (int a = 1; a <= 10; a++){
   if (a == 6) {    // sama dengannya harus 2
   continue;
   } 
 Console.WriteLine(a);
}

Saat menggunakan break, program diatas akan menampilkan pengulangan angka 1-5. Namun jika kita eksekusi kode program tersebut, maka akan menampilkan pengulangan angka 1-10 namun tanpa angka 6, jadi angka 6 istilahnya "dilompati". Namun jika angka 6 diganti angka 10, maka akan menampilkan pengulangan angka 1-9 dan eksekusi program tersebut langsung berhenti.

Goto

Pernyataan Jump yang ketiga ini menurut saya unik, karena mekanismenya mirip break dan juga continue. goto ini memiliki mekanisme untuk keluar dari iterasi (memberhentikan loop) dalam kondisi tertentu, dan melanjutkan pengeksekusian tapi bukan di iterasi yang sama, melainkan menuju label yang telah ditentukan. Untuk lebih memahami perhatikan contoh berikut,

for (int a = 1; a <= 10; a++)
 
 {
   if (a == 6)
   {
    goto label_kondisi;
   }
	 
  Console.WriteLine(a);
  }	
	
  label_kondisi:
   Console.WriteLine("Red Is The New Black");

Output program diatas adalah pengulangan 1-5 dan disertai dengan tulisan "Red Is The New Black" dibawahnya.

Control Statement Lanjutan (Switch)

Dalam menulis suatu kode program mungkin kita harus menggunakan beberapa pernyataan if yang berurutan, misalnya dalam contoh kasus penentuan kelulusan. Dalam salah satu bagian dari kasus tersebut kita disuruh menulis program yang menentukan predikatnya, jika grade nya 'A' maka "Lulus Dengan Sangat Baik", kemudian jika gradenya 'B' maka "Lulus Dengan Baik" dan seterusnya. Misalnya saja kode programnya seperti ini,

Console.WriteLine("Masukkan Grade Siswa (A-D): ");
  char pilih = char.Parse(Console.ReadLine());

  if (pilih == 'A') {
  Console.WriteLine("Lulus Dengan Sangat Baik");
  }
  if (pilih == 'B'){
  Console.WriteLine("Lulus Dengan Baik");
	}
  if (pilih == 'C')
  {
  Console.WriteLine("Lulus");
  }
  if (pilih =='D') { 
  Console.WriteLine("Gagal");
	}

Tentu saja kode program diatas sangatlah tidak efektif, karena program akan melakukan 4 kali evaluasi dan hal itu dapat memperlambat jalannya pengeksekusian, selain itu jika kebanyakan if program akan sulit dibaca. Untuk itu kita bisa memakai pernyataan switch untuk menghandle itu semua.

Rumus pernyataan switch yaitu,

switch (expression/variabel) {

case constant:

statements

default:

statements

}

Sedangkan contoh penggunaanya adalah,

Console.WriteLine("Masukkan Grade Karyawan (A-D): ");
 char pilih = char.Parse(Console.ReadLine());

  switch (pilih)
	{
	case 'A':
	Console.WriteLine("Lulus Dengan Sangat Baik");
	break;  //Harus ditambahkan Jump Statement
	 
	case 'B':
	Console.WriteLine("Lulus Dengan Baik");
	break;  //Harus ditambahkan Jump Statement
	 
	case 'C':
	Console.WriteLine("Lulus");
	break;  //Harus ditambahkan Jump Statement
	 
	case 'D':
	Console.WriteLine("Gagal");
	break;  //Harus ditambahkan Jump Statement
	 
	default:
	Console.WriteLine("Fail");
	break;  //Harus ditambahkan Jump Statement
	}

Output dari program diatas adalah jika pengguna memasukkan huruf atau char "A" maka program akan menampilkan pesan "Lulus Dengan Sangat Baik" dan seterusnya.

Penutup

Sebagai penutup penulis memberikan kode program "Gaji Karyawan" yang telah ditambahi switch berikut kodenya,

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


  Console.WriteLine("Masukkan Grade Karyawan (A-E): ");
  char pilih = char.Parse(Console.ReadLine());
		
		//logika perhitungan gaji
  int bonuslembur = 600000 * lembur;
  int gaji = 4500000 + bonuslembur;
		
	Console.WriteLine("");
	Console.WriteLine("Nama Pegawai : " + nama);
	Console.WriteLine("Jam Lembur : " + lembur);
	Console.WriteLine("Gaji yang diperoleh : " + gaji);

	switch (pilih)
	{
	case 'A':
	Console.WriteLine("He Is The Real Great Employer !");
	goto default; //Harus ditambahkan Jump Statement
	case 'B':
	Console.WriteLine("Dia Pekerja Keras !");
	goto default;  //Harus ditambahkan Jump Statement
        case 'C':
	Console.WriteLine("Motivasi Dia !");
	goto default;  //Harus ditambahkan Jump Statement
	case 'D':
	Console.WriteLine("Peringatkan Dia !");
	goto default;  //Harus ditambahkan Jump Statement
	case 'E':
	Console.WriteLine("Beri Dia Surat Peringatan (SP) !");
	goto default;  //Harus ditambahkan Jump Statement				
	default:
	Console.WriteLine(" ");
	Console.WriteLine("Program Selesai");
	 break;  //Harus ditambahkan Jump Statement
	}
			
 Console.WriteLine("");
 Console.Write("Press any key to continue . . . ");
 Console.ReadKey(true);
	}
 }
}

Demikian tutorial mengenai "Jump Statement Dalam Pemrograman C#", kurang lebihnya penulis mohon maaf dan apabila ada pertanyaan jangan pernah sungkan untuk bertanya di kolom komentar dibawah.

Terimakasih. Salam Codepolitan !

Referensi :

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