Percabangan dalam Bahasa C

Percabangan merupakan cara komputer untuk mengambil keputusan. Percabangan pasti ada pada setiap bahasa pemrograman, tak terkecuali dalam bahasa C. Berbeda dengan pengambilan keputusan manusia, komputer tidak bisa mengambil keputusan berdasarkan pilihan, seperti akan sarapan apa. Bukan karena komputer tidak bisa makan (memang tidak). Namun karena komputer hanya tau dua hal saja, yaitu benar dan salah, 0 dan 1, ya dan tidak.

Oleh karena itu dalam penentuan keputusan, komputer hanya akan menguji apakah kondisi sekarang benar (1) atau salah (0). Bahkan jika ada dua bilangan 5 dan 2, komputer tidak bisa memberitahu bahwa 5 lebih besar daripada 2 atau 2 lebih kecil. Sehingga perlu suatu perintah untuk komputer mengetahuinya.

Daftar isi

If Statement

If juga disebut dengan control flow atau conditional control structure karena program di dalamnya hanya akan dieksekusi jika kondisi terpenuhi.Percabangan

Pada percabangan if, code tidak akan menjalankan instruksi jika kondisi salah (tidak terpenuhi). Dalam bahasa C, syntax dari percabangan ini adalah:

#include <stdio.h>

int main(){
    int nilai;
    printf("Inputkan nilai ujian kamu: ");
    scanf("%d", &nilai);
    
    if(nilai >= 75){
        printf("Selamat, kamu lulus ujian\n");
        printf("Pertahankan!!\n");
    }
}

Program akan mencetak “Selamat, kamu lulus ujian” dan “Pertahankan!!” hanya jika input masukan bernilai 75 atau lebih.Contoh percabangan

Komputer akan menjalankan instruksi antara { dan } jika kondisi terpenuhi. Tanpa tanda kurung kurawal, komputer akan menganggap baris pertama setelah if saja yang harus dijalankan jika kondisi terpenuhi dan instruksi kedua tetap dijalankan meskipun kondisi salah (tidak terpenuhi). Misal:

#include <stdio.h>
int main(){
    int nilai;
    printf("Inputkan nilai ujian kamu: ");
    scanf("%d", &nilai);
    
    if(nilai >= 75)
        printf("Selamat, kamu lulus ujian\n");
        printf("Pertahankan!!\n");
}

Jika komputer menerima input 70, komputer tetap akan mencetak “Pertahankan!!”, berbeda dengan potongan program sebelumnya yang tidak akan mencetak apa-apa.

If/Else

Bagaimana jika kita ingin komputer melakukan hal lain jika kondisi tidak terpenuhi? Jawabannya adalah dengan if/else. Komputer akan menjalankan blok pertama jika kondisi benar dan jika kondisi salah, komputer akan menjalankan blok kedua.

If-else

#include<stdio.h>

int main(){
    int nilai;
    printf("Inputkan nilai ujian kamu: ");
    scanf("%d", &nilai);
    
    if(nilai >= 75){
        printf("Selamat, kamu lulus ujian\n");
        printf("Pertahankan!!\n");
    }
    else{
        printf("Kamu tidak lulus ujian\n");
        printf("Belajar lebih giat!!\n");
    }
}

Pada program tersebut, komputer akan mencetak “Selamat, kamu lulus ujian” dan “Pertahankan!!” jika input bernilai 75 atau lebih dan komputer akan mencetak “Kamu tidak lulus ujian” dan “Belajar lebih giat!!” jika input kurang (tidak lebih atau sama) dari 75.

If/Else/If

Percabangan ini merupakan percabangan yang memiliki lebih dari 2 blok. Ketika kondisi pertama tidak terpenuhi, maka program akan menguji kondisi kedua, jika masih tidak terpenuhi, program akan menguji kondisi-kondisi berikutnya sampai bertemu else (jika ada).

Misalkan dalam menginput nilai, bisa saja inputan tersebut memiliki nilai lebih dari 100 atau kurang dari 0 yang mana seharusnya tidak ada. Sehingga program lengkapnya menjadi:

#include <stdio.h>

int main(){
    int nilai;
    printf("Inputkan nilai ujian kamu: ");
    scanf("%d", &nilai);
    
    if(nilai > 100 || nilai < 0)
        printf("Nilai tidak valid\n");
    else if(nilai >= 75){
        printf("Selamat, kamu lulus ujian\n");
        printf("Pertahankan!!\n");
    }
    else{
        printf("Kamu tidak lulus ujian\n");
        printf("Belajar lebih giat!!\n");
    }
}

Misalkan input dari pengguna adalah 201, maka komputer akan mencetak “Nilai tidak valid”. Meskipun 201 juga lebih besar dari 75 (kondisi kedua), namun program akan mengabaikannya karena kondisi pertama sudah terpenuhi. Jenis percabangan ini juga bisa digunakan untuk memberi grade nilai.

#include <stdio.h>

int main(){
    int nilai;
    char grade;
    printf("Inputkan nilai ujian kamu: ");
    scanf("%d", &nilai);
    
    if(nilai > 100 || nilai < 0)
        printf("Nilai tidak valid\n");
    else if(nilai >= 85)
        grade = 'A';
    else if(nilai >= 75)
        grade = 'B';
    else if(nilai >= 60)
        grade = 'C';
    else if(nilai >= 50)
        grade = 'D';
    else grade = 'E';
    
    printf("Grade kamu adalah %c\n", grade);
}

Bisakah kamu menyebutkan jangkauan masing-masing grade? Sebutkan di kolom komentar ya.

Nested If

Kita bisa saja membagi kondisi yang sudah benar. Misalkan dalam sebuah perusahaan, target profit minimal adalah 1000 dalam satu bulan dengan minimal client berjumlah 20 untuk mendapatkan bonus besar.  Maka,

#include <stdio.h>

int main(){
    int profit = 1400, client = 15;
    int bonus = 0;
    
    if(profit >= 1000)
        if(client >= 20)
            bonus = 50;
        else
            bonus = 25;
    else
        printf("Bekerja lebih giat!!\n");
    
    printf("Bonus bulan ini: %d\n",bonus);
}

Berdasarkan data, profit yang diperoleh adalah 1400 dengan 15 client, sehingga bonus yang didapat adalah 25. Tidak terdapat kurung kurawal pada contoh karena if/else merupakan satu paket (program menganggapnya sebagai satu instruksi).

Switch/case

Percabangan ini merupakan bentuk lain dari percabangan if/else/if. Percabangan ini memiliki struktur:

switch(variabel){
    case<nilai_1>:
        //instruksi
        break;
    case<nilai_2>:
        //instruksi
        break;
    default:
        //instruksi
}

Tentu saja blok case bisa tidak terbatas tergantung kebutuhan. Percabangan ini hanya bisa digunakan jika variabel bernilai tertentu (tepat 1). Contoh:

#include <stdio.h>

int main(){
    int num = 5;
    switch (num){
        case 1:
            printf("Satu\n");
            break;
        case 2:
            printf("Dua\n");
            break;
        case 3:
            printf("Tiga\n");
            break;
        case 4:
            printf("Empat\n");
            break;
        case 5:
            printf("Lima\n");
            break;
        default:
            cout<<"Bilangan bukan antara 1-5\n";
        }
}

Komputer akan mencetak “Lima”. Kita juga bisa mengganti num dengan sebuah ekspresi, misalkan num%5 + 1 dll. Jika instruksi ada yang sama, bisa juga dengan menuliskan:

#include <stdio.h>

int main(){
    int num = 5;
    switch (num){
        case 1:
        case 2:
        case 3:
            printf("Satu, dua atau tiga\n");
            break;
        case 4:
        case 5:
        case 6:
            printf("Empat, lima atau enam\n");
            break;
        default:
            cout<<"Bilangan bukan antara 1-6\n";
        }
}

Pada contoh tersebut, keluaran yang akan tercetak adalah “Empat, lima atau enam\n”.

Ternary

Percabangan ini merupakan bentuk lain dari if/else dan secara penulisan, percabangan ini lebih singkat karena hanya dengan (kondisi) ? true : false. Misalnya:

#include <stdio.h>

int main(){
    printf("%s",(2 > 5) ? "Benar" : "Salah");
}

Percabangan pada contoh akan memberi nilai “Benar” jika 2 > 5 dan “Salah” jika memang salah. Itulah kenapa format specifier menggunakan %s karena keduanya merupakan string.

Share Now:

0 0 votes
Article Rating
Subscribe
Notify of
guest
0 Comments
Inline Feedbacks
View all comments

Langganan

Subscribe To Our Newsletter

0
Would love your thoughts, please comment.x
()
x