Blok Percabangan if, if-else, dan if-else if pada Bahasa Pemrograman C++

Selamat datang kembali di pakkoding.id para programer baru!
Kali ini kita akan membahas mengenai flow control percabangan if.

Sebelum masuk ke sintaks penggunaan blok percabangan if terlebih dahulu kita harus memahami apa itu percabangan. Istilah percabangan juga dikenal dengan istilah penyeleksian, control flow, decision, struktur kondisi, struktur if.

Sebagai contoh, jika dianalogikan, jika saya memiliki uang 10.000 rupiah saya akan membeli nasi goreng. Namun, jika saya memiliki uang 20.000 saya akan membeli coto Makassar. Saat ini saya memiliki uang 20.000 rupiah. Jika melihat pernyataan sebelumnya, maka dapat diketahui bahwa saya akan membeli coto Makassar.

Dari analogi yang diberikan di atas, kita dapat menyimpulkan bahwa percabangan adalah penentuan pengeksekusian statement berdasarkan kondisi tertentu.

Video 1. Penjelasan seleksi kondisi dan struktur if sederhana disertai contoh program

Blok percabangan “if” adalah salah satu bentuk blok pernyataan penyeleksian yang memungkinkan kita untuk memanipulasi alur pengeksekusian perintah pada program berdasarkan conditional expression tertentu. Dengan adanya blok percabangan ini, kita dapat membuat program berjalan secara fleksibel sesuai keadaan dari pengguna dan mesin. Terdapat beberapa jenis bentuk dari blok percabangan if. Kita akan mambahasnya satu persatu.


1. if

Pernyataan if adalah bentuk pernyataan percabangan yang paling sederhana. Bentuk percabangan ini digunakan untuk memutuskan apakah suatu pernyataan atau blok pernyataan tertentu akan dieksekusi atau tidak, jika kondisi tertentu benar maka blok pernyataan dieksekusi, namun jika salah maka tidak akan dieksekusi. if hanya memiliki 1 blok pilihan yang akan dieksekusi jika kondisi bernilai benar.

Sintaks if dan contoh

Berikut sintaks bentuk if yang paling sederhana:

if (kondisi) {

//pernyataan yang akan dieksekusi

//jika kondisi bernilai benar

}

Gambar 1. Sintaks if

Sintaks adalah aturan penulisan yang digunakan untuk membuat suatu ekspresi tertentu. Pada gambar 1 di atas kita telah melihat salah satu bentuk sintaks dari penggunaan seleksi kondisi if. Pada bagian kondisi akan diisi dengan ekspresi boolean yang menghasilkan nilai true atau false. Jika kondisi bernilai true maka blok perintah if akan dieksekusi. Namun, jika bernilai false, maka blok perintah tidak akan dieksekusi (dilompati).

Berdasarkan sintaks pada gambar 1, berikut contoh penggunaan sintaks if tersebut. Perhatikan gambar 2.

Gambar 2. Contoh penggunaan sintaks if

Berdasarkan contoh pada gambar 2, dapat diketahui bahwa kondisi bernilai true. Sehingga, blok perintah if di dalam { } akan dieksekusi.

Agar lebih jelas lagi berikut kami berikan contoh berbeda disertai flowchartnya. Lihat gambar 3.

Gambar 3. Contoh dan flowchart if

Pada gambar 3 di atas, jika x kita isi dengan nilai 5 dan y dengan nilai 10 maka kondisi akan bernilai true. Karena kondisi (x<y)bernilai true maka statement cout << "x lebih besar dari y"; akan dieksekusi. Sehingga string "x lebih besar dari y" akan ditampilkan sebagai output. Namun, jika x kita isi dengan 10 dan y dengan 5 maka kondisi (x<y) akan bernilai false. Karena kondisi (x<y) bernilai false maka statement cout << "x lebih besar dari y"; tidak akan akan dilewati sehingga tidak dieksekusi.

Contoh program “if”

Agar lebih memahami pengimplementasiannya dalam sebuah program sederhana. Berikut kami berikan contoh penggunaan if dalam suatu program sederhana.

#include<iostream>
using namespace std;

int main()
{
   int x = 10;
   int y = 10;

   if (x >= y)
   {
   cout<<"x lebih besar atau sama dengan y."<<endl;
   }

   cout<<"Nilai x : "<< x<<endl;
   cout<<"Nilai y : "<< y<<endl;
}

Output:

x lebih besar atau sama dengan y.
Nilai x : 10
Nilai y : 10

Pada program contoh 1 kita telah menerapkan penggunaan if dalam sebuah program sederhana. Pada baris 6 dan 7 kita mendekalarasikan variabel x dan y bertipe integer yang masing-masing bernilai 10. Pada baris 9 hingga 12 merupakan blok kode percabangan.

Pada bagian kondisi dari sintaks percabangan if kita lihat berisi kondisi x>=y. Jika bingung dengan maksud dari kondisi ini, coba untuk letakkan kondisi x>=y ke dalam sebuah pertanyaan seperti ini “Apakah x>=y (x lebih besar atau sama dengan y) ?“. Jika nilai x lebih besar atau sama dengan nilai y maka perintah baris 11 akan dieksekusi. Namun, jika tidak maka semua perintah yang berada didalam blok “{” hingga “}” dari if tidak akan dieksekusi. Artinya, setelah kondisi diperiksa dan ternyata false maka pengeksekusian akan berlanjut ke baris perintah setelah “}” dari if.

Pada contoh di atas perintah baris 11 dieksekusi sebab kondisi x>=y bernilai benar. Jika anda merubah nilai x menjadi 5 dan y menjadi 7 maka perintah baris 11 tidak akan dieksekusi.


2. if-else

Pada pernyataan if, kita hanya diberi sebuah pilihan atau pernyataan yang dieksekusi jika kondisi bernilai benar. Namun, ada suatu kondisi tertentu dimana kita membutuhkan pengeksekusian suatu perintah khusus jika kondisi bernilai salah.

Pernyataan if-else adalah bentuk pernyataan percabangan yang memiliki dua blok pilihan. Blok pilihan pertama akan dieksekusi jika kondisi benar dan blok pilihan kedua akan dieksekusi jika kondisi bernilai salah.

Video 2. Penjelasan struktur if-else disertai contoh program

Sintaks if-else dan contoh

Berikut sintaks dari if-else :

if (kondisi) {

//pernyataan yang akan dieksekusi

//jika kondisi bernilai benar

} else {

//pernyataan yang akan dieksekusi

//jika kondisi bernilai salah

}

Gambar 4. Sintaks if-else.

Berdasarkan sintaks pada gambar 4 maka dapat diberikan sebuah contoh penggunaan sintaks if-else tersebut. Seperti terlihat pada gambar 5 berikut ini.

Gambar 5. Contoh penggunaan sintaks if-else

Berikut kami berikan lagi contoh yang berbeda disertai flowchartnya. Lihat gambar 6.

Gambar 6. Contoh dan flowchart if-else

Pada gambar 6 di atas, jika x kita isi dengan nilai 5 dan y dengan nilai 10 maka kondisi akan bernilai false. Karena kondisi (x>y)bernilai false maka statement cout << "x lebih besar dari y"; tidak akan dilewati sehingga tidak dieksekusi. Berdasarkan kondisi tersebut yang akan dieksekusi adalah statement cout << "x lebih kecil dari y";. Sehingga string "x lebih kecil dari y" akan ditampilkan sebagai output.

Namun, jika x kita isi dengan 10 dan y dengan 5 maka kondisi (x>y) akan bernilai true. Karena kondisi (x<y) bernilai true maka statement cout << "x lebih besar dari y"; akan dieksekusi. Statement cout << "x lebih kecil dari y"; tidak akan akan dilewati sehingga tidak dieksekusi.

Contoh program “if-else”

Agar dapat lebih memahami pengimplementasiannya, berikut contoh penggunaan if-elsedalam suatu program sederhana.

#include<iostream>
using namespace std;

int main() {
    int x = 7;
    int y = 10;

    if (x >= y){
        cout<<"x lebih besar atau sama dengan y."<<endl;
    } else {
        cout<<"x lebih kecil daripada y."<<endl;
    }

    cout<<"Nilai x : "<< x<<endl;
    cout<<"Nilai y : "<< y<<endl;
}

Output:

x lebih kecil daripada y.
Nilai x : 7
Nilai y : 10

Pada contoh 2 kita telah menerapkan penggunaan if-else dalam sebuah program sederhana. Pada baris 5 dan 6 kita mendekalarasikan variabel x dan y bertipe integer yang masing-masing bernilai 7 dan 10. Pada baris 8 hingga 12 merupakan 1 rangkaian blok kode percabangan (bukan rangkaian terpisah).

Pada bagian kondisi dari sintaks percabangan if kita lihat berisi kondisi x>=y. Jika nilai x lebih besar atau sama dengan nilai y maka perintah baris 9 akan dieksekusi. Namun, jika tidak maka perintah yang ada pada blok else, dalam hal ini perintah baris 11 akan dieksekusi. Berbeda dengan contoh 1 dimana ketika kondisi salah maka tidak ada perintah khusus yang akan dieksekusi.

Pada contoh di atas perintah baris 11 cout<<"x lebih kecil daripada y."<<endl; dieksekusi sebab kondisi x>=y bernilai false. Jika misalnya anda merubah nilai x menjadi 20 dan y menjadi 8 maka perintah baris 9 akan dieksekusi.


3. if-else if

Percabangan jenis ini merupakan perluasan dari struktur if else yang memiliki dua kondisi atau lebih, yaitu dengan menyisipkan 1 atau lebih kondisi ke dalamnya. Percabangan if-else if ini penting untuk diketahui sebab pada kondisi tertentu kita memerlukan pengeksekusian suatu perintah khusus dari beberapa perintah khusus yang ada.

Pada sintaks if-else if berikut kita dapat melihat bahwa terdapat lebih dari satu kondisi di dalam rangkaian blok percabangan. Proses pengujian kondisinya dimulai dari kondisi paling atas ke bawah.

Video 3. Penjelasan mengenai struktur if-else if disertai contoh program

Sintaks if-else if dan contoh

Berikut sintaks dari if-else if:

if (kondisi1) {

//pernyataan yang akan dieksekusi

//jika kondisi1 bernilai benar

} else if (kondisi2) {

//pernyataan yang akan dieksekusi

//jika kondisi1 salah dan kondisi2 benar

} else {

//pernyataan yang akan dieksekusi

//jika kondisi1 dan kondisi 2 bernilai salah

}

Gambar 7. Sintaks if-else if.

Berdasarkan sintaks pada gambar 7 maka dapat diberikan sebuah contoh penggunaan sintaks if-else if tersebut. Seperti terlihat pada gambar 8 berikut ini.

Gambar 8. Contoh penggunaan sintaks if-else if.

Berikut kami berikan lagi contoh yang berbeda disertai flowchartnya. Lihat gambar 9.

Gambar 9. Contoh dan flowchart if-else if

Pada gambar 9 kita dapat mengetahui bahwa jika kondisi1 tidak memenuhi atau bernilai false (salah), maka kondisi2 akan diuji. Jika kondisi2 bernilai true (benar) maka blok perintah kondisi2 akan dieksekusi. Setelah dieksekusi, perogram akan mengeksekusi perintah di bawah rangkaian blok percabangan saat ini, bagian else tidak akan dieksekusi. Namun, jika kondisi1 dan kondisi2 bernilai salah barulah blok perintah bagian else dieksekusi.

Pada gambar di atas jika x berisi nilai 0 maka perintah yang akan dieksekusi adalah blok perintah bagian else yaitu cout << "x sama dengan 0";. Namun, jika x misalnya bernilai -5 maka perintah yang akan dieksekusi adalah blok perintah else if yaitu cout << "x lebih kecil dari 0";. Jika x bernilai 3 maka perintah yang akan dieksekusi adalah blok perintah if yaitu cout << "x lebih besar dari 0"; setelah itu proses pengeksekusian keluar dari blok percabangan.

Ingat bahwa rangkaian blok if di datas adalah satu kesatuan. Jika salah satu kondisi sudah terpenuhi maka kondisi berikutnya dalam blok if-else if tersebut tidak akan diuji atau dieksekusi. Bagian else akan dieksekusi jika semua kondisi yang ada bernilai false.

Contoh program “if-else if”

Untuk dapat lebih memahami bagaimana mengimplementasikan if-else if dalam sebuah program. Berikut kami berikan contoh penggunaan if-else if dalam suatu program sederhana.

#include<iostream>
using namespace std;

int main() {
    int x = 10;
    int y = 10;

    if (x > y){
        cout<<"x lebih besar dari y."<<endl;
    } else if (x < y){
        cout<<"x lebih kecil daripada y."<<endl;
    } else {
        cout<<"x sama dengan y."<<endl;
    }

    cout<<"Nilai x : "<< x<<endl;
    cout<<"Nilai y : "<< y<<endl;
}

Output:

x sama dengan y.
Nilai x : 10
Nilai y : 10

Pada contoh program di atas dapat kita lihat variabel x dan y bertipe integer masing-masing diinisilisasi dengan nilai 10. Blok percabangan if-else if dimulai pada baris 8 hingga 14. Pada blok percabangan tersebut kita dapat melihat bahwa kondisi1 diuji pertama kali, dalam hal ini x>y. Jika hasil pengujian bernilai true, maka baris perintah di dalam bloknya (baris 9) akan dieksekusi. Namun, jika kondisi1 bernilai false maka kondisi2 akan diuji dalam hal ini x<y. Jika hasil pengujian kondisi2 bernilai true, maka baris perintah didalam bloknya (baris 11) akan dieksekusi. Namun, jika kondisi2 bernilai salah maka secara otomatis dan pasti, blok perintah pada bagian else (baris 13) akan dieksekusi.

Dalam kasus yang diberikan pada contoh program di atas, karena x dan y sama-sama bernilai 10, maka yang akan dieksekusi adalah perintah pada blok else. Sehingga output yang tampil pada layar monitor adalah “x sama dengan y.


Contoh implementasi pada pemilihan menu

Sebagai contoh tambahan, perhatikan program berikut:

#include<iostream>
using namespace std;

int main() {
    string menu;
    cout<<"--Menu yang tersedia--"<<endl;
    cout<<"1. Coto"<<endl;
    cout<<"2. Nasgor:"<<endl;
    cout<<"Masukkan menu yang ingin anda pesan :"<<endl;
    cin>>menu;

    if (menu == "Coto"){
        cout<<"Anda memesan Coto"<<endl;
    } else if (menu == "Nasgor"){
        cout<<"Anda memesan Nasgor"<<endl;
    } else {
        cout<<"Menu yang anda pesan tidak tersedia"<<endl;
    }

    cout<<"--Terima kasih--"<<endl;
}

Output:

--Menu yang tersedia--
1. Coto
2. Nasgor:
Masukkan menu yang ingin anda pesan :
Coto
Anda memesan Coto
--Terima kasih--

Pada contoh 4 di atas kita telah mengimplementasikan percabangan dalam pemilihan menu makanan. Pada baris 5 dideklarasikan sebuah variabel bertipe string bernama menu. variabel menu nantinya akan menampung nilai yang diinputkan user melalui keyboard saat perintah cin>>menu; baris 10 dieksekusi. Pada baris 6 hingga 9 ditampilkan list menu dan permintaan untuk memasukkan menu.

Adapun blok percabangan dapat kita lihat pada baris 12 hingga 18. Pada blok percabangan tersebut, kondisi1 menguji menu == "Coto" (dibaca: apakah isi dari variabel menu sama dengan Coto?) sedangkan kondisi2 menguji menu == "Nasgor". Bagian else tanpa kondisi karena akan otomatis dan pasti dieksekusi jika kondisi1 dan kondisi2 bernilai false. Kemudian setelah melewati blok percabangan perintah cout<<"--Terima kasih--"<<endl; di baris 20 akan dieksekusi.

Pada contoh kasus di atas jika kita menginputkan “Coto” maka perintah cout<<"Anda memesan Coto"<<endl; pada baris 13 akan dieksekusi sehingga output yang ditampilkan adalah “Anda memesan Coto“.


Semoga dapat menambah wawasan teman-teman yang masih baru dalam dunia pemrograman. Semoga bermanfaat.

Jika ingin mendengarkan penjelasan secara lisan, jangan sungkan untuk mengunjungi channel youtube kami “PAKKODING“.

Oh iya, share halaman ini agar orang-orang yang baru belajar pemrograman dapat terbantu.

 13,132 total views,  17 views today

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *