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

C
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}
Keluaran
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:

C
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}
Keluaran
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

C
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}
Keluaran
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.

Jalankan contoh kode di pelajaran ini tanpa instalasi lewat compiler C online.

Tandai pelajaran ini selesai

Masuk ke aplikasi untuk mencatat kemajuan, lalu lanjutkan ke pelajaran berikutnya dari perangkat mana pun.

Buka di aplikasi