Lompat ke konten Lompat ke sidebar Lompat ke footer

Cara Kerja Preprosesor pada Bahasa C

Preprosesor adalah sistem perangkat lunak atau program komputer yang dirancang untuk menjalankan perangkat keras komputer dan aplikasi program. Preprosesor melakukan pemrosesan data mulai dari 'bahasa tingkat tinggi'. Pemrosesan data atau preprosesing adalah tahap awal dari sistem proses bahasa program. Sistem proses bahasa program menerjemahkan bahasa tingkat tinggi ke bahasa tingkat mesin atau kode mesin absolut supaya dapat dimengerti oleh mesin. Preprosesor tidak mengetahui aturan scope dari bahasa C. Preprosesor direktif seperti #define akan bekerja selama program diaktifkan hingga program berakhir, seperti diperlihatkan pada gambar 1.


3 Tugas Umum Cara Kerja Preprosesor pada Bahasa C
Ilustrasi Cara Kerja Prosesor Bahasa C


Sebelum memahami materi tentang Cara Kerja Preprosesor pada Bahasa C, terlebih dahulu pelajari materi tentang: Perbedaan stdio.h dan stdlib.h pada Bahasa C [klik]Mencetak Nama Variabel Bahasa C dan Fungsinya [klik], dan Konstanta Bahasa C dan Fungsinya [klik].

Sebuah preprosesor umumnya melakukan tiga tugas pada bahasa tingkat tinggi, yaitu:
  • satu, Menghapus kode baris komentar pada bahasa pemrograman: Preprosesor akan menghapus semua kode komentar yang terdapat dalam bahasa pemrograman yang telah dibuat sebelumnya. Sebuah komentar hanya ditulis untuk programmer untuk dapat memahami bahasa program yang dibuat oleh programmer tersebut. Sehingga, komentar tersebut akan dihapus karena mesin tidak memerlukan kode komentar pada saat program tersebut dijalankan. Preprosesor akan menghapus semua komentar yang tidak diperlukan ketika program telah dieksekusi. 

Gambar 1 Cara Kerja Preprosesor Bahasa C
Gambar 1 Cara Kerja Preprosesor Bahasa C

  • dua, File include: Prosesor akan mengambil semua library file yang dibutuhkan oleh program saat program tersebut dijalankan. Pada bahasa tingkat tinggi program yang dibuat diserakan juga kode #include yang merupakan suatu direktif preprosesor yang memberitahukan program atau kompilator untuk memasukkan konten dari library file secara spesifik. Contoh, #include akan membertahu preprosesor untuk memasukkan semua konten pustaka dari file stdio.h. Seperti contoh '#include "stdio.h" '.

catatan: Jika nama file ditutup dengan menggunakan simbol angle brackets, maka file yang dicari untuk standar kompilator juga menyertakan path-nya. Jika nama file ditutup dengan double quotes, maka path pencarian akan diperluas hingga termasuk sumber direktori saat ini.

  • tiga, Makro expansi: Makro dapat disebut juga sebagai fungsi kecil yang tidak akan overhead selama proses dijalankan terhadap kode program. Jika ingin membuat sebuah fungsi yang memiliki pendefinisian kecil yang sifatnya akan dipanggil secara rekursif, maka akan lebih baik jika menggunakan makro pada fungsi tersebut, sehingga pendefinisian makro tersebut dapat diselesaikan oleh preprosesor.

#define SI 1000, adalah contoh sederhana dari sebuah makro.

Terdapat dua tipe dari makro, yaitu: makro menyerpai objek, adalah makro yang tidak mengambil parameter dan makro yang menyerupai fungsi yang memerlukan parameter dalam penggunaannya.

// makro menyerupai objek
#define        

// makro menyerupai fungsi
#define ()  

Dapat juga dilakukan penghapusan definisi makro dengan menggunakan #undef:
// menghapus makro
# undef  

Dapat juga dibuat makro multibaris sama seperti sebuah fungsi, dimana setiap statement-nya diakhiri dengan tanda "\".
#include <stdio.h> 

#define MACRO(num, str) 
{\ 
printf("%d", num);\ 
printf(" adalah");\ 
printf(" %s angka", str);\ 
printf("\n");\ 
}

5 komentar untuk "Cara Kerja Preprosesor pada Bahasa C"

  1. Apa yang dimaksud dengan preprosesor dalam bahasa C?

    BalasHapus
    Balasan
    1. Preprosesor dalam bahasa C adalah preprosesor makro yang digunakan secara otomatis oleh kompilator bahasa C untuk mengubah program yang telah dibuat sebelum dilakukan proses kompilasi program. Prosesor disebut juga sebagai makro karena memungkinkan user untuk menentukan jenis makro yang akan digunakan yang merupakan singkata untuk konstruksi yang lebih panjang.

      Hapus
  2. Preprosesor bahasa C adalah makro preprosesor yang digunakan untuk bahasa pemrograman C, objective-C, dan C++. Preprosesor menyediakan kemampuan untuk memasukkan file header, perluasan makro, dan kontrol baris pada bahasa pemrograman tersebut.

    BalasHapus
  3. Pada awalnya, preprosesor bahasa C adalah program terpisah dari kompilator. Preprosesor juga tidak dimaksudkan untuk digunakan hanya untuk bahasa pemrograman C saja, programmer juga dapat menggunakannya untuk membuat berbagai hal seperti file konfigurasi yang dapat dibuat secara bersyarat atau juga dapat digunakan untuk menambahkan fungsionalitas ke kode FORTRAN ataupun semacamnya.

    Namun, secara bertahap penggunaan dari preprosesor tersebut mulai mengalami penyempitan dimana hanya digunakan untuk program yang berbasis bahasa C dan C++ saja, dan hanya untuk keperluan efisiensi dan kualitas pelaporan error pada saat kompilasi program, dan preprosesor pun kemudian digabungkan ke dalam kompilator bahasa C dan C++ itu sendiri.

    Komputer Linux masih memiliki progam yang disebut 'cpp' yang merupakan alat klasik yang digunakan dari pertengahan tahun 1970-an. Namun, program tersebut sudah tidak benar-benar digunakan lagi oleh kompilator bahasa C.

    Apa yang dilakukan oleh preprosesor sebenarnya sangat sederhana, preprosesor hanya melihat melalui kode sumber program dalam satu baris pada satu waktu (tidak seperti kompilator bahasa C dan C++ yang biasa memperlakukan baris baru sebagai spasi).

    Jika sebuah baris dimulai dengan spasi dan kemudian dengan tanda '#', maka preprosesor akan memperlakukan baris tersebut sebagai acuan atau arahan untuk melakukan suatu tindakan.

    Saat membaca file sumber, preprosesor (setidaknya secara konseptual) akan mengeluarkan file sumber baru dengan perintah '#' yang dihapus, dan menyertakan semua file perluasan, semua file dari #ifdef / #if / #else / #endif akan diproses, dan memberikan makro sesuai dengan kebutuhan program.

    File output yang dihasilkan kemudian akan dikirim ke kompilator bahasa C yang sebenarnya, dimana kompilator tidak perlu melihat atau mencari perintah '#' dan langsung dapat mengkompilasi setiap baris kode program yang telah dikirim tersebut.

    Catatan: dalam praktiknya, hal tersebut memang agak sedikit rumit untuk dilakukan.

    BalasHapus
  4. Preprosesor adalah sebuah pustaka informasi yang mendefinisikan dan menafsirkan kompilator, tentang apa yang akan dilakukan instruksi tertentu dalam suatu program.

    BalasHapus

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 -