PENGERTIAN CONTIONAL ATAU PERCABANGAN C++

PENGERTIAN CONTIONAL ATAU PERCABANGAN

Percabangan dapat menjadikan program menjadi lebih fleksibel. Percabangan yang dimaksud adalah suatu pemilihan statemen( baris program ) yang akan dieksekusi apabila suatu kondisi yang didefinisikan terpenuhi(bernilai benar), dan tidak dieksekusi apabila tidak terpenuhi(bernilai salah). Dalam C++ terdapat tiga jenis struktur yang digunakan untuk implementasi suatu percabangan yaitu IF, ELSE, dan SWITCH CASE.
Berikut masing masing penjelesannya

Percabangan Kondisi IF Bahasa C++

Dalam pembuatan program, ada saatnya kita butuh suatu percabangan, yakni jika sebuah kondisi terpenuhi, jalankan kode program ini, jika tidak jalankan kode program yang lain. Menggunakan bahasa C++, konsep tersebut dibuat menggunakan struktur IF dengan aturan penulisan sebagai berikut:

if (condition)
{
  //Kode program yang akan dijalankan jika condition berisi nilai True
}

Bagian condition berperan sebagai penentu dari struktur percabangan. Jika condition terpenuhi (menghasilkan nilai boolean true), blok kode program akan dijalankan. Jika condition tidak terpenuhi (menghasilkan nilai boolean false), blok kode program tidak akan dijalankan.

Blok kode program yang di maksud adalah semua kode yang berada di antara tanda kurung kurawal “{” dan “}”. Condition biasanya terdiri dari operasi perbandingan, seperti apakah variabel a berisi angka 18, atau apakah variabel password berisi string ‘qwerty’.

Contoh Kode Program Percabangan IF Bahasa C++

Sebagai praktek pertama, berikut contoh kode program untuk melihat apakah sebuah angka lebih besar dari angka lain, lalu tampilkan hasilnya jika kondisi terpenuhi:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <iostream>
 
using namespace std;
 
int main()
{
  int a = 12;
  int b = 10;
 
  if (a > b) {
    cout << "Nilai variabel a lebih besar dari variabel b" << endl;
  }
 
  return 0;
}

Hasil kode program:

Nilai variabel a lebih besar dari variabel b

Di awal kode program saya mengisi variabel a dengan angka 12 serta variabel b dengan angka 10. Kemudian di baris 7 terdapat kondisi if (a > b), yakni apakah variabel a berisi angka yang lebih besar dari b? Apakah 12 lebih besar dari 10? betul (true), maka blok kode program akan dijalankan.

Kita juga bisa membuat struktur if beberapa kali tergantung kebutuhan seperti contoh berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
 
using namespace std;
 
int main()
{
  int a = 5;
  int b = 10;
 
  if (a > b) {
    cout << "Nilai variabel a lebih besar dari variabel b" << endl;
  }
 
  if (a < b) {
    cout << "Nilai variabel a lebih kecil dari variabel b" << endl;
  }
 
  if (a == b) {
    cout << "Nilai variabel a sama dengan variabel b" << endl;
  }
 
  return 0;
}

Hasil kode program:

Nilai variabel a lebih kecil dari variabel b

Kode program ini merupakan hasil modifikasi dari kode sebelumnya. Kali ini terdapat 3 buah kondisi, yakni if (a > b)if (a < b), serta if (a == b). Setiap kondisi if akan diperiksa dan jika operasi perbandingan menghasilkan nilai true, maka blok tersebut akan diproses. Silahkan coba ubah isi variabel a dan b untuk melihat blok kode program mana yang akan dijalankan.

Percabangan Kondisi IF ELSE Bahasa C++

Pada dasarnya, kondisi IF ELSE merupakan modifikasi tambahan dari kondisi IF yang sudah kita pelajari pada tutorial sebelumnya.

Blok kode program IF tetap akan dijalankan ketika kondisi true, namun sekarang terdapat tambahan bagian ELSE akan dijalankan ketika kondisi false.

Berikut format dasarnya:

if (condition)
{
  // Kode program yang akan dijalankan jika condition berisi nilai True
}
else
{
  // Kode program yang akan dijalankan jika condition berisi nilai False
}

Bagian condition berperan sebagai penentu dari struktur percabangan ini. Jika condition terpenuhi (menghasilkan nilai true), blok kode program milik IF akan dijalankan. Jika condition tidak terpenuhi (menghasilkan nilai false), blok kode program bagian ELSE-lah yang akan diproses.

Contoh Kode Program Percabangan IF ELSE C++

Pada tutorial sebelumnya kita membuat program penentu bilangan genap / ganjil menggunakan 2 buah kondisi IF sebagai berikut:

1
2
3
4
5
6
if (a % 2 == 0) {
  cout << a << " adalah angka genap" << endl;
}
if (a % 2 == 1) {
  cout << a << " adalah angka ganjil" << endl;
}

Alur ini sebenarnya akan lebih sederhana (dan lebih efisien) jika diubah ke dalam struktur IF ELSE.

Jika sebuah angka tidak genap, maka pasti itu adalah angka ganjil. Sehingga apabila kondisi if (a % 2 == 0) tidak terpenuhi (false), maka variabel a haruslah berisi angka ganjil. Dengan demikian kode programnya bisa ditulis ulang sebagai berikut:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
  int a;
 
  cout << "Input sembarang angka bulat: ";
  cin >> a;
 
  if (a % 2 == 0) {
    cout << a << " adalah angka genap" << endl;
  }
  else {
    cout << a << " adalah angka ganjil" << endl;
  }
 
  return 0;
}

Sekarang jika kondisi if (a % 2 == 0) menghasilkan false, bagian ELSE lah yang akan di proses. Kode program akan jadi lebih efisien karena pemeriksaan kondisi hanya perlu dilakukan 1 kali saja.

Berikut contoh lain dari struktur kondisi IF ELSE:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
 
using namespace std;
 
int main()
{
  int a;
 
  cout << "Input nilai ujian (0 - 100): ";
  cin >> a;
 
  if (a >= 75) {
    cout <<"Selamat, anda lulus!" << endl;
  }
  else {
    cout << "Maaf, silahkan coba lagi tahun depan" << endl;
  }
 
  return 0;
}

Hasil kode program:

Input nilai ujian (0 - 100): 66
Maaf, silahkan coba lagi tahun depan
 
Input nilai ujian (0 - 100): 92
Selamat, anda lulus!
 
Input nilai ujian (0 - 100): 75
Selamat, anda lulus!
 
Input nilai ujian (0 - 100): 74
Maaf, silahkan coba lagi tahun depan

Di sini saya membuat kondisi if (a >= 75), yakni jika variabel a berisi angka lebih besar atau sama dengan 75 maka jalankan perintah cout <<“Selamat, anda lulus!”. Jika tidak, blok ELSE lah yang akan di eksekusi, yakni cout << “Maaf, silahkan coba lagi tahun depan”.

Pengertian SWITCH CASE Bahasa C++

Kondisi SWITCH CASE adalah percabangan kode program dimana kita membandingkan isi sebuah variabel dengan beberapa nilai. Jika proses perbandingan tersebut menghasilkan true, maka block kode program akan di proses.

Kondisi SWITCH CASE terdiri dari 2 bagian, yakni perintah SWITCH dimana terdapat nama variabel yang akan diperiksa, serta 1 atau lebih perintah CASE untuk setiap nilai yang akan diperiksa.

Berikut format dasar penulisan kondisi SWITCH CASE dalam bahasa C++:

switch (nama_variabel) {
  case 'nilai_1':
    // Kode program yang dijalankan jika nama_variabel == nilai_1
    break;
  case 'nilai_2':
    // Kode program yang dijalankan jika nama_variabel == nilai_2
    break;
  case 'nilai_3':
    // Kode program yang dijalankan jika nama_variabel == nilai_3
    break;
  ...
  ...
  default:
     // Kode program yang dijalankan jika tidak ada kondisi yang terpenuhi
}

Di awal kode program, terdapat perintah SWITCH untuk menginput variabel yang akan diperiksa. Kemudian terdapat beberapa perintah CASE yang diikuti dengan sebuah nilai.

Jika isi dari nama_variabel sama dengan salah satu nilai ini, maka blok kode program akan dijalankan. Jika ternyata tidak ada kondisi CASE yang dipenuhi, blok default di baris paling bawah-lah yang akan dijalankan.

Di dalam setiap block case, diakhiri dengan perintah break agar struktur CASE langsung berhenti begitu kondisi terpenuhi. 

Contoh program bentuk SWITCH CASE berikut ini:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
using namespace std;
 
int main()
{
  char nilai;
 
  cout << "Input Nilai Anda (A - E): ";
  cin >> nilai;
 
  switch (nilai) {
  case 'A':
    cout << "Pertahankan!" << endl;
    break;
  case 'B':
    cout << "Harus lebih baik lagi" << endl;
    break;
  case 'C':
    cout << "Perbanyak belajar" << endl;
    break;
  case 'D':
    cout << "Jangan keseringan main" << endl;
    break;
  case 'E':
    cout << "Kebanyakan bolos..." << endl;
    break;
  default:
    cout << "Maaf, format nilai tidak sesuai" << endl;
  }
 
  return 0;
}

Hasil kode program:

Input Nilai Anda (A - E): A
Pertahankan!
 
Input Nilai Anda (A - E): D
Jangan keseringan main
 
Input Nilai Anda (A - E): E
Kebanyakan bolos...
 
Input Nilai Anda (A - E): F
Maaf, format nilai tidak sesuai

Di baris 10 terdapat perintah untuk meminta user menginput salah satu huruf antara ‘A’ – ‘E’. Nilai huruf ini kemudian disimpan ke dalam variabel nilai yang sudah di set ber tipe data char.

Kondisi SWITCH CASE dimulai pada baris 12. Di sini terdapat perintah switch (nilai) yang artinya kita ingin memeriksa isi dari variabel nilai. Seluruh block SWITCH berada di dalam tanda kurung kurawal yang dimulai dari baris 12 sampai 30.

Di baris 13 terdapat perintah case ‘A’: Ini artinya jika variabel nilai berisi karakter ‘A‘, maka jalankan isi dari block CASE, yakni perintah cout << “Pertahankan!” << endl. Lalu terdapat perintah break di baris 15 agar struktur CASE lain tidak perlu di proses lagi.

Di baris 16 terdapat perintah CASE kedua, yakni case ‘B’:. Sama seperti sebelumnya, blok ini akan dijalankan jika variabel nilai berisi huruf ‘B‘. Demikian seterusnya sampai case ‘E’ : di baris 25.

Jika ternyata tidak ada nilai yang sesuai, maka block default di baris 28 yang akan di eksekusi.

Struktur SWITCH CASE ini terlihat lebih rapi daripada struktur IF ELSE IF, dan kadang kala bisa lebih efisien. Namun SWITCH CASE juga memiliki batasan, dimana tidak bisa dipakai untuk kondisi yang lebih kompleks seperti perbandingan dengan tanda lebih besar dari ” > “, maupun penggabungan kondisi.

Kita tidak bisa membuat struktur CASE seperti berikut:

1
2
3
4
// ini akan error
   case > '90':
  cout << "Pertahankan!" << endl;
  break;

Kondisi perbandingan di atas hanya bisa ditulis menggunakan struktur IF. Sehingga jika kondisi yang diperiksa cukup rumit, maka terpaksa harus menggunakan struktur IF ELSE IF.

Struktur SWITCH CASE yang kita pelajari kali ini hanya cocok untuk operasi perbandingan sederhana, dimana nilai yang diperiksa hanya terdiri dari nilai yang tetap.


Komentar