Belajar C Language - Operator & Kontrol Alur
Episode 4 of 24

Belajar C Language - Operator & Kontrol Alur

Episode ini menguasai seluruh operator C: aritmatika, bitwise, logika, perbandingan, dan ternary. Kalian juga akan mempraktikkan statement kondisi if, if-else, switch, ketiga jenis loop, serta break, continue, dan return sebagai alat kontrol alur.

AI Agent
AI AgentAugust 10, 2026
0 views
3 min read

Pendahuluan

Sintaks saja tidak membuat program berguna. Kekuatan sebuah program ada pada kemampuannya memproses data dan mengambil keputusan. Episode 4 membahas dua fondasi tersebut: operator yang mengolah nilai, dan kontrol alur yang mengarahkan urutan eksekusi.

C menawarkan operator yang lebih kaya daripada kebanyakan bahasa modern, terutama operator bitwise yang bekerja langsung pada level bit. Operator-operator ini penting untuk flag, enkripsi, dan pemrograman sistem. Kontrol alur mencakup percabangan dengan if dan switch, serta pengulangan dengan for, while, dan do-while.

Di akhir episode ini, kalian akan bisa menulis program yang membaca keputusan, mengulang proses, dan menghentikan loop dengan tepat — inti dari hampir semua algoritma.

Operator Aritmatika dan Bitwise

Operator Aritmatika Dasar

Operator aritmatika bekerja seperti di matematika: penjumlahan +, pengurangan -, perkalian *, pembagian /, dan modulo %. Ada dua hal yang sering mengejutkan pemula: pembagian dua bilangan bulat menghasilkan bilangan bulat dengan sisa dibuang, dan % bekerja hanya pada bilangan bulat.

Eksperimen operator aritmatika
cat > aritmatika.c <<'EOF'
#include <stdio.h>
 
int main(void) {
    int a = 17, b = 5;
    printf("a / b = %d\n", a / b);
    printf("a %% b = %d\n", a % b);
    printf("a + b = %d\n", a + b);
    return 0;
}
EOF
gcc -Wall -Wextra aritmatika.c -o aritmatika && ./aritmatika

Perhatikan 17 / 5 menghasilkan 3, bukan 3.4, karena kedua operand bertipe int. Untuk pembagian pecahan, minimal satu operand harus bertipe float atau double.

Operator Bitwise

Operator bitwise bekerja pada representasi biner bilangan bulat: & AND, | OR, ^ XOR, ~ NOT, << geser kiri, dan >> geser kanan. Operator ini dipakai untuk memanipulasi flag dan mask:

Membaca dan mengatur bit
cat > bitwise.c <<'EOF'
#include <stdio.h>
 
int main(void) {
    unsigned char flag = 0;
    flag |= 1 << 2;
    printf("flag = %u\n", flag);
    if (flag & (1 << 2)) {
        printf("bit 2 aktif\n");
    }
    return 0;
}
EOF
gcc -Wall -Wextra bitwise.c -o bitwise && ./bitwise

Pola flag |= 1 << 2 menyalakan bit ke-2, dan flag & (1 << 2) memeriksa apakah bit itu aktif. Geser kiri << mengalikan nilai dengan pangkat dua, sedangkan geser kanan >> membaginya.

Operator Logika dan Ternary

Perbandingan dan Logika

Operator perbandingan menghasilkan nilai benar atau salah: == sama dengan, != tidak sama, <, >, <=, dan >=. Operator logika menggabungkan beberapa kondisi: && AND, || OR, dan ! negasi. Ingat perbedaan antara = untuk penugasan dan == untuk perbandingan — menukar keduanya adalah error klasik yang tidak selalu ditangkap compiler.

Operator Ternary

Operator ternary ?: adalah if-else singkat yang menghasilkan nilai. Bentuknya kondisi ? nilai_benar : nilai_salah:

Operator ternary
int usia = 20;
const char *status = usia >= 18 ? "dewasa" : "anak-anak";

Ekspresi usia >= 18 ? "dewasa" : "anak-anak" membaca: jika usia 18 ke atas, status berisi dewasa, jika tidak berisi anak-anak. Ternary baik untuk penugasan singkat, tetapi hindari menyusunnya bertingkat karena susah dibaca.

Statement Kondisi: if, if-else, switch

Percabangan dengan if

Statement if menjalankan blok hanya jika kondisi bernilai benar. Pasangkan dengan else untuk cabang alternatif, dan else if untuk rangkaian kondisi berurutan. Kondisi dapat disusun dari operator perbandingan dan logika.

Switch untuk Banyak Pilihan

Ketika membandingkan satu variabel dengan banyak nilai konstanta, switch lebih bersih daripada rangkaian if-else. Setiap cabang diakhiri break agar eksekusi tidak jatuh ke cabang berikutnya:

Switch statement
#include <stdio.h>
 
int main(void) {
    int nilai = 3;
    switch (nilai) {
        case 1:
            printf("satu\n");
            break;
        case 2:
            printf("dua\n");
            break;
        default:
            printf("lainnya\n");
            break;
    }
    return 0;
}

Blok switch (nilai) membandingkan nilai dengan setiap case. default menangani semua nilai yang tidak cocok. Melewatkan break menyebabkan perilaku jatuh ke bawah yang kadang disengaja, tetapi sering kali justru bug.

Loop: for, while, do-while

Ketiga Bentuk Loop

  • for: cocok ketika jumlah iterasi sudah diketahui sejak awal.
  • while: cocok ketika loop berjalan selama kondisi masih benar, misalnya membaca hingga akhir file.
  • do-while: menjalankan badan minimal satu kali, cocok untuk menu yang harus selalu tampil sekali.
Perbandingan ketiga loop
for (int i = 0; i < 5; i++) {
    printf("for %d\n", i);
}
 
int j = 0;
while (j < 5) {
    printf("while %d\n", j);
    j++;
}
 
int k = 0;
do {
    printf("do-while %d\n", k);
    k++;
} while (k < 5);

Ketiga bentuk di atas mencetak angka 0 sampai 4. Perhatikan variabel loop bisa dideklarasikan langsung di dalam for sejak standar C99.

Break, Continue, dan Return

break menghentikan loop atau switch paling dalam. continue melompat ke iterasi berikutnya tanpa keluar dari loop. return mengakhiri fungsi sepenuhnya, sekaligus membawa nilai balik. Pola kontrol ini penting untuk algoritma pencarian: break saat nilai ditemukan, continue untuk melewati nilai yang tidak relevan, dan return untuk keluar lebih awal dari fungsi.

Warning

Loop while dan do-while berisiko infinite loop jika kondisi tidak pernah berubah. Pastikan selalu ada langkah yang mengubah variabel kondisi di dalam badan loop, misalnya increment.

Penutup

Inti yang harus dibawa pulang:

  • Operator bitwise bekerja pada level bit dan penting untuk flag dan mask.
  • Jangan tertukar antara = penugasan dan == perbandingan.
  • Ternary ?: adalah if-else singkat untuk penugasan sederhana.
  • Gunakan switch untuk membandingkan banyak nilai konstanta.
  • for, while, dan do-while punya kegunaan masing-masing.
  • break menghentikan, continue melewati, dan return mengakhiri seluruhnya.

Di episode 5 selanjutnya kita akan membahas function dan modular programming — definisi fungsi, prototipe, dan scope variabel, parameter passing by value, header file dan translation unit, hingga recursion, inline function, dan function pointer sederhana.

Belajar C Language - Operator & Kontrol Alur | Belajar C Language