Percabangan dan Ternary Operator

Dalam kehidupan sehari-hari, kita bisa punya banyak pilihan dan bisa mengambil keputusan berdasarkan kondisi tertentu. Lalu, apakah kita bisa membuat program yang mengeksekusi statement-statement yang berbeda berdasarkan pilihan pengguna? Jawabannya bisa.

Dalam bahasa pemrograman, kita bisa menentukan tindakan yang akan kita pilih berdasarkan syarat tertentu dengan menggunakan percabangan. Percabangan bisa kita gunakan untuk menentukan apa yang akan dilakukan program berdasarkan syarat tertentu seperti nilai variabel atau nilai kembalian dari suatu fungsi. Percabangan dalam bahasa C dan C++ ada 2 macam, yaitu :
  • If else
  • Switch case.
If Else
If bisa kita gunakan untuk menentukan apakah suatu baris program akan dieksekusi atau dilewati berdasarkan syarat tertentu. Syarat dari if, yang bisa kita sebut dengan kondisi, bisa kita letakkan di dalam kurung. Jika kondisi terpenuhi, maka statement atau bagian program yang berada di dalam lingkup dari if akan dieksekusi. Jika kondisi tidak terpenuhi, maka bagian tersebut akan dilewati.
#include <stdio.h>
int main(){
int angka=0;
    scanf("%d", &angka);
    if(angka==0)printf("angkanya adalah 0");
    return 0;
}
Pada contoh di atas, jika input yang diberikan pengguna adalah angka 0, maka statement setelah if akan dieksekusi. Jika tidak, maka statement tersebut tidak akan dieksekusi. Statement di dalam kode program tersebut adalah fungsi printf yang berguna untuk menampilkan output. Jadi, kalau kondisi "angka==0" tidak terpenuhi maka statement tersebut tidak akan dieksekusi sehingga tidak akan ada tulisan yang ditampilkan karena statement yang ada setelahnya cuma "return 0".

Untuk memberikan pilihan lain yang akan dieksekusi saat kondisi tidak terpenuhi, kita membutuhkan else. Statement setelah else akan dieksekusi jika kondisi dalam if tidak terpenuhi.
#include <stdio.h>

int main(){
int angka=0;
    scanf("%d", &angka);
    if(angka==0)printf("angkanya adalah 0");
    else printf("angkanya bukan 0");
    return 0;
}

Dalam percabangan yang menggunakan if, kita bisa menggunakan operator perbandingan untuk menentukan kondisi yang dibutuhkan. Operator-operator perbandingan tersebut, yaitu :
  1. == (sama dengan)
  2. <= (lebih besar dari atau sama dengan)
  3. >= (lebih kecil dari atau sama dengan)
  4. < (lebih kecil dari)
  5. > (lebih besar dari)
  6. != (tidak sama dengan)
Else if
Selain menggunakan percabangan sederhana yang hanya terdiri dari satu else, kita juga bisa menggunakan if di dalam else untuk membuat percabangan dengan lebih banyak pilihan. Kita bisa menggunakan if di dalam else sehingga ada beberapa "else if". Kegunaan "else if" adalah untuk memberikan kondisi lain saat kondisi dari if atau else if sebelumnya tidak terpenuhi.

Dalam satu rangkaian percabangan, kalian bisa menggunakan beberapa else if. Tapi, if maupun else yang berdiri sendiri hanya boleh ada satu dalam percabangan. Jika kalian ingin menggunakan else tanpa if, else tanpa if harus tetap diletakkan pada akhir percabangan sebagai satu-satunya else tanpa if.
#include <stdio.h>

int main(){
int angka=0;
    scanf("%d", &angka);
    if(angka==0)printf("angkanya adalah 0");
    else if(angka>0)printf("bilangan positif");
    else printf("bilangan negatif");
    return 0;
}
Ternary Operator
Versi lain yang lebih singkat untuk percabangan dengan if adalah ternary operator Ternary operator menggunakan tanda tanya (?) dan tanda titik dua(:) dengan pola seperti di bawah ini!
  • Variabel=Kondisi?Benar:Salah
Ternary operator berguna untuk memberikan nilai pada suatu variabel berdasarkan terpenuhi atau tidaknya kondisi yang diberikan. Berikut ini adalah contoh cara penggunaan ternary operator!
#include <stdio.h>

int main(){
int angka=0;
    scanf("%d", &angka);
    angka=(angka>0)?1:-1;
    printf("%d", angka);
    return 0;
}
Switch-case
Selanjutnya, kita akan mempelajari tentang bagaimana cara menggunakan switch-case. Switch-case adalah versi lain dari if yang menggunakan tanda perbandingan dengan sama dengan (==). Jika kita hanya menggunakan "==", lebih baik kita menggunakan switch case agar lebih rapi. Selain itu, dalam beberapa keadaan, switch case akan mempersingkat penulisan kode program jika programnya ditujukan untuk memberikan pilihan berupa "menu yang ditandai dengan angka".
#include <stdio.h>

int main(){
int angka=0;
    scanf("%d", &angka);
    if(angka==0)printf("nol");
    else if(angka==1)printf("satu");
    else if(angka==2)printf("dua");
    else if(angka==3)printf("tiga");
    else printf("lainnya");
    return 0;
}
Kode program di atas dapat diubah menjadi seperti di bawah ini.
#include <stdio.h>
int main(){
int angka=0;
    scanf("%d", &angka);
    switch(angka){
        case 0:
            printf("nol");
            break;
        case 1:
            printf("satu");
            break;
        case 2:
            printf("dua");
            break;
        case 3:
            printf("tiga");
            break;
        default:
            printf("lainnya");
     }
     return 0;
}
Pada percabangan yang menggunakan switch-case, nama variabel yang digunakan hanya ada satu. Variabel tersebut ditulis di dalam kurung setelah switch. Nilai-nilai yang ingin kita bandingkan dengan nilai variabel bisa kita letakkan di dalam case. Case berisi nilai dari variabel yang terdapat di dalam switch.

Pada contoh di atas variabelnya bernama angka. Jika angka bernilai 1, maka printf("satu"); yang berada di bawah "case 1:" akan dieksekusi. Jika semua angka di dalam case tidak terpenuhi, maka yang akan dieksekusi adalah statement setelah default. Default kegunaannya hampir sama dengan else pada if.

Pada kode program di atas kita juga bisa melihat break. Break pada pada switch berguna untuk membatasi bagian yang akan dieksekusi di bawah case yang terpenuhi. Tanpa break, semua statement di bawah case yang sesuai akan dieksekusi.

Berikutnya, coba hapus semua breaknya dan lihat apa yang akan terjadi jika kalian memasukkan nilai 0, 1, 2, atau 3. Bandingkan dengan saat kalian menggunakan break!
#include <stdio.h>
int main(){
int angka=0;
    scanf("%d", &angka);
    switch(angka){
        case 0:
            printf("nol");
        case 1:
            printf("satu");
        case 2:
            printf("dua");
        case 3:
            printf("tiga");
        default:
            printf("lainnya");
     }
     return 0;
}
Jika kalian tidak menggunakan break, maka "isi" dari semua case di bawah case yang sesuai dengan nilai dengan variabel dalam switch akan dieksekusi.