Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Kompilasi Program Bahasa C dan Fungsinya

Bahasa C adalah bahasa pemrograman tingkat tinggi dan membutuhkan kompilator untuk mengkonversi bahasa program tersebut hingga menjadi kode yang dapat dieksekusi sehingga program dapat dijalankan pada komputer.


Sebelum mempelajari materi tentang Cara Kompilasi Program Bahasa C dan Fungsinya, terlebih dahulu pelajari materi tentang: Penggunaan Void Main Bahasa C dan Fungsinya, Perbedaan int main() dan int main(void) Bahasa C, dan Makro dan Preprocessor Bahasa C Beserta Fungsinya.

Cara Melakukan Kompilasi Program dalam Bahasa C

Berikut adalah tahapan yang digunakan pada Ubuntu dengan kompilator gcc:
  • Ciptakan program bahasa C dengan menggunakan teks editor kemudian simpan dengan nama filename.c. 
    • $ vi filename.c
  • Lakukan kompilasi program dengan menggunakan perintah berikut.
    • $ gcc -wall filename.c -o filename
  • Pilihan -Wall memungkinkan semua pesan warning pada kompilator. Bentuk pilihan ini sangat direkomendasikan untuk menghasilkan program yang baik. Pilihan -o digunakan untuk menentukan output nama file. Jika option ini digunakan, maka output file dengan nama a.out akan di-generate.
  • Setelah eksekusi kompilasi program di-generate, selanjutnya program eksekusi dijalankan dengan menggunakan perintah berikut ini.
    • $ ./filename

Setelah Kompilasi Program

Kompilator mengkonversi program dalam bahasa C menjadi program yang dapat dieksekusi. Terdapat empat fase untuk program bahasa C yang dapat menjadi program eksekusi:
  • Preprocessing,
  • Compilation,
  • Assembly,
  • Linking

Baca Juga:

Dengan mengeksekusi perintah berikut, didapatkan segala intermediate file pada direktori saat ini bersamaan dengan program eksekusi.

$gcc -wall -save -temp filename.c -o filename

Perhatikan satu-persatu dari rincian file yang dihasilkan dari proses kompilasi program:
  • Preprocessing; pada fase pertama semua kode program akan dilewatkan. Pada fase ini terjadi beberapa tahapan: Penghapusan komentar > Perluasan dari macro > Perluasan dari file include > Kondisional kompilasi. Kemudian preprosessing output hasilnya akan disimpan pada filename.i. Sumber file memiliki banyak sekali info, tetapi pada akhir, kode program yang telah dibuat tersebut juga telah disimpan.
  • Kompilasi program; fase selanjutnya adalah melakukan kompilasi program filename.i. Output kompilasi intermediet file dari file filename.s. File merupakan suatu assembly pada tingkat perintah.
  • Assembly; pada fase ini filename.s diambil sebagai input untuk dijadikan filename.o oleh assemblerFile yang dihasilkan mengandung instruksi perintah pada level mesin. Pada fase ini, hanya kode yang terdapat dalam file yang dikonversi menjadi bahasa mesin, fungsi pemanggilan seperti printf() tidak akan dieksekusi lagi.
  • Linking; Fase terakhir yang dilakukan adalah menghubungkan semua fungsi yang dipanggil dengan definisinya masing-masing. Linker dapat mengetahui segala fungsi yang diimplementasikan. Linker melakukan beberapa kerja ekstra, seperti penambahan beberapa kode tambahan pada program yang dibutuhkan ketika program dimulai dan diakhiri. Contohnya, terdapat kode program yang dibutuhkan untuk pengaturan lingkungan seperti perintah melewatkan baris argumen. Tugas ini dapat dengan mudah diverifikasi dengan menggunakan $size filename dan $size filename.o. Sepanjang pemakaian perintah tersebut diketahui bagaimana file output meningkat dari object file menjadi file eksekusi. Hal ini dikarenakan kode tambahan yang diberikan linker terhadap program.

Catatan: 
  • Bahwa gcc secara otomatis melakukan linking dinamis, sehingga printf() secara dinamis dihubungkan pada program.
  • Pastikan tidak ada kesalahan sintaks atau logika dalam kode sumber C sebelum melakukan kompilasi.
  • Perbarui kompilator ke versi terbaru untuk mendukung fitur dan perbaikan terbaru.
  • Untuk proyek yang lebih kompleks, mungkin diperlukan manajemen proyek yang lebih canggih menggunakan build systems seperti Make atau CMake.

Dengan mengikuti langkah-langkah tersebut, pengembang dapat mengompilasi dan menjalankan program Bahasa C dengan mudah. Proses ini merupakan langkah awal dalam mengembangkan aplikasi C yang lebih kompleks dan efisien.

Kompilasi program Bahasa C adalah tahap penting dalam pengembangan perangkat lunak yang memberikan sejumlah kelebihan, termasuk efisiensi, kinerja tinggi, dan kontrol langsung terhadap perangkat keras. Artikel ini akan menjelaskan beberapa kelebihan utama dari proses kompilasi program Bahasa C:
  • Performa dan Kinerja Tinggi: Kompilasi program C menghasilkan kode mesin langsung yang dioptimalkan untuk arsitektur perangkat keras tertentu. Hal ini menghasilkan program yang berjalan lebih cepat dan memerlukan sumber daya yang lebih sedikit dibandingkan dengan interpretasi atau eksekusi langsung kode sumber.
  • Optimasi Kode: Kompilator C melakukan berbagai optimasi pada kode sumber selama proses kompilasi. Ini termasuk penghilangan kode yang tidak perlu, pengurangan overhead, dan peningkatan efisiensi eksekusi. Optimasi ini membantu menciptakan program yang lebih efisien secara kinerja.
  • Portabilitas dan Ketergantungan Platform: Kode mesin yang dihasilkan oleh kompilator C umumnya bersifat portabel dan dapat dijalankan di berbagai platform tanpa perlu modifikasi. Meskipun perlu perhatian khusus terhadap fitur-fitur platform tertentu, kompilasi memberikan tingkat portabilitas yang tinggi.
  • Error Checking Statis: Kompilator C melakukan pemeriksaan kesalahan statis saat kompilasi. Hal ini memungkinkan deteksi dini terhadap kesalahan sintaks dan logika sebelum program dijalankan. Proses ini membantu menghindari sejumlah kesalahan umum yang dapat muncul saat eksekusi program.
  • Keamanan: Kompilasi C dapat memberikan tingkat keamanan yang lebih tinggi karena kode mesin yang dihasilkan tidak tersedia untuk dilihat secara langsung oleh pengguna akhir. Ini membantu melindungi algoritma dan struktur data dari eksploitasi yang tidak sah.
  • Kontrol Langsung terhadap Perangkat Keras: Bahasa C memberikan kontrol tingkat rendah yang lebih tinggi terhadap perangkat keras, memungkinkan pengembang untuk menulis kode yang dioptimalkan secara khusus untuk arsitektur target. Ini penting untuk aplikasi yang membutuhkan kinerja maksimal.
  • Dukungan untuk Pembangunan Sistem yang Efisien: Kompilator C mendukung pembangunan sistem operasi dan perangkat lunak sistem lainnya dengan tingkat efisiensi yang tinggi. Hal ini membuat Bahasa C menjadi pilihan yang populer untuk pengembangan sistem tertanam dan aplikasi yang membutuhkan interaksi langsung dengan perangkat keras.

Kompilasi program Bahasa C memberikan sejumlah kelebihan, namun, seperti setiap metode pengembangan, juga memiliki kekurangan dan keterbatasan tertentu. Artikel ini akan membahas beberapa kekurangan yang dapat dihadapi saat melakukan kompilasi program Bahasa C:
  • Memerlukan Langkah Tambahan: Proses kompilasi melibatkan langkah tambahan dalam siklus pengembangan perangkat lunak. Setiap kali ada perubahan dalam kode sumber, perlu dilakukan langkah kompilasi kembali sebelum program dapat dijalankan. Hal ini dapat menambah waktu pengembangan, terutama dalam proyek besar.
  • Keterbatasan dalam Keterbacaan Kode: Kode mesin yang dihasilkan oleh kompilatorC bersifat sulit dibaca oleh manusia. Ini dapat menyulitkan pengembang dalam melakukan debugging, pemeliharaan, atau memahami secara langsung alur logika program.
  • Kesulitan dalam Pembuatan Prototipe Cepat: Jika tujuan pengembangan adalah pembuatan prototipe cepat atau eksplorasi ide, proses kompilasi dapat menjadi hambatan. Bahasa dengan interpretasi langsung, seperti Python, dapat lebih cocok untuk tujuan ini.
  • Ketergantungan pada Kompilator dan Platform: Kompilasi memperkenalkan ketergantungan pada kompilator dan platform tertentu. Berbagai kompilator dan sistem operasi mungkin menghasilkan hasil yang berbeda-beda, dan program yang dikompilasi mungkin tidak selalu portabel tanpa penyesuaian.
  • Proses Pembuatan dan Kompilasi yang Kompleks: Proyek-proyek besar mungkin melibatkan banyak file sumber dan konfigurasi build yang kompleks. Ini dapat membuat proses pembuatan dan kompilasi menjadi rumit dan memerlukan manajemen yang cermat.
  • Kesalahan Runtime dan Debugging yang Tidak Terduga: Beberapa kesalahan mungkin hanya muncul saat runtime, dan debugging dapat menjadi lebih sulit karena hubungan antara kode sumber dan kode mesin yang dihasilkan.
  • Performa yang Tidak Konsisten pada Berbagai Platform: Meskipun Bahasa C pada umumnya dikenal karena performanya yang tinggi, performa tidak selalu konsisten di berbagai platform. Optimasi dan tingkat dukungan perangkat keras dapat bervariasi.

Meskipun kompilasi program Bahasa C memiliki kekurangan tertentu, banyak dari kekurangan ini dapat dikelola atau dikompensasi dengan pemilihan alat dan praktik pengembangan yang tepat. Pilihan antara interpretasi dan kompilasi harus didasarkan pada kebutuhan dan karakteristik spesifik dari proyek pengembangan perangkat lunak yang sedang dihadapi.

Kesimpulan:

Kompilasi program Bahasa C menawarkan sejumlah kelebihan yang krusial dalam pengembangan perangkat lunak, termasuk kinerja tinggi, optimasi kode, dan kontrol langsung terhadap perangkat keras. Meskipun mungkin membutuhkan langkah tambahan dalam proses pengembangan, keuntungan ini menjadikan Bahasa C sebagai pilihan yang kuat untuk pengembangan aplikasi yang memerlukan performa dan efisiensi yang tinggi.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Rinaldi Octavalino, Risma Widiyanti, Salma Ferizha Bulan Effendi, Siti Aisyah, dan Sri Handayani.

5 komentar untuk "Cara Kompilasi Program Bahasa C dan Fungsinya"

  1. Apa yang dimaksud dengan kompilasi program pada bahasa pemrograman?

    BalasHapus
    Balasan
    1. Kompilasi adalah proses mengubah kode sumber menjadi kode objek. Pada proses kompilasi bahasa C terjadi pengubahan kode sumber yang diambil sebagai input ke dalam kode objek atau kode mesin. Proses kompilasi program dapat dibagi menjadi empat tahapan, yaitu pra pemrosesan, kompilasi, perakitan, dan penautan atau linking.

      Hapus
  2. Kompilasi merupakan proses transformasi dari kode sumber program yang dapat dibaca oleh manusia, menjadi kode mesin yang hanya dapat dibaca oleh komputer. Kompilator mengambil kode sumber untuk dibuat ke dalam program baru dalam bahasa tingkat tinggi dan kemudian mengubah kode tersebut menjadi bahasa baru yang hanya dapat dipahami oleh mesin itu sendiri.

    BalasHapus
  3. Kenapa bahasa c disebut dengan bahasa kompilator?

    BalasHapus
    Balasan
    1. Karena bahasa C merupakan bahasa pemrograman yang dapat dikompilasi oleh mesin atau komputer. Dimana ketika seorang programmer menulis kode program dalam bahasa C, maka kompilator C dapat mengubah kode program yang telah dibuat tersebut menjadi dapat dieksekusi oleh mesin sehingga mesin atau komputer dapat memahami dan menjalankan program tersebut.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -