Halo teman Rumah Coding, pada artikel sebelumnya kita sudah membahas tentang Operator pada pemgrograman C++. Bagi yang belum membaca bisa silahkan buka artikel nya dulu ya, karena kali ini kita akan membahas tentang Percabangan pada pemrograman C++.
Percabangan berfungsi untuk memecahkan persoalan dan mengambil satu keputusan dari beberapa pilihan sesuai kondisi yang sedang dialami program
Pada pemrograman C++, terdapat beberapa bentuk percabangan yang harus kita kitahui.
1. Percabangan if
Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi bernilai benar.
Mari kita coba dalam program C++. Buatlah file bernama if.cpp, kemudian isi dengan kode berikut.
#include <iostream>
using namespace std;
int main(){
cout << "=== Program Pembayaran ===" << endl;
int total_belanja;
cout << "Masukan total belanja: ";
cin >> total_belanja;
// menggunakan percabangan if
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}
cout << "Terimakasih sudah berbelanja di toko kami" << endl;
return 0;
}
Jalankan program tersebut
Bisa dilihat perbedaan dari hasil program diatas, jika input diatas 100000 akan menghasilkan output yang berbeda. Itu dikarenakan adanya percabangan
Perhatian bagian ini
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}
(total_belanja > 100000)
Bagian kondisi “jika nilai variabel total_belanja lebih dari 100000” menghasilkan nilai true / false
{ cout << “Selamat! anda dapat hadiah” << endl; }
Bagian statement / perintah yang dilakukan jika kondisi bernilai true.
2. Percabangan if/else
Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
Untuk lebih jelasnya, mari kita coba dalam program.
Buatlah file baru bernama if_else.cpp, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
int main(){
string password;
cout << "========= Login =========" << endl;
cout << "Masukan password: ";
cin >> password;
// percabangan if/else
if (password == "kopi"){
cout << "Selamat datang bos!" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}
cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;
return 0;
}
Jalankan program tersebut
Apabila password benar, pesan yang ada pada blok if akan ditampilkan: “Selamat datang bos!”
Tapi kalau salah, maka pesan yang ada di blok else yang akan ditampilkan: “Password salah, coba lagi!”
Kemudian, pesan yang berada luar blok if else akan tetap ditampilkan, karena dia bukan bagian dari blok percabangan if/else.
3. Percabangan if/else/if
Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.
Contoh Program, buat file if_elseif.cpp. isi kode berikut:
#include <iostream>
using namespace std;
int main(){
int nilai;
string grade;
cout << "=== Program Grade Nilai ===" << endl;
cout << "Inputkan nilai akhir: ";
cin >> nilai;
// menggunakan percabangan if/esle/if
if (nilai >= 90) {
grade = "A";
} else if (nilai >= 80) {
grade = "B+";
} else if (nilai >= 70) {
grade = "B";
} else if (nilai >= 60) {
grade = "C+";
} else if (nilai >= 50) {
grade = "C";
} else if (nilai >= 40) {
grade = "D";
} else if (nilai >= 30) {
grade = "E";
} else {
grade = "F";
}
cout << "Grade anda: " << grade << endl;
return 0;
}
Jalankan program:
Hasil program akan menentukan grade sesuai dengan input. Pada percabangan if_elseif hanya else yang tidak memiliki kondisi.
4. Percabangan Switch/Case
Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.
Strukturnya seperti ini:
Kita dapat mermbuat blok kode (case) sebanyak yang diinginkan di dalam blok switch.
Pada <value>, kita bisa isi dengan nilai yang nanti akan dibandingkan dengan varabel.
Setiap case harus diakhiri dengan break. Khusus untuk default, tidak perlu diakhiri dengan break karena dia terletak di bagian akhir.
Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat sebuah case terpenuhi. Contoh:
#include <iostream>
using namespace std;
int main(){
char grade;
cout << "Inputkan grade: ";
cin >> grade;
switch (toupper(grade)){
case 'A':
cout << "Luar biasa!" << endl;
break;
case 'B':
case 'C':
cout << "Bagus!" << endl;
break;
case 'D':
cout << "Anda lulus" << endl;
break;
case 'E':
case 'F':
cout << "Anda remidi" << endl;
break;
default:
cout << "Grade Salah!" << endl;
}
return 0;
}
Hasil program :
Perhatikan program di atas…
Kita menggunakan fungsi toupper() untuk mengubah huruf kecil menjadi huruf kapital atau huruf besar.
Ini karena agar kita dapat menginputkan huruf kecil dan huruf besar untuk mengecek grade.
Berikutnya coba perhatikan case ‘B’ dan case ‘E’.
Kedua case ini tidak memiliki isi.
Ini artinya…dia akan mengikut pada case berikutnya.
Sebagai contoh, apabila kita inputkan B maka case C yang akan terpilih.
Begitu juga saat kita inputkan E, maka case F yang akan terpilih.
5. Percabangan dengan Opertor Ternary
Percabangan menggunakan opreator ternary merupakan bentuk lain dari percabangan if/else.
Bisa dibilang:
Bentuk singkatnya dari if/else.
Operator ternary juga dikenal dengan sebutan operator kondisi (conditional operator).
Bentuk strukturnya seperti ini:
Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai true dan false.
Lalu setlah tanda tanya ? adalah bagian pilihan.
Jika kondisi bernilai benar, maka true yang akan dipilih. Tapi kalau salah, maka false yang akan dipilih.
Untuk lebih jelasnya, mari kita coba…
Buatlah file baru bernama ternary.cpp, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
int main(){
int jawaban;
cout << "Berapakah hasil 3+4?" << endl;
cout << "jawab> ";
cin >> jawaban;
string hasil = (jawaban == 7) ? "Benar" : "Salah";
cout << "Jawaban anda: " << hasil << endl;
return 0;
}
Jalankan program
6. Percabangan Bersarang (Nested)
Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan bersarang atau nested if.
Contoh: nested.cpp
#include <iostream>
using namespace std;
int main(){
string username, password;
cout << "=== Welcome ===" << endl;
cout << "Username: ";
cin >> username;
cout << "Password: ";
cin >> password;
if (username == "rumahcoding"){
if (password == "coding"){
cout << "Selamat datang !" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}
} else {
cout << "Anda tidak terdaftar" << endl;
}
return 0;
}
Hasil program :