Episode ini membangun fondasi sintaks C: deklarasi variabel dan tipe data dasar, struktur program lengkap dengan fungsi main, statement, blok kode, komentar, serta aturan pemformatan. Kalian juga akan menyusun, menjalankan, dan melakukan debugging sederhana.

Setelah memahami arsitektur di balik C, sekarang saatnya menulis kode yang benar-benar terkompilasi. Episode 3 membangun sintaks dasar: bagaimana sebuah program C disusun, bagaimana variabel dideklarasikan, dan bagaimana aturan pemformatan yang baik diterapkan.
Sintaks C terbilang ringkas dibanding bahasa modern. Hanya ada sedikit kata kunci, dan hampir semua fitur dibangun dari kombinasi tipe, fungsi, dan pointer. Kesederhanaan ini justru menuntut ketelitian: satu titik koma yang hilang bisa mengubah seluruh makna program.
Di akhir episode ini, kalian akan bisa menyusun program C utuh, mengompilasinya dengan bendera peringatan, menjalankannya, dan membaca pesan error dengan percaya diri.
Program C terkecil yang valid terdiri dari satu fungsi main. Eksekusi selalu dimulai dari fungsi ini. Perhatikan struktur berikut:
cat > struktur.c <<'EOF'
#include <stdio.h>
int main(void) {
printf("Struktur program C\n");
return 0;
}
EOF
gcc -Wall -Wextra struktur.c -o struktur
./strukturBaris pertama #include <stdio.h> memuat deklarasi fungsi input-output standar. Fungsi main mengembalikan int, dan nilai 0 menandakan program selesai dengan sukses. Nilai bukan nol menandakan ada error.
Fungsi main punya dua bentuk yang sah. Bentuk pertama int main(void) dipakai ketika program tidak membaca argumen. Bentuk kedua int main(int argc, char *argv[]) dipakai untuk membaca argumen baris perintah. Variabel argc berisi jumlah argumen, dan argv berisi array string yang menyimpan setiap argumen. Detail keduanya akan dibedah lebih dalam di episode 8.
C menyediakan tipe data dasar yang sudah dikenal banyak bahasa:
int: bilangan bulat, biasanya 4 byte.char: satu karakter atau satu byte.float dan double: bilangan pecahan._Bool: nilai benar atau salah, dipakai via bool dari <stdbool.h>.void: menandakan tidak ada nilai.Setiap variabel harus dideklarasikan dengan tipe sebelum dipakai. Ukuran tipe bisa sedikit berbeda antar platform, sehingga C menyediakan tipe dari <stdint.h> seperti int32_t dan uint64_t yang ukurannya dijamin.
Literal seperti 42, 3.14, dan 'A' adalah nilai mentah dalam kode. Kalian juga bisa mendefinisikan konstanta bernama dengan kata kunci const:
cat > variabel.c <<'EOF'
#include <stdio.h>
int main(void) {
const int umur = 25;
double tinggi = 1.75;
char inisial = 'A';
printf("Umur %d, tinggi %.2f, inisial %c\n", umur, tinggi, inisial);
return 0;
}
EOF
gcc -Wall -Wextra variabel.c -o variabel && ./variabelDeklarasi const int umur = 25 membuat nilai umur tidak bisa diubah setelah inisialisasi. Memakai const untuk nilai yang memang tidak berubah adalah kebiasaan yang disukai reviewer.
Setiap statement diakhiri dengan titik koma. Contoh statement: deklarasi variabel, pemanggilan fungsi, dan penugasan. Sekelompok statement yang diapit kurung kurawal disebut blok kode. Blok mendefinisikan scope: variabel yang dideklarasikan di dalam blok hanya hidup di dalam blok itu.
Komentar tidak dieksekusi oleh compiler dan berfungsi untuk menjelaskan maksud kode. C mendukung dua gaya: komentar satu baris dengan // dan komentar banyak baris dengan /* */. Tulis komentar yang menjelaskan mengapa sebuah keputusan diambil, bukan yang sekadar mengulang apa yang sudah terlihat dari kode.
Pemformatan C tidak diatur oleh bahasa, tetapi oleh kesepakatan komunitas. Gunakan indentasi 4 spasi per level, buka kurung kurawal di akhir baris yang sama dengan deklarasi, dan beri spasi di sekitar operator. Konsistensi lebih penting daripada gaya mana pun yang dipilih. Alat otomatis seperti clang-format bisa menyamakan gaya seluruh tim:
clang-format -i variabel.cPerintah clang-format -i variabel.c menulis ulang file dengan gaya default LLVM. Banyak project memakai file .clang-format di repositori untuk memaksakan satu gaya bersama.
Jangan pernah mengompilasi tanpa bendera peringatan. Kebiasaan sehat:
gcc -Wall -Wextra -pedantic -g variabel.c -o variabel
./variabel-pedantic memperingatkan pemakaian ekstensi di luar standar, dan -g menambahkan informasi debug. Kombinasi -Wall -Wextra -pedantic -g adalah standar yang dipakai project serius.
Compiler memberitahu lokasi error dalam format nama file, nomor baris, dan kolom. Misalnya variabel.c:7:5: error: expected ';'. Baca baris tersebut, cari penyebabnya, lalu perbaiki. Warning tidak menghentikan kompilasi, tetapi hampir selalu menandakan bug tersembunyi; perlakukan warning sebagai error dengan menambahkan -Werror.
Untuk debugging interaktif, jalankan program di bawah gdb dan telusuri baris per baris:
gdb -q ./variabelDi dalam gdb, ketik break main untuk berhenti di awal fungsi main, lalu next untuk menjalankan satu baris dan print umur untuk melihat nilai variabel. Sesi lengkap akan kita praktikkan di episode 11.
Inti yang harus dibawa pulang:
Di episode 4 selanjutnya kita akan membahas operator dan kontrol alur — operator aritmatika, bitwise, logika, dan ternary, statement kondisi if, if-else, dan switch, loop for, while, dan do-while, serta break, continue, return, dan pola kontrol loop.