Penjelasan Program C Pertama

Penjelasan Program C Pertama

Di pertemuan sebelumnya kita sudah memasang kompiler GCC dan membuat contoh paling sederhana yaitu hello world. Di pelajaran kali ini kita akan jelaskan contoh ini baris demi baris. Berikut adalah kode programnya:

#include <stdio.h>

int main()
{
    printf("hello, world\n");
    return 0;
}
Code language: Arduino (arduino)

Kodenya sangat sederhana, fungsinya hanya mencetak satu baris teks ke layar konsol.

Selanjutnya kita analisis setiap baris kode dari atas ke bawah.

1. #include <stdio.h>

Di pelajaran pertama kita sempat bahas singkat tentang preproses, baris pertama ini adalah perintah preproses. Bagaimana cara mengenalinya? Dari simbol #.

#: Penanda perintah preproses, dikirim ke preprosesor dan dieksekusi pada langkah pertama kompilasi.

include: Kata kunci untuk memuat file header, tugasnya menyalin seluruh kode dari file yang ditentukan ke dalam program saat ini.

<stdio.h>: File header standar input output (standard input output). Di dalamnya terdapat fungsi untuk mencetak teks ke layar dan membaca input dari keyboard, fungsi printf yang kita pakai di bawah didefinisikan di file ini.

Secara ketat, preproses bukan bagian dari sintaks bahasa C. Preproses C bukan komponen sintaks inti bahasa C, melainkan tahap terpisah yang dijalankan kompiler sebelum proses kompilasi utama. Preproses termasuk alur kompilasi secara keseluruhan, tapi tidak masuk ke sistem sintaks dan semantik asli bahasa C.

Sederhananya, ada program preproses terpisah yang melakukan penggantian teks. Pada tulisan #include <stdio.h>, seluruh isi file stdio.h akan disalin ke posisi baris ini dan menggantikan baris aslinya. Misalkan isi stdio.h hanya tulisan AAAAAAAAA.

Maka sebelum dikirim ke kompiler, kodenya akan menjadi seperti ini:

 AAAAAAAAA

int main()
{
    printf("hello, world\n");
    return 0;
}
Code language: Arduino (arduino)

Tentu saja ini hanya contoh hipotesis, isi file header yang asli jauh lebih rumit. Kalian yang penasaran bisa buka file tersebut untuk melihat isinya.

File header ini tersimpan di komputer masing-masing, lokasi path berbeda tiap sistem operasi:

Sistem Linux/Unix: Biasanya ada di /usr/include/stdio.h

Windows (Visual Studio): Di VC/include/stdio.h

macOS (Xcode): Di /Applications/Xcode.app/.../usr/include/stdio.h

Kalian bisa pakai alat pencarian file untuk mencari lokasi sebenarnya di perangkat kalian.

Sekarang kalian sudah paham dasar cara kerja preproses kan?

Jika baris #include <stdio.h> dihapus, kompiler tidak mengenali fungsi printf dan akan menampilkan error. Coba hapus baris ini lalu kompilasi pakai gcc untuk melihat hasilnya.

Setelah menghapus file header

Saat kompilasi ulang akan muncul pesan kesalahan

2. int main()

main = Fungsi titik masuk program bahasa C

  1. Saat menjalankan program C apapun, sistem operasi akan mulai eksekusi secara otomatis dari fungsi main. Satu program hanya boleh memiliki satu fungsi main saja.
  2. int: Tipe nilai yang dikembalikan fungsi, singkatan dari integer (bilangan bulat).
  3. (): Tanda bahwa ini adalah fungsi, di dalam kurung bisa ditulis parameter, kurung kosong berarti tidak menerima parameter apapun.

Sintaks main ini diwarisi oleh sebagian besar bahasa pemrograman setelahnya, ia satu-satunya titik awal program. Saat kamu klik dua kali file exe atau jalankan perintah di terminal (contohnya hello), sistem operasi akan memanggil fungsi main ini secara otomatis.

Tulisan int di awal adalah tipe kembalian fungsi. Nanti saat kita membuat fungsi sendiri, kita wajib tulis tipe ini, akan kita jelaskan detailnya di pelajaran selanjutnya.

Kurung bulat () untuk mendeklarasikan parameter yang diterima fungsi; di sini kosong jadi fungsi tidak menerima parameter. Ada juga versi yang menerima parameter seperti berikut:

int main(int argc, char *argv[])Code language: CSS (css)

Cara penulisan ini menerima dua parameter, satu tipe int dan satu array string, bagian ini akan kita bahas di pertemuan berikutnya.

Parameter fungsi main dikirim oleh sistem operasi, dari mana nilai-nilai ini berasal?

Kalian pasti pernah pakai perintah terminal seperti ping. Contohnya ping 12.36.4.xxx untuk cek koneksi jaringan: ping adalah program ping.exe, alamat IP 12.36.4.xxx adalah parameter yang dikirim ke fungsi main milik ping.exe.

Sama halnya dengan program hello kita, jika jalankan hello abc di terminal, abc akan dikirim sebagai parameter. Variabel di dalam kurung main berfungsi menerima nilai yang diketik pengguna dan diteruskan sistem operasi.

Ingat dulu intinya: main adalah satu-satunya titik masuk program, hanya boleh ada satu, dipanggil sistem operasi, argumen dari baris perintah dikirim ke main lewat sistem operasi.

3. { } Kurung kurawal

Membatasi batas isi fungsi: { menandai awal kode fungsi, } menandai akhir fungsi. Semua kode fungsi ditulis di antara dua kurung kurawal ini.

4. printf("hello, world\n");

  • printf: Singkatan dari print format, fungsi cetak berformat untuk menampilkan teks di konsol.
  • Tanda petik ganda " ": Membungkus konstanta string, teks yang ingin dicetak ditulis di dalamnya.
  • \n: Karakter escape, ganti baris: setelah teks dicetak, kursor otomatis pindah ke baris baru.
  • ;: Penanda akhir perintah di bahasa C. Setiap baris kode yang bisa dijalankan harus diakhiri titik koma, jika lupa akan muncul error kompilasi.

Huruf f di belakang nama fungsi berarti format (pemformatan), akan kita bahas mendalam nanti. Sekarang cukup pahami baris ini menampilkan teks hello, world\n ke konsol dan \n membuat ganti baris otomatis.

5. return 0;

  • return: Mengembalikan bilangan bulat ke fungsi main sekaligus menghentikan eksekusi fungsi saat ini. Kenapa harus pakai return? Karena kita sudah tulis tipe kembalian int pada main, sehingga di dalam fungsi wajib mengembalikan bilangan bulat.
  • 0: Kesepakatan umum yang berarti program selesai berjalan normal tanpa kesalahan, untuk memberi tahu sistem operasi status eksekusi program.
    • Mengembalikan 0 = Program berhasil dijalankan tanpa masalah
    • Mengembalikan angka selain 0 (contoh: return 1;) = Program berhenti karena ada kesalahan

Standar C modern memperbolehkan menghilangkan tulisan return 0; di akhir main, kompiler akan menambahkannya secara otomatis. Namun untuk pemula disarankan menulisnya secara eksplisit agar mengikuti aturan standar.

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *