Struktur Percabangan
Struktur Percabangan
Selain percabangan, struktur ini juga disebut: control flow, decision, struktur kondisi,
Struktur if, dsb.
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
Contoh:
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.
“Jika total belanja lebih besar dari Rp 100.000, Maka tampilkan pesan Selamat,
Anda dapat hadiah”
#include <stdio.h>
void main(){
printf("== Program Pembayaran ==\n");
int total_belanja = 0;
Hasilnya:
// 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:
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).
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:
Else
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:
Apabila password benar, pesan yang ada pada blok hijau akan ditampilkan: “Selamat
datang bos!"
…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.
#include <stdio.h>
void main(){
// membuat array karakter untuk menyimpan password
char password[30];
// 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:
Pertama kita membuat sebuah array dari karakter dengan panjang 30 karakter untuk
menyimpan password.
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.
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.
If (kondisi_1) Then
pernyataan1
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
Else
End If
Ini adalah blok untuk percabangan if/else/if. Kita bisa menambahkan berapapun blok
yang kita inginkan.
#include <stdio.h>
void main(){
int nilai;
char grade;
Perhatikan di bagian else if untuk >= 80 dan >= 60, seharusnya di sana kita mengisi
variabel grade dengan B+ dan C+.
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.
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;
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:
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.
Sebagai contoh, apabila kita inputkan B maka case C yang akan terpilih.
Begitu juga saat kita inputkan E, maka case F yang akan terpilih.