Dasar Bahasa C · Pelajaran 4 dari 12
Percabangan if dan switch
8 menit baca · BelajarCode
Di C, syarat bernilai benar jika tidak nol dan salah jika nol. Hasil operator pembanding adalah 1 (benar) atau 0 (salah).
1#include <stdio.h>23int main(void) {4 int nilai = 78;5 char predikat;6 if (nilai >= 85) {7 predikat = 'A';8 } else if (nilai >= 70) {9 predikat = 'B';10 } else if (nilai >= 55) {11 predikat = 'C';12 } else {13 predikat = 'D';14 }15 printf("Nilai %d, predikat %c\n", nilai, predikat);16 printf("Hasil 5 > 3 bernilai %d\n", 5 > 3);17 return 0;18}Nilai 78, predikat B Hasil 5 > 3 bernilai 1
Operator logika
Operator dan ditulis &&, operator bukan ditulis !, dan operator atau ditulis dengan dua garis tegak. Contoh tahun kabisat:
1#include <stdio.h>23int main(void) {4 int tahun[] = {1900, 2000, 2024, 2026};5 for (int i = 0; i < 4; i++) {6 int t = tahun[i];7 int kabisat = (t % 4 == 0 && t % 100 != 0) || t % 400 == 0;8 printf("%d %s\n", t, kabisat ? "kabisat" : "bukan kabisat");9 }10 return 0;11}1900 bukan kabisat 2000 kabisat 2024 kabisat 2026 bukan kabisat
syarat ? a : b adalah operator ternary: hasilnya a jika syarat benar, b jika salah.
Satu atau dua tanda sama dengan
if (x = 5) mengisi x dengan 5, lalu nilainya (5, tidak nol) dianggap benar, sehingga syaratnya selalu benar. Yang dimaksud hampir selalu if (x == 5). Kompilasi dengan peringatan aktif (-Wall) membantu menangkap kesalahan ini.
switch
1#include <stdio.h>23int main(void) {4 char pilihan = 'b';5 switch (pilihan) {6 case 'a':7 printf("Lihat jadwal kuliah\n");8 break;9 case 'b':10 printf("Lihat nilai\n");11 break;12 case 'c':13 printf("Keluar\n");14 break;15 default:16 printf("Pilihan tidak dikenal\n");17 }18 return 0;19}Lihat nilai
switch di C hanya bisa membandingkan bilangan bulat dan karakter, tidak bisa string. Jangan lupa break, atau eksekusi berlanjut ke case berikutnya.
Cek pemahaman
Apa yang ditampilkan kode berikut: int x = 0; if (x) printf("A"); else printf("B");?
Latihan
Tarif listrik bertingkat
Baca pemakaian listrik dalam kWh. Tarifnya Rp1.000 per kWh untuk 100 kWh pertama, Rp1.500 per kWh untuk 101 sampai 200 kWh, dan Rp2.000 per kWh untuk pemakaian di atas 200 kWh. Hitung total tagihannya.
Pembahasan
1#include <stdio.h>23int main(void) {4 int kwh;5 if (scanf("%d", &kwh) != 1 || kwh < 0) {6 printf("Masukan tidak valid\n");7 return 1;8 }9 long long biaya;10 if (kwh <= 100) {11 biaya = kwh * 1000LL;12 } else if (kwh <= 200) {13 biaya = 100 * 1000LL + (kwh - 100) * 1500LL;14 } else {15 biaya = 100 * 1000LL + 100 * 1500LL + (kwh - 200) * 2000LL;16 }17 printf("Tagihan: Rp%lld\n", biaya);18 return 0;19}250
Tagihan: Rp350000
100 kWh pertama Rp100.000, 100 kWh berikutnya Rp150.000, dan 50 kWh sisanya Rp100.000.
Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler C online.