Percabangan IF ELSE dan SWITCH CASE dalam C++ Lengkap dengan Contoh
Ditulis oleh
mrjj
Percabangan IF…ELSE, IF Bersarang, dan SWITCH-CASE dalam C++
Percabangan merupakan salah satu konsep dasar yang sangat penting dalam pemrograman C++. Dengan percabangan, sebuah program dapat menentukan tindakan yang harus dilakukan berdasarkan kondisi tertentu.
Dalam bahasa pemrograman C++, terdapat beberapa bentuk percabangan yang umum digunakan, antara lain:
if...elseif...else if...elseifbersarang (nested if)switch...case
Masing-masing memiliki fungsi dan penggunaan yang berbeda. Pada artikel ini, kita akan mempelajari sintaks, cara kerja, aturan penggunaan, serta contoh programnya.
1. Percabangan IF…ELSE dalam C++
Percabangan if...else digunakan ketika sebuah program memiliki satu kondisi dengan dua kemungkinan hasil, yaitu kondisi benar (true) dan kondisi salah (false).
Jika kondisi pada if bernilai benar, program akan menjalankan pernyataan yang berada di dalam blok if. Sebaliknya, jika kondisi bernilai salah, program akan menjalankan pernyataan yang berada di dalam blok else.
Bentuk Sintaks IF…ELSE
Berikut bentuk dasar percabangan if...else dalam C++:
if (kondisi)
{
// Pernyataan jika kondisi benar
}
else
{
// Pernyataan jika kondisi salah
}
Cara Kerja IF…ELSE
Alur kerja if...else dapat dipahami sebagai berikut:
- Program mengevaluasi
kondisi. - Jika kondisi bernilai
true, blokifdijalankan. - Jika kondisi bernilai
false, blokelsedijalankan. - Setelah selesai, program melanjutkan ke perintah berikutnya.
2. Contoh Program IF…ELSE: Pengecekan Password
Berikut contoh sederhana penggunaan if...else untuk memeriksa password.
#include <iostream>
using namespace std;
int main()
{
int password;
cout << "Masukan password anda = ";
cin >> password;
if (password == 12345)
{
cout << "Password anda benar" << endl;
}
else
{
cout << "Password anda salah" << endl;
}
return 0;
}
Penjelasan Program
Pada program tersebut, pengguna diminta memasukkan password.
if (password == 12345)
Artinya, program akan memeriksa apakah nilai password sama dengan 12345.
Jika benar, program menampilkan:
Password anda benar
Jika tidak sama, blok else akan dijalankan dan menghasilkan:
Password anda salah
Contoh Output
Jika pengguna memasukkan:
Masukan password anda = 12345
Password anda benar
Sedangkan jika memasukkan password yang berbeda:
Masukan password anda = 54321
Password anda salah
3. Percabangan IF…ELSE IF…ELSE
Jika program memiliki dua kondisi atau lebih, kita dapat menggunakan if...else if...else.
Dengan struktur ini, programmer dapat melakukan pemeriksaan terhadap beberapa kondisi secara berurutan.
Bentuk sederhananya adalah:
if (kondisi_1)
{
// Pernyataan jika kondisi 1 benar
}
else if (kondisi_2)
{
// Pernyataan jika kondisi 2 benar
}
else
{
// Pernyataan jika semua kondisi salah
}
Jumlah else if dapat ditambahkan sesuai dengan kebutuhan program.
Cara Kerja IF…ELSE IF…ELSE
Program akan memeriksa kondisi mulai dari bagian if.
Jika kondisi pertama benar, pernyataan pada blok tersebut dijalankan dan pemeriksaan kondisi berikutnya dilewati.
Jika kondisi pertama salah, program akan memeriksa else if.
Proses tersebut terus dilakukan sampai menemukan kondisi yang bernilai benar. Jika seluruh kondisi bernilai salah, maka blok else akan dijalankan.
4. Contoh Program IF…ELSE IF…ELSE: Menentukan Jenis Bilangan
Berikut contoh program untuk menentukan apakah sebuah bilangan bernilai positif, negatif, atau nol.
#include <iostream>
using namespace std;
int main()
{
int bil;
cout << "Masukan angka : ";
cin >> bil;
if (bil > 0)
{
cout << "Angka Positif" << endl;
}
else if (bil < 0)
{
cout << "Angka Negatif" << endl;
}
else
{
cout << "Angka Nol" << endl;
}
return 0;
}
Penjelasan Program
Program menerima sebuah bilangan melalui variabel bil.
Kondisi pertama:
if (bil > 0)
Digunakan untuk memeriksa apakah bilangan lebih besar dari nol.
Kondisi kedua:
else if (bil < 0)
Digunakan untuk memeriksa apakah bilangan lebih kecil dari nol.
Jika kedua kondisi tersebut tidak terpenuhi, berarti bilangan tersebut adalah 0, sehingga blok else dijalankan.
Contoh Output
Input:
Masukan angka : 25
Angka Positif
Input:
Masukan angka : -10
Angka Negatif
Input:
Masukan angka : 0
Angka Nol
5. Percabangan IF Bersarang (Nested IF)
IF bersarang atau nested if adalah percabangan if yang berada di dalam percabangan if lainnya.
Struktur ini digunakan ketika sebuah kondisi memiliki pemeriksaan lanjutan.
Sebagai contoh, dalam proses login terdapat dua pemeriksaan:
- Apakah username benar?
- Jika username benar, apakah password juga benar?
Kondisi kedua hanya diperiksa apabila kondisi pertama terpenuhi.
Bentuk Sintaks IF Bersarang
if (kondisi_1)
{
if (kondisi_2)
{
// Pernyataan jika kondisi 2 benar
}
else
{
// Pernyataan jika kondisi 2 salah
}
}
else
{
// Pernyataan jika kondisi 1 salah
}
Dengan menggunakan nested if, program dapat memiliki struktur pengambilan keputusan yang lebih bertingkat.
6. Contoh Program IF Bersarang: Cek Username dan Password
Berikut contoh program C++ menggunakan nested if untuk melakukan pemeriksaan username dan password.
#include <iostream>
#include <string>
using namespace std;
int main()
{
string username;
int password;
cout << "Masukan username : ";
cin >> username;
cout << "Masukan password : ";
cin >> password;
if (username == "admin")
{
if (password == 12345)
{
cout << "Berhasil login" << endl;
}
else
{
cout << "Password anda salah" << endl;
}
}
else
{
cout << "Username anda salah" << endl;
}
return 0;
}
Penjelasan Program
Program pertama-tama memeriksa username:
if (username == "admin")
Jika username benar, program melanjutkan pemeriksaan password:
if (password == 12345)
Jika username dan password benar, program menampilkan:
Berhasil login
Jika username benar tetapi password salah:
Password anda salah
Sedangkan jika username salah, program langsung menampilkan:
Username anda salah
Mengapa Menggunakan IF Bersarang?
Nested if cocok digunakan ketika keputusan kedua bergantung pada hasil keputusan pertama.
Contohnya:
Username benar?
|
Ya |----> Password benar?
| |
| Ya|--> Berhasil login
| |
| Tidak|--> Password salah
|
Tidak
|
---> Username salah
7. Percabangan SWITCH-CASE dalam C++
Selain menggunakan if, C++ juga menyediakan struktur percabangan switch...case.
switch...case digunakan untuk memilih satu tindakan berdasarkan nilai sebuah variabel.
Struktur ini sangat cocok digunakan ketika terdapat banyak pilihan nilai yang sudah diketahui.
Misalnya:
- Pilihan menu
- Nomor hari
- Kode paket
- Pilihan operasi
- Kode kategori
Setiap pilihan dalam switch disebut sebagai case.
8. Bentuk Sintaks SWITCH-CASE
Berikut bentuk umum switch...case dalam C++:
switch (variabel)
{
case nilai_1:
// Pernyataan jika nilai_1 dipilih
break;
case nilai_2:
// Pernyataan jika nilai_2 dipilih
break;
case nilai_3:
// Pernyataan jika nilai_3 dipilih
break;
default:
// Pernyataan jika tidak ada case yang sesuai
break;
}
Fungsi break
Keyword break digunakan untuk menghentikan proses switch.
Jika break tidak digunakan, program dapat melanjutkan eksekusi ke case berikutnya (fall-through).
Oleh karena itu, pada penggunaan switch yang memilih satu tindakan per case, break biasanya ditempatkan setelah pernyataan setiap case.
Fungsi default
default digunakan ketika tidak ada satu pun case yang sesuai dengan nilai variabel.
Bagian default bersifat opsional.
9. Aturan Penggunaan SWITCH-CASE
Beberapa hal penting yang perlu diperhatikan saat menggunakan switch...case:
- Ekspresi pada
switchharus menghasilkan nilai yang dapat digunakan olehcase, seperti tipe integral atau enumerasi. Dalam contoh dasar, tipe yang umum digunakan adalahintdanchar. - Setiap
casediikuti nilai dan tanda titik dua (:). - Nilai
caseharus berupa nilai konstan yang sesuai dengan tipe ekspresiswitch. - Jika nilai variabel sama dengan sebuah
case, pernyataan pada case tersebut akan dijalankan. breakdigunakan untuk menghentikan eksekusiswitch.defaultdigunakan jika tidak ada nilaicaseyang cocok.- Satu
switchdapat memiliki banyakcase.
10. Contoh Program SWITCH-CASE: Menentukan Hari
Berikut contoh penggunaan switch...case untuk menentukan nama hari berdasarkan angka.
#include <iostream>
using namespace std;
int main()
{
int angkaHari;
cout << "Masukan Angka Hari : ";
cin >> angkaHari;
switch (angkaHari)
{
case 1:
cout << "Angka Hari 1 merupakan hari SENIN";
break;
case 2:
cout << "Angka Hari 2 merupakan hari SELASA";
break;
case 3:
cout << "Angka Hari 3 merupakan hari RABU";
break;
case 4:
cout << "Angka Hari 4 merupakan hari KAMIS";
break;
case 5:
cout << "Angka Hari 5 merupakan hari JUMAT";
break;
case 6:
cout << "Angka Hari 6 merupakan hari SABTU";
break;
case 7:
cout << "Angka Hari 7 merupakan hari MINGGU";
break;
default:
cout << "Angka hari yang anda masukan tidak ditemukan";
break;
}
cout << endl;
return 0;
}
Contoh Output
Jika pengguna memasukkan:
Masukan Angka Hari : 3
Angka Hari 3 merupakan hari RABU
Jika pengguna memasukkan angka di luar 1–7:
Masukan Angka Hari : 10
Angka hari yang anda masukan tidak ditemukan
11. Contoh SWITCH-CASE dengan Karakter
switch...case juga dapat digunakan untuk memeriksa karakter.
Misalnya, program menyediakan pilihan paket makanan menggunakan kode A, B, dan C.
#include <iostream>
using namespace std;
int main()
{
char pil;
cout << "Pilih Kode Paket berdasarkan pilihan berikut :" << endl;
cout << "A : Ayam + Nasi + Salad + Minuman" << endl;
cout << "B : Ayam + Nasi + Minuman" << endl;
cout << "C : Ayam + Nasi + Teh" << endl;
cout << "Input Pilihan Paket [A/B/C] : ";
cin >> pil;
switch (pil)
{
case 'A':
cout << "Anda memilih Paket A" << endl;
cout << "Harga Paket A adalah : Rp25.000";
break;
case 'B':
cout << "Anda memilih Paket B" << endl;
cout << "Harga Paket B adalah : Rp20.000";
break;
case 'C':
cout << "Anda memilih Paket C" << endl;
cout << "Harga Paket C adalah : Rp18.000";
break;
default:
cout << "PILIHAN TIDAK ADA";
break;
}
cout << endl;
return 0;
}
Program tersebut menggunakan tipe data char untuk menyimpan pilihan pengguna.
Contohnya:
char pil;
Kemudian pilihan diperiksa melalui:
switch (pil)
Jika pengguna memasukkan A, maka case 'A' akan dijalankan.
12. Perbedaan IF…ELSE dan SWITCH-CASE
Meskipun sama-sama digunakan untuk percabangan, if...else dan switch...case memiliki karakteristik yang berbeda.
| Percabangan | Kegunaan |
|---|---|
if |
Memeriksa satu kondisi |
if...else |
Memilih antara dua kemungkinan |
if...else if...else |
Memeriksa beberapa kondisi |
Nested if |
Membuat kondisi di dalam kondisi |
switch...case |
Memilih berdasarkan beberapa nilai tertentu |
Sebagai contoh, kondisi seperti:
if (nilai >= 75)
lebih cocok menggunakan if karena melibatkan operator perbandingan.
Sementara pilihan seperti:
1 = Senin
2 = Selasa
3 = Rabu
dapat ditulis lebih terstruktur menggunakan switch...case.
13. Kesimpulan
Percabangan merupakan bagian penting dalam pemrograman C++ karena memungkinkan program mengambil keputusan berdasarkan kondisi atau pilihan tertentu.
Beberapa struktur percabangan yang perlu dipahami adalah:
- IF digunakan untuk memeriksa kondisi.
- IF…ELSE digunakan untuk dua kemungkinan, yaitu kondisi benar atau salah.
- IF…ELSE IF…ELSE digunakan untuk beberapa kondisi.
- IF bersarang (Nested IF) digunakan ketika terdapat kondisi di dalam kondisi lainnya.
- SWITCH-CASE digunakan untuk memilih tindakan berdasarkan nilai tertentu.
Dengan memahami percabangan, programmer dapat membuat program yang lebih interaktif dan mampu mengambil keputusan secara otomatis berdasarkan input pengguna.
Penguasaan if, if...else, nested if, dan switch...case juga menjadi dasar penting sebelum mempelajari materi C++ yang lebih lanjut seperti perulangan, fungsi, array, dan pemrograman berorientasi objek.