Penyiapan Lingkungan

Instalasi gcc dan editor teks, kompilasi pertama dari terminal, serta catatan khusus Windows, Linux, dan macOS.

Daftar isi

Topik ini menyiapkan lingkungan pengembangan C pada komputer, mencakup instalasi kompilator, pemilihan editor teks, dan kompilasi pertama dari terminal. Setiap langkah pemasangan disertai perintah untuk Linux, macOS, dan Windows. Pembahasan ditutup dengan cara membaca peringatan kompilator, kebiasaan yang sebaiknya dibentuk sejak baris kode pertama.

Tiga komponen yang diperlukan#

Menulis program C memerlukan tiga alat yang masing-masing punya peran berbeda. Kompilator menerjemahkan kode sumber menjadi kode mesin, editor teks dipakai untuk menulis dan menyunting kode, sedangkan terminal menjadi tempat mengetik perintah kompilasi dan menjalankan programnya. Ringkasannya ada pada tabel berikut.

KomponenPeranContoh
KompilatorMenerjemahkan kode sumber menjadi kode mesingcc, clang
Editor teksMenulis dan menyunting kode sumberVS Code dan editor teks lainnya
TerminalMengetik perintah kompilasi dan menjalankan programbash, zsh, PowerShell

Ketiga peran itu kadang digabungkan dalam satu aplikasi yang disebut IDE (integrated development environment). Jalur ini tetap memakai kombinasi editor teks dan terminal agar setiap langkah, mulai dari menyimpan berkas hingga menjalankan program, terlihat sebagai perintah yang jelas. Kebiasaan ini membuat sumber masalah mudah ditemukan, karena pesan yang muncul selalu berasal dari alat yang sedang dipakai. Kompilator yang dipakai sebagai contoh sepanjang jalur ini adalah gcc, sedangkan clang dapat menggantikannya untuk hampir semua contoh karena opsi baris perintahnya serupa.

Instalasi kompilator#

Paket kompilator berbeda nama pada setiap sistem operasi, tetapi hasilnya sama, yaitu perintah gcc dapat dipanggil dari terminal. Ikuti subbagian yang sesuai dengan sistem operasi, lalu lanjutkan ke pemeriksaan hasil instalasi di bagian berikutnya.

Linux#

Pada distribusi Debian dan Ubuntu, paket build-essential memuat gcc, make, dan header pustaka standar yang dibutuhkan kompilasi. Perintah instalasinya memerlukan akses administrator, sehingga dijalankan dengan sudo pada komputer masing-masing.

bash
# tidak-dijalankan (instalasi memerlukan akses root dan jaringan pada komputer pembaca)
sudo apt update
sudo apt install build-essential

Pada Fedora, paketnya dipasang dengan sudo dnf install gcc, sedangkan pada distribusi berbasis Arch perintahnya sudo pacman -S gcc. Nama paketnya boleh berbeda, tetapi yang diperiksa selanjutnya selalu sama, yaitu perintah gcc dapat dipanggil.

Windows#

Cara yang paling dekat dengan pengalaman Linux adalah MSYS2, yaitu lingkungan berisi alat-alat build untuk Windows. Pasang MSYS2 dari situs resminya, buka shell UCRT64, lalu perbarui dan pasang gcc dengan pacman.

bash
# tidak-dijalankan (perintah pacman berjalan pada shell MSYS2 di komputer pembaca)
pacman -Syu
pacman -S mingw-w64-ucrt-x86_64-gcc

Setelah terpasang, direktori berisi gcc.exe perlu masuk ke variabel lingkungan PATH agar perintah gcc dikenali dari terminal mana pun, dan panduan di situs MSYS2 menunjukkan langkahnya. Alternatifnya adalah WSL (Windows Subsystem for Linux), yaitu lingkungan Linux di dalam Windows, sehingga langkah pada subbagian Linux di atas dapat dipakai apa adanya.

macOS#

macOS membawa clang, kompilator dari proyek LLVM, melalui Xcode Command Line Tools. Instalasinya satu perintah dari terminal, lalu dialog pemasangannya menyusul secara grafis.

bash
# tidak-dijalankan (perintah ini dijalankan pada terminal macOS pembaca)
xcode-select --install

Pada macOS, perintah gcc sebenarnya mengarah ke clang. Perbedaan ini tidak mengganggu contoh pada jalur ini karena opsi yang dipakai sama, dan seluruh keluaran contoh tetap dapat direproduksi.

Memeriksa hasil instalasi#

Pemeriksaan dilakukan dengan satu perintah yang menampilkan versi kompilator. Perintah ini pula yang pertama diminta ketika mencari bantuan tentang kompilasi, karena perilaku gcc bergantung pada versinya. Jalankan perintah berikut di terminal.

bash
# periksa versi kompilator yang terpasang
gcc --version
text Keluaran
gcc (Debian 14.2.0-19) 14.2.0
Copyright (C) 2024 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Baris pertama memuat nomor versi, pada contoh ini 14.2.0. Nomor di komputer lain tidak harus sama, dan selama cukup baru, seluruh contoh pada jalur ini tetap berjalan. Apabila yang muncul justru pesan command not found pada Linux atau macOS, atau pesan is not recognized pada Windows, kompilator belum terpasang atau belum masuk PATH. Bila itu terjadi, langkah pemasangan perlu diulang.

Nomor 14.2.0 terbagi atas tiga bagian, yaitu nomor utama, nomor minor, dan nomor perbaikan. Tiga angka itu biasanya cukup untuk membandingkan dua pemasangan. Pada sistem yang memakai clang, perintah clang --version menampilkan informasi serupa, sedangkan pada macOS perintah gcc --version justru melaporkan dirinya sebagai Apple clang. Catat pula nomor versi ini ketika melaporkan kendala, karena pesan error sering bergantung pada versi kompilator yang dipakai.

Editor teks#

Editor teks menampung kode sumber, sedangkan kompilasi tetap dikerjakan gcc dari terminal. VS Code dipakai sebagai contoh karena gratis, lintas platform, dan punya dukungan C yang matang. Prosedurnya sebagai berikut.

  1. unduh VS Code dari code.visualstudio.com, lalu pasang sesuai sistem operasi
  2. buka panel Extensions, cari “C/C++”, kemudian pasang ekstensi terbitan Microsoft
  3. buka folder proyek melalui menu File, Open Folder agar berkas-berkas C mudah dikelola

Ekstensi tersebut memberi pewarnaan sintaks, pelengkapan kode, dan pesan peringatan langsung di editor, sedangkan alternatif ringannya adalah ekstensi clangd. Editor lain seperti Vim atau nano sama sahnya untuk semua contoh pada jalur ini karena tidak ada langkah yang bergantung pada editor tertentu. Yang perlu diingat, editor tidak ikut mengompilasi apa pun, sehingga pesan error dan peringatan yang paling lengkap selalu datang dari gcc di terminal. Satu kebiasaan kecil perlu dijaga di sini, yaitu menyimpan berkas sebelum mengompilasi. gcc membaca isi berkas di disk, bukan isi yang masih menggantung di jendela editor.

Kompilasi pertama dari terminal#

Uji lingkungan memakai program kecil yang mencetak dua baris, cukup untuk membuktikan bahwa kompilator, editor, dan terminal bekerja sebagai satu rangkaian. Buat direktori kerja, misalnya belajar-c, lalu simpan berkas berikut sebagai uji-lingkungan.c di dalamnya. Setelah dikompilasi dan dijalankan, program mencetak keluaran di bawahnya.

c uji-lingkungan.c
#include <stdio.h>

int main(void) {
    printf("Lingkungan C siap dipakai.\n");
    printf("Uji hitung: 7 * 6 = %d\n", 7 * 6);
    return 0;
}
text Keluaran
Lingkungan C siap dipakai.
Uji hitung: 7 * 6 = 42

Arahkan terminal ke direktori tersebut dengan perintah cd ~/belajar-c, lalu kompilasi dengan perintah berikut.

bash
# kompilasi dengan peringatan diaktifkan
gcc -Wall -Wextra uji-lingkungan.c -o uji-lingkungan

Opsi -o uji-lingkungan menentukan nama berkas programnya, sedangkan opsi -Wall dan -Wextra memerintahkan gcc menyampaikan semua peringatan. Kompilasi yang berhasil tidak menampilkan apa pun, sehingga prompt kembali tanpa pesan. Program bernama uji-lingkungan kini tersedia di direktori yang sama dan dijalankan dengan mengetik ./uji-lingkungan. Keluarannya persis seperti blok Keluaran di atas.

Tanda ~ pada cd ~/belajar-c berarti direktori rumah pengguna, sehingga perintah itu berlaku apa pun nama penggunanya. Untuk memastikan hasil kompilasi, jalankan ls dan cari berkas baru bernama uji-lingkungan tanpa akhiran pada Linux dan macOS, atau dengan akhiran .exe pada Windows. Bila berkas itu tidak ada, kompilasi gagal di tengah jalan, dan pesan terakhir dari gcc adalah petunjuk utamanya.

Membaca peringatan kompilator#

Peringatan (warning) dan error berbeda dampaknya. Error menggagalkan kompilasi sehingga tidak ada program yang dihasilkan. Peringatan tidak menggagalkan kompilasi, tetapi program tetap dibuat dengan catatan yang layak diperiksa. Contohnya variabel yang dideklarasikan tetapi tidak pernah dipakai. Simpan berkas berikut sebagai uji-peringatan.c.

c uji-peringatan.c
#include <stdio.h>

int main(void) {
    int sisa = 0;
    printf("Program berjalan tanpa memakai nilai sisa.\n");
    return 0;
}
text Keluaran
Program berjalan tanpa memakai nilai sisa.

Tanpa opsi tambahan, gcc diam tentang variabel itu dan program tetap berjalan. Peringatan baru muncul ketika kompilasi diulang dengan -Wall -Wextra, sebagaimana transkrip berikut.

bash
# kompilasi ulang dengan peringatan diaktifkan, lalu jalankan programnya
gcc -Wall -Wextra uji-peringatan.c -o uji-peringatan
./uji-peringatan
text Keluaran
uji-peringatan.c: In function ‘main’:
uji-peringatan.c:4:9: warning: unused variable ‘sisa’ [-Wunused-variable]
    4 |     int sisa = 0;
      |         ^~~~
Program berjalan tanpa memakai nilai sisa.

Bagian uji-peringatan.c:4:9 menunjuk berkas, baris 4, dan kolom 9, sedangkan [-Wunused-variable] adalah nama jenis peringatannya. Dua baris berikutnya mengutip baris kode yang dikeluhkan. Programnya tetap berjalan dan mencetak baris terakhir, yang membuktikan peringatan tidak menghentikan apa pun. Saat membaca transkrip seperti ini, biasakan memulai dari peringatan yang paling atas, karena peringatan beruntun sering hanyalah akibat dari peringatan pertama. Karena itu, -Wall -Wextra dipakai pada seluruh contoh kompilasi di jalur ini, dan setiap peringatan yang muncul diperlakukan sebagai pekerjaan rumah yang harus selesai sebelum kode dianggap rampung.

Perbedaan Windows, Linux, dan macOS#

Kerja sehari-hari ketiga sistem operasi itu nyaris sama, tetapi ada beberapa perbedaan yang sering mengejutkan, sebagaimana dirangkum tabel berikut.

AspekLinuxmacOSWindows
Kompilator utamagccclang, perintah gcc mengarah ke clanggcc dari MSYS2 atau WSL
Nama program hasiluji-lingkunganuji-lingkunganuji-lingkungan.exe
Perintah menjalankan./uji-lingkungan./uji-lingkungan.\uji-lingkungan.exe
Terminal lazimbash atau zshzshPowerShell

Akhiran .exe pada Windows hanyalah konvensi penamaan berkas program, sedangkan perintah menjalankannya memakai awalan .\ karena PowerShell menuntut penanda jalur yang jelas. Pada bash dan zsh, awalan ./ wajib untuk alasan serupa, yaitu direktori saat ini memang tidak dicari ketika shell mencari program. macOS memakai zsh sebagai shell bawaannya sejak versi Catalina, sedangkan sebagian besar distribusi Linux memakai bash. Di dalam WSL, segala sesuatunya diperlakukan sebagai Linux, termasuk perintah menjalankan programnya. Yang tidak berubah sama sekali adalah kode sumbernya, sehingga berkas .c yang sama dipakai di ketiga sistem tanpa penyuntingan. Perbedaan lain bersifat kosmetik dan tidak mengubah isi kode C yang ditulis.

Kesalahan umum#

Pesan gcc: command not found atau padanan Windows-nya, is not recognized, berarti terminal tidak menemukan kompilator. Penyebabnya dua kemungkinan, yaitu paket belum terpasang atau direktorinya belum masuk PATH. Selesaikan langkah instalasi, buka ulang terminal agar PATH dibaca kembali, lalu periksa lagi dengan gcc --version.

Pesan ./uji-lingkungan: No such file or directory muncul ketika berkas programnya tidak ada. Penyebab yang paling sering adalah kompilasi yang gagal sebelumnya, sehingga opsi -o tidak pernah menghasilkan berkas. Kemungkinan lain, nama pada -o berbeda dari nama yang dijalankan. Baca pesan terakhir dari gcc, perbaiki penyebabnya, lalu kompilasi ulang.

Kesalahan ketiga adalah mengetik uji-lingkungan tanpa awalan ./ pada Linux atau macOS. Shell mencari program itu di PATH, tidak menemukannya, lalu melaporkan command not found meski berkasnya ada di direktori saat ini. Gunakan ./uji-lingkungan karena direktori saat ini memang tidak termasuk tempat pencarian shell. Aturan yang sama berlaku pada skrip shell, sehingga kebiasaan mengetik awalan ./ ini berguna di luar C sekalipun.

Ringkasan#

  • Lingkungan C terdiri atas kompilator, editor teks, dan terminal, sedangkan IDE hanyalah cara menggabungkan ketiganya.
  • gcc dipasang lewat build-essential pada Debian dan Ubuntu, pacman pada MSYS2 di Windows, dan Xcode Command Line Tools pada macOS.
  • Perintah gcc -Wall -Wextra uji-lingkungan.c -o uji-lingkungan mengompilasi sekaligus mengaktifkan peringatan, dan programnya dijalankan dengan ./uji-lingkungan.
  • Peringatan tidak menggagalkan kompilasi tetapi wajib dibaca, sedangkan error menggagalkan dan tidak menghasilkan program.

Referensi#