Anda di halaman 1dari 16

Pada flow chart, logika “jika…maka” digambarkan dalam bentuk cabang.

Karena itu, ini disebut percabangan.

Selain percabangan, struktur ini juga disebut: control flow, decision, struktur kondisi,
Struktur if, dsb.

Percabangan merupakan suatu algoritma program yang memiliki suatu kondisi


dimana kondisi tersebutlah yang akan menentukan perintah-perintah yang akan
dijalankan oleh suatu program. Perintah dalam suatu kondisi akan dijalankan ketika
kondisi tersebut bernilai benar, dan sebaliknya apabila kondisi bernilai salah maka
perintah di dalamnya tidak akan dijalankan. Percabangan ini dapat digambarkan
melalui flowchart di bawah ini:
Pada pemrograman C, terdapat 4 bentuk percabangan yang harus kita ketahui.

Apa saja itu?

Mari kita bahas…

1. Percabangan if
Percabangan if merupakan percabangan yang hanya memiliki satu blok pilihan saat
kondisi bernilai benar. Bentuk umum penulisan algoritmanya sebagai berikut:

If (kondisi) Then

pernyataan

End If

Dimana kondisi adalah ekspresi kondisi yg harus terpenuhi dan pernyataan


merupakan aksi yg harus dijalankan program jika kondisi terpenuhi ataupun tidak
terpenuhi.

Contoh:

If Nilai >= 75 Then

Status = “Lulus”

End If

Pada contoh di atas ekspresi kondisi adalah Nilai >=75. Jika variable Nilai
mengandung nilai yang lebih dari atau sama dengan 75, maka aksi pernyataan
dijalankan yaitu variabel Status = “Lulus”, artinya Status nilai dengan kondisi tersebut
dinyatakan lulus. Namun, jika Nilai kurang dari 75, maka pernyataan penugasan
tersebut akan dilewati dan algoritma selesai yang dinyatakan dengan End If.

Kasus lainnya, coba perhatikan flowchart berikut ini:


Flowchart tersebut dapat kita baca seperti ini:

“Jika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan Selamat,
Anda dapat hadiah”

Kalau dibawah Rp 100.000 bagaimana?

Ya pesannya tidak akan ditampilkan.

Mari kita coba dalam program C.

1. Buatlah file bernama percabangan_if.c, kemudian isi dengan kode berikut.

#include <stdio.h>

void main(){
printf("== Program Pembayaran ==\n");
int total_belanja = 0;

printf("Inputkan total belanja: ");


scanf("%i", &total_belanja);

// menggunakan blok percabangan if


if( total_belanja > 100000 ){
printf("Selamat, Anda mendapatkan hadiah!\n");
}

printf("Terimakasih sudah berbelanja di toko kami\n\n");


}

Hasilnya:

Saat kita masukan nilai di bawah 100000.

Saat kita masukan nilai di atas 100000.


Sekarang mari kita perhatikan kode programnya…

Perhatikan pada bagian ini:

// menggunakan percabangan if
if( total_belanja > 100000 ){
printf("Selamat, Anda mendapatkan hadiah!\n");
}
Inilah yang disebut blok program.

Blok program berisi sekumpulan ekpresi dan statement untuk dikerjakan oleh
komputer.

Blok program pada bahasa 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 seperti ini:

if (total_belanja > 100000)


printf("Selamat, Anda mendapatkan hadiah!\n");

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).

Bentuk umum penulisan algoritmanya sebagai berikut:

If (kondisi) Then

pernyataan1

Else

pernyataan2

End If
Jika kondisi bernilai benar (true) atau kondisi terpenuhi maka perintah pernyataan1
akan dijalankan, sedangkan jika kondisi bernilai salah (false) maka perintah
pernyataan2 setelah Else yang dijalankan.

Contoh:

If (2 <3) And (4>2) Then

Status = “Kondisi benar”

Else

Status = “Kondisi salah”

End If

Pada contoh di atas ekspresi kondisi adalah (2 <3) And (4>2), maka karena ada
operator And ekspresi kondisi keduanya harus terpenuhi baik ekspresi kondisi sebelah
kanan ataupun sebelah kiri. Jika kedua kondisi terpenuhi maka Status akan
menunjukkan bahwa kondisi benar, sebaliknya jika hanya salah satu kondisi terpenuhi
maka Status yang dieksekusi yaitu baris di bawah Else dengan menunjukkan kalimat
kondisi salah. Dan pernyataan penugasan tersebut akan dilewati dan algoritma selesai
yang dinyatakan dengan End If.
Kasus lainnya, coba perhatikan flowchart berikut ini:

Coba perhatikan flowchart ini:

Ini adalah flowchart untuk mengecek password.

Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan: “Selamat
datang bos!"

Tapi kalau salah…

…maka pesan yang ada di blok merah yang akan ditampilkan: “Password salah,
coba lagi!"

Kemudian, pesan yang berada di blok abu-abu akan tetap ditampilkan, karena dia
bukan bagian dari blok percabangan if/else.

Perhatikan arah panahnya, setiap blok if/else mengarah ke sana…


Untuk lebih jelasnya, mari kita coba dalam program.

2. Buatlah file bernama � percabangan_if_else.c, kemudian isi dengan kode


berikut:

#include <stdio.h>

void main(){
// membuat array karakter untuk menyimpan password
char password[30];

printf("==== Program Login ====\n");


printf("Masukan password: ");
scanf("%s", &password);

// percabangan if/esle
if( strcmp(password, "kopi") == 0 ){
printf("Selamat datang bos!\n");
} else {
printf("Password salah, coba lagi!\n");
}
printf("Terimakasih sudah menggunakan aplikasi ini!\n");
}

Hasilnya:

Saat password yang diinputkan benar.

Saat password yang diinputkan salah.

Sekarang coba perhatikan kode programnya.

Pertama kita membuat sebuah array dari karakter dengan panjang 30 karakter untuk
menyimpan password.

// membuat array karakter untuk menyimpan password


char password[30];
Setelah itu kita mengisi nilai password dengan mengambil input dari scanf().

scanf("%s", &password);
Berikutnya pada percabangan if/else, kita menggunakan fungsi strcmp() untuk
membandingkan dua teks (string).
if( strcmp(password, "kopi") == 0 ){
printf("Selamat datang bos!\n");
} else {
printf("Password salah, coba lagi!\n");
}

Fungsi strcmp() akan menghasilkan nilai false atau nol (0) jika kedua teks yang
dibandingkan sama.

Oleh sebab itu, kita menggunakan perbandingan seperti ini…

strcmp(password, "kopi") == 0
…pada blok if/else.

3. Percabangan if/else/if
Percabangan if/else/if merupakan percabangan yang memiliki lebih dari dua blok
pilihan.

Bentuk umum penulisan algoritmanya sebagai berikut:

If (kondisi_1) Then

pernyataan1

Elseif (kondisi_2) Then

pernyataan2

Else

pernyataan ke-n

End If

Jika kondisi_1 bernilai benar (true) atau kondisi terpenuhi maka perintah pernyataan1
akan dijalankan, sedangkan jika kondisi_1 sampai kondisi_n bernilai salah (false) maka
perintah pernyataan setelah Else yang dijalankan.
Contoh:

If (x==10) Then

write(“Tebakan anda benar, selamat”)

Elseif (x>10) Then

write(“Tebakan anda terlalu besar”)

Else

Write(“Tebakan anda terlalu kecil”)

End If

Coba perhatikan flowchart berikut:


Perhatikan blok yang saya beri warna…

Ini adalah blok untuk percabangan if/else/if. Kita bisa menambahkan berapapun blok
yang kita inginkan.

Contoh Program: � program_if_else_if.c

#include <stdio.h>

void main(){
int nilai;
char grade;

printf("=== Program Grade Nilai ===\n");


printf("Inputkan nilai: ");
scanf("%i", &nilai);

// menggunakan percabangan if/esle/if


if (nilai >= 90) {
grade = 'A';
} else if (nilai >= 80) {
grade = 'B'; // seharusnya B+
} else if (nilai >= 70) {
grade = 'B';
} else if (nilai >= 60) {
grade = 'C'; // seharusnya C+
} else if (nilai >= 50) {
grade = 'C';
} else if (nilai >= 40) {
grade = 'D';
} else if (nilai >= 30) {
grade = 'E';
} else {
grade = 'F';
}

printf("Nilai: %i\n", nilai);


printf("Grade anda: %c\n", grade);
}
Hasilnya:

Perhatikan di bagian else if untuk >= 80 dan >= 60, seharusnya di sana kita mengisi
variabel grade dengan B+ dan C+.

Tapi kita mengisinya dengan B dan C saja.

Ini karena variabel tersebut bertipe char dan tipe data ini hanya mampu menyimpan
satu karakter saja.

Jika ingin menggunakan B+ dan C+, kita bisa pakai tipe data string.

4. Percabangan Switch/Case
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.

Pemberian break bertujuan agar program berhenti mengecek case berikutnya saat
sebuah case terpenuhi.
Contoh:

#include <stdio.h>

void main(){

char grade;

printf("Inputkan grade: ");


scanf("%c", &grade);

switch (toupper(grade)){
case 'A':
printf("Luar biasa!\n");
break;
case 'B':
case 'C':
printf("Bagus!\n");
break;
case 'D':
printf("Anda lulus\n");
break;
case 'E':
case 'F':
printf("Anda remidi\n");
break;
default:
printf("Grade Salah!\n");
}
}
Hasilnya:

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.

Sumber : Buku paket pemdas dan https://www.petanikode.com/c-percabangan/

Anda mungkin juga menyukai