Dalam Pemrograman C++ kita harus mengetahui bermacam-macam blok percabangan dan perulangan, karena ini nantinya akan kita pakai dalam suatu kondisi. Dimana kondisi tersebut tidak memungkinkan kita untuk memakai kode c++ yang biasa. nah pada kesempatan kali ini mimin akan membahas tentang, Macam-macam struktur percabangan pada c++ dan struktur perulangan pada c++.
Macam-macam Bentuk Blok Percabangan pada C++
1.
Percabangan if Dalam C++
Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat kondisi bernilai benar.
Buatlah file bernama if.cpp, kemudian isi dengan kode berikut.
#include <iostream>
using namespace std;
int main(){
cout << "=== Program Pembayaran ===" << endl;
unsigned 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;
}
Baca Juga:
Struktur Percabangan If Dalam C++Kompilasi kode tersebut dengan perintah:
g++ if.cpp -o if
Lalu eksekusi dengan perintah:
./if
Perhatikan pada bagian ini:
// menggunakan percabangan if
if(total_belanja > 100000){
cout << "Selamat! anda dapat hadiah" << endl;
}
Inilah yang disebut blok program.
Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh komputer.
Blok program pada C++, selalu diawali dengan tanda buka kurung kurawal {dan akan diakhiri dengan tutup kurung kurawal }.
Apabila di dalam blok hanya terdapat satu baris ekspresi atau statement, maka boleh tidak ditulis tanda kurungnya.
if (total_belanja > 100000)
cout << "Selamat! anda dapat hadiah" << endl;
2.
Percabangan if/else Dalam C++
Percabangan if/else merupakan percabangan yang memiliki dua blok pilihan.
Blok pilihan pertama untuk kondisi benar, dan pilihan kedua untuk kondisi salah (else).
Buatlah file beru 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 == "sayangkamu"){
cout << "Selamat datang bro!" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}
cout << "Terimakasih sudah menggunakan aplikasi ini!" << endl;
return 0;
}
3.
Percabangan if/else/if Dalam C++
Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok pilihan.
Contoh Program:
#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 = "C";
} else if (nilai >= 60) {
grade = "D";
} else if (nilai >= 55) {
grade = "E";
} else if (nilai >= 40) {
grade = "F";
} else if (nilai >= 30) {
grade = "G";
} else {
grade = "H";
}
cout << "Grade anda: " << grade << endl;
return 0;
}
Baca Juga:
Pengenalan Bahasa Pemrograman C++4.
Percabangan Switch/Case Dalam C++
Percabangan switch/case adalah bentuk lain dari percabangan if/else/if.
Strukturnya seperti ini:
switch(variabel)
{
case <value>:
// blok kode
break;
case <value>:
// blok kode
break;
default:
// blok kode
}
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.
Baca Juga:
Program Gaji Karyawan C++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;
}
Perhatikan program di atas.
Kita menggunakan fungsi toupper() untuk mengubah huruf kecil menjadi huruf kapital atau huruf besar.
switch (toupper(grade))
{
...
}
Mengapa menggunakan toupper()?
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 TernaryPercabangan 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:
(kondisi) ? true : false
Bagian kondisi dapat kita isi dengan ekspresi yang menghasilkan nilai truedan 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;
}
6.
Percabangan Bersarang (Nested)Kita juga dapat membuat blok percabangan di dalam percabangan. Ini disebut percabangan bersarng 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 == "syarifsoden"){
if (password == "diadankamu"){
cout << "Selamat datang bos!" << endl;
} else {
cout << "Password salah, coba lagi!" << endl;
}
} else {
cout << "Anda tidak terdaftar" << endl;
}
return 0;
}
Macam-macam Blok Perulangan di C++1.
Blok Perulangan For pada C++
Perulangan for merupakan perulangan yang termasuk dalam couted loop, karena sudah jelas berapa kali ia akan mengulang.
Bentuknya kodenya seperti ini:
for(int i = 0; i < 10; i++){
printf("Perulangan ke-%i\n", i);
}
Yang perlu diperhatikan adalah kondisi yang ada di dalam kurung setelah kata for.
Kondisi ini akan menentukan:
Hitungan akan dimulai dari 0 (i = 0);
Hitungannya sampai berapa? Sampai i < 10;
Lalu di setiap perulangan i akan bertambah +1 (i++).
Variabel i pada perulangan for berfungsi untuk menyimpan nilai hitungan.
Jadi setiap perulangan dilakukan nilai i akan selalu bertambah satu. Karena kita menentukannya di bagian i++.
Contoh program loop dengan for:
#include <iostream>
using namespace std;
int main(){
for(int i = 0; i < 10; i++){
printf("Perulangan ke-%i\n", i);
}
return 0;
}
Apakah nama variabelnya harus selalu i?
Tidak.
Kita juga bisa menggunakan nama lain.
Misalnya:
#include <iostream>
using namespace std;
int main(){
for(int counter = 0; counter < 10; counter += 2){
printf("Perulangan ke-%i\n", counter);
}
return 0;
}
Pada contoh tersebut, kita melakukan perulangan dimulai dari nol 0. Lalu di setiap perulangan nilai variabel couter akan ditambah 2 (counter+=2).
Bagaimana kalau counter perulangannya dimulai dari akanga yang lebih besar sampai yang ke paling kecil?
Ini biasanya kita buat saat ingin menghitung mundur.
Caranya gampang.
Kita tinggal isi nilai counter dengan nilai terbesarnya.
Misalnya kita akan mulai hitungan dari 10 sampai ke 0.
Maka nilai counter, kita isi awalnya dengan 10.
Lalu di kondisi perbandingannya, kita berikan counter > 0. Artinya perulangan akan dilakukan selama nilai counter lebih besar dari 0.
Lalu kita kurangi (-1) nilai counter di setiap perulangan (counter--).
for(int counter = 10; counter > 0; counter--)
{
printf("Perulangan ke-%i\n", counter);
}
Mengapa tidak sampai nol (0)?
Karena kondisi yang kita berikan counter > 0. Apabila counter bernilai 0, maka kondisi ini akan menjadi false.
Kecuali kita menggunakan operator lebih besar sama dengan (>=), maka jika counter bernilai 0, kondisi akan menjadi true.
2.
Perulangan While pada C++
Perulangan while merupakan perulangan yang termasuk dalam perulangan uncounted loop.
Perulangan while juga dapat menjadi perulangan yang counted loop dengan memberikan counter di dalamnya.
Untuk memahami perulangan ini mari kita coba lihat contohnya:
#include <iostream>
using namespace std;
int main(){
char ulangi = 'y';
int counter = 0;
// perulangan while
while(ulangi == 'y'){
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
cin >> ulangi;
// increment counter
counter++;
}
printf("\n\n----------\n");
printf("Perulangan Selesai!\n");
printf("Kamu mengulang sebanyak %i kali.\n", counter);
return 0;
}
Coba perhatikan blok kode while:
// perulangan while
while(ulangi == 'y')
{
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
cin >> ulangi;
// increment counter
counter++;
}
Di sana Perulangan akan terjadi selama variabel ulangi brenilai y.
Lalu kita menggunakan fungsi scanf() untuk mengambil input.
Selama kita menjawab y pada input, maka perulangan akan terus dilakukan.
Tapi kalau kita jawab yang lain, maka perulangan akan dihentikan.
Karena kondisi perulangannya tidak terpenuhi.
3.
Perulangan Do/While pada C++
Perulangan do/while sama seperti perulangan while.
Perbedaanya:
Perulangan do/while akan melakukan perulangan sebanyak 1 kali terlebih dahulu, lalu mengecek kondisi yang ada di dalam kurung while.
Bentuk kodenya seperti ini:
Do
{
// blok kode yang akan diulang
} while (<kondisi>);
Jadi perbedaanya:
Perulangan do/while akan mengecek kondisi di belakang (sesudah mengulang), sedangkan while akan mencek kondisi di depan atau awal (sbelum mengulang).
Mari kita coba lihat contohnya:
#include <iostream>
using namespace std;
int main(){
char ulangi = 'y';
int counter = 0;
do {
printf("Apakah kamu mau mengulang?\n");
printf("Jawab (y/t): ");
cin >> ulangi;
// increment counter
counter++;
} while(ulangi == 'y');
printf("\n\n----------\n");
printf("Perulangan Selesai!\n");
printf("Kamu mengulang sebanyak %i kali.\n", counter);
return 0;
}
Contoh tersebut sama seperti contoh pada perulangan while.
Saat perulangan pertama, cobalah untuk membatalkan perulangannya dengan menjawab t.
4.
Perulangan Bersarang (Nested Loop)Di dalam blok perulangan, kita juga dapat membuat perulangan.
Ini disebut dengan nested loop atau perulangan bersarang atau perulangan di dalam perualangan.
Mari kita coba lihat contohnya:
#include <iostream>
using namespace std;
int main(){
for(int i = 0; i < 10; i++){
for(int j = 0; j < 10; j++){
printf("Perulangan ke (%d, %d)\n", i, j);
}
}
return 0;
}
Pada perulangan tersebut, kita menggunakan dua perulangan for.
Perulangan pertama menggunakan variabel i sebagai counter, sedangkan perultangan kedua menggunakan variabel j sebagai counter.
Nah itulah tadi struktur percabangan pada c++ dan struktur perulangan pada c++, sesuaikan struktur mana yang akan sobat pakai berdasarkan konsidi yang sedang sobat alami.