Pemrograman Komputer (C++): Pemilihan Kondisi
Terdapat dua jenis pemilihan kondisi pada C++ yaitu if-else dan switch-case. Fungsi dari pernyataan pemilihan kondisi adalah untuk memecahkan masalah dan pengambilan keputusan berdasarkan kondisi yang dialami oleh program. Secara umum peryataan pemilihan kondisi dapat digambarkan sebagai berikut
3.1 PERCABANGAN SATU KONDISI (IF)
Merupakan bentuk percabangan yang paling sederhana.
Bentuk percabangan tunggal | Contoh |
if (ekspresi kondisional) Statemen ; | if ( angka < 10 ) nilai = “A”; |
if (ekspresi kondisional) { Statemen_1 ; Statemen_2 ; . . . Statemen_n ; } | if ( resistor == 1200 ) { gelang_1 = “coklat”; gelang_2 = “merah”; gelang_3 = “hitam”; gelang_4 = “hitam”; tolerasansi = 0.1; } |
Jika ekspresi kondisional di dalam tanda kurung benar, maka statemen atau grup statemen atau grup statemen dibawahnya akan dijalankan/dieksekusi. Sebaliknya, jika ekspresi kondisionalnya salah maka statemen/grup statemen di bawahnya tidak akan dijalankan. Ekpresi kondional adalah ekspresi yang menjadi dasar bagi pernyataan berkondisi (selau dipakai pada fungsi if), yang memberikan nilai benar (1) atau salah (0). Adapaun elemen yang membentuk ekspresi ini adalah operator relasi dan logika.
Operator relasi
Operator relasi biasa digunakan untuk membandingkan dua buah nilai. Keseluruhan operator relasi pada C++ dapat dilihat pada table di bawah ini:
Operator | Keterangan |
== | Sama dengan |
!= | Tidak sama dengan |
> | Lebih besar |
< | Lebih kecil |
>= | Lebih besar atau sama dengan |
<= | Lebih kecil atau sama dengan |
Operator Logika
Operator logika biasa digunakan untuk menghubungkan dua buah ekspresi kondisional atau lebih menjadi satu ekspresi kondisional. Operator-operator ini berupa:
Operator | Keterangan | Contoh |
&& | Logika AND | Ekspresi1 && Ekspresi2 |
|| | Logika OR | Ekspresi1 || Ekspresi2 |
! | Logika NOT | !Ekspresi1 |
3.2 PERCABANGAN DUA KONDISI (IF-ELSE)
Percabangan dua kondisi menangani salah satu dari dua ekspresi / grup ekspresi sesuai nilai kondisi yang dihasilkan.
Bentuk percabangan 2 kondisi | Contoh |
if (ekspresi kondisional) Statemen_1 ; else Statemen_2; | if ( tegangan > 0 ) LED = 1; //nyala else LED = 0; //mati |
if (ekspresi kondisional) { Statemen_1_1 ; Statemen_1_2 ; . . . Statemen_1_n ; } else { Statemen_2_1 ; Statemen_2_2 ; . . . Statemen_2_n ; } | if ((tegangan > 0) && (arus > 0)) { R = tegangan / arus; daya = tegangan * arus; } else { R = 0; daya = 0; } |
Pada percabangan dua kondisi, apabila ekspresi kondisional menghasilkan nilai benar maka program akan mengeksekusi statemen_1 atau grup statemen_1, namun sebaliknya apabila ekspresi kondisional bernilai salah maka yang akan dieksekusi adalah statemen_2 atau grup statemen_2
3.3 PERCABANGAN TIGA KONDISI (IF-ELSE IF- ELSE)
Bentuk percabangan 3 kondisi | Contoh |
if (ekspresi kondisional_1) statemen_1 ; else if (ekspresi kondisional 2) statemen_2; else if (ekspesi kondisional 3) statement_3; else statement_4; | if (angka >= 80) nilai = “A”; else if (angka >= 70 && angka < 80) nilai = “B”; else if (angka >= 60 && angka < 70) nilai = “C”; else if (angka >= 50 && angka < 60) nilai = “D”; else nilai = “E”; |
Contoh program menggunakan percabangan if
main.cpp |
#include <iostream> using namespace std; int main() { float suhuKonversi= 0, suhuMasukan = 0; int pilihan = 0; cout << “Program Konversi Suhu” << endl; cout << “Masukkan suhu (dalam Celcius) :” << endl; cin >> suhuMasukan; cout << “Konversi Ke :” << endl; cout << “(1) Reamur” << endl; cout << “(2) Fahrenheit” << endl; cout << “(3) Kelvin” << endl; cout << “Pilihan ? “; cin >> pilihan; if (pilihan == 1) { suhuKonversi = 0.8 * suhuMasukan; cout << ” hasil konversi = ” << suhuKonversi << ” R” << endl; } else if (pilihan == 2) { suhuKonversi = 0.25 * suhuMasukan + 32; cout << ” hasil konversi = ” << suhuKonversi << ” F” << endl; } else if (pilihan == 3) { suhuKonversi = 273.15 + suhuMasukan; cout << ” hasil konversi = ” << suhuKonversi << ” F” << endl; } else { cout << “pilihan salah !!!”; } return 0; } |
3.4 SWITCH CASE
Percabangan switch adalah pernyataan yang digunakan untuk menjalankan salah satu pernyataan dari beberapa kemungkinan pernyataan,berdasarkan nilai dari sebuah ekspresi dan nilai penyeleksi. Secara singkatnya,pernyataan ini merupakan pernyataan pilihan berganda.
Bentuk umum pernyataan switch | Contoh |
Switch (ekspresi) { case ekspresi_1: pernyataan_1; break;. case ekspresi_2: pernyataan_2; break; case ekspresi_n: pernyataan_ke_n; break; default: pernyataan _x; break; } | switch (kode_warna) { case 0: warna = “hitam”; break; case 1: warna = “coklat”; break; case 2: warna = “merah”; break; case 3: warna = “jingga”; break; case 4: warna = “kuning”; break; case 5: warna = “hijau”; break; default: warna = “”; break; } |
Pada pernyataan switch, ekspresi dapat berupa ekspresi, konstanta atau variable. Ekspresi1, ekspresi2, dan seterusnya dapat berupa sembarang konstanta bertipe int atau char. Pencocokan ekspresi dengan ekspresi1, ekpresi2, dan seterusnya dilakukan secara berurutan, dimulai yang pertama. Jika sesuai maka pernyataan yang mengikuti case dijalankan. Statement break digunakan untuk mengakhiri pernyataan pada switch. Jika tidak ada ekpresi yang sesuai maka ekpresi default akan dipilih dan statement yang mengikuti default dijalankan.
Contoh penggunaan percabangan switch case
main.cpp | ||
#include <iostream> using namespace std; int main() { float suhuKonversi= 0, suhuMasukan = 0; int pilihan = 0; cout << “Program Konversi Suhu” << endl; cout << “Masukkan suhu (dalam Celcius) :” << endl; cin >> suhuMasukan; cout << “Konversi Ke :” << endl; cout << “(1) Reamur” << endl; cout << “(2) Fahrenheit” << endl; cout << “(3) Kelvin” << endl; cout << “Pilihan ? “; cin >> pilihan; switch (pilihan) { case 1: suhuKonversi = 0.8 * suhuMasukan; cout << ” hasil konversi = ” << suhuKonversi << ” R” << endl; break; case 2: suhuKonversi = 0.25 * suhuMasukan + 32; cout << ” hasil konversi = ” << suhuKonversi << ” F” << endl; break; case 3: suhuKonversi = 273.15 + suhuMasukan; cout << ” hasil konversi = ” << suhuKonversi << ” F” << endl; break; default: cout << “pilihan salah !!!”; break; } return 0; } |