Assalamu'alaikum poinreaders,
Pada kesempatan kali ini kita akan belajar materi mengenai Bahasa C, yaitu tentang preprocessor pada bahasa pemrograman C. Oke langsung saja simak ulasan berikut...
Pada kesempatan kali ini kita akan belajar materi mengenai Bahasa C, yaitu tentang preprocessor pada bahasa pemrograman C. Oke langsung saja simak ulasan berikut...
Preprocessor bukanlah bagian dari sebuah compiler, tetapi merupakan sebuah proses yang dilakukan sebelum program di kompilasi oleh compiler. Semua perintah preprocessor diawali dengan simbol hash (#). Perintah-perintah pada preprocessor terbagi menjadi beberapa bagian, diantaranya yaitu:
1. #include
#include digunakan untuk memberitahu preprocessor untuk menyisipkan isi file lain ke kode program kita pada titik tertentu.
Format Penulisan:
Format Penulisan:
#include "nama_file"
atau
#include <nama_file>
Ket:
Jika nama_file di dalam tanda <> maka preprocessor akan mencari direktori yang telah ditentukan untuk mencari nama_file tersebut. Sedangkan jika nama_file di dalam tanda " " maka preprocessor akan mencari nama_file di direktori yang sama dengan file kode program kita.
Contoh Penulisan :
#include <stdio.h>
int main()
{
printf("www.pointopoin.com");
getch();
return 0;
}
Output :
Gambar 1. Preprocessor #include
2. #define
#define digunakan untuk mendefinisikan sebuah makro pada kode program kita. Makro memiliki arti yang sama dengan fungsi, namun dari segi waktu, makro diproses lebih cepat dan dari cara penulisannya pun juga lebih sederhana dari pada fungsi. Pada umumnya nilai konstanta pada makro yang telah didefinisikan hanya dapat bernilai angka, string atau sebuah ekspresi. Makro yang didefinisikan bukanlah sebuah variabel dan juga tidak dapat diubah oleh kode program seperti halnya merubah sebuah variabel biasa.
Format Penulisan:
Format Penulisan:
#define nama_makro nilai_konstanta
Contoh Penulisan :
#include <stdio.h>
#define alamat_web "www.pointopoin.com"
int main()
{
printf("Alamat website pointopoin : %s", alamat_web);
getch();
return 0;
}
Output :
Gambar 2. Preprocessor #define
3. #undef
#undef digunakan untuk memberitahu preprocessor untuk menghapus semua makro tertentu yang telah didefinisikan. Sebuah makro dapat didefinisikan ulang setelah makro tersebut dihapus oleh #undef.
Format Penulisan:
Format Penulisan:
#undef nama_makro
Contoh Penulisan :
#include <stdio.h>
#define alamat_web "www.pointopoin.com"
#undef alamat_web
int main()
{
#ifdef alamat_web
printf("Alamat website pointopoin : %s\n", alamat_web);
#endif
printf("Terimakasih!");
getch();
return 0;
}
Output:
Gambar 3. Preprocessor #undef
4. #if
#if digunakan untuk menentukan apakah kode berikutnya harus disertakan dalam proses kompilasi atau tidak.
Format Penulisan:
Format Penulisan:
#if ekspresi_konstanta
Contoh Penulisan :
#include <stdio.h>
#define alamat_web 1
int main()
{
#if alamat_web
printf("Alamat website pointopoin : www.pointopoin.com\n");
#endif
printf("Terimakasih!");
getch();
return 0;
}
Output :
Gambar 4. Preprocessor #if
5. #ifdef
#ifdef digunakan untuk menentukan apakah makro yang tersedia ada sebelum kode berikutnya dimasukan kedalam proses kompilasi.
Format Penulisan:
Format Penulisan:
#ifdef nama_makro
Contoh Penulisan :
#include <stdio.h>
#define alamat_web "www.pointopoin.com"
int main()
{
#ifdef alamat_web
printf("Alamat website pointopoin : %s\n", alamat_web);
#endif
printf("Terimakasih!");
getch();
return 0;
}
Output :
Gambar 5. Preprocessor #ifdef
6. #ifndef
#ifndef digunakan untuk menentukan apakah makro yang tersedia tidak ada sebelum kode berikutnya dimasukan ke dalam proses kompilasi.
Format Penulisan:
#ifndef nama_makro
Contoh Penulisan :
Format Penulisan:
#ifndef nama_makro
Contoh Penulisan :
#include <stdio.h>
#define alamat_web "www.pointopoin.com"
#ifndef alamat_web
#define alamat_web 1
#endif
int main()
{
printf("Alamat website pointopoin : %s\n", alamat_web);
getch();
return 0;
}
Output :
Gambar 6. Preprocessor #ifndef
7. #else
#else memberikan tindakan alternatif pada kondisi #if, #ifdef, atau #ifndef. Kode program akan disertakan setelah pernyataan else ketika kondisi #if, #ifdef, atau #ifndef bernilai false.
Format Penulisan:
Format Penulisan:
#else
Contoh Penulisan :
#include <stdio.h>
#define nilai 90
int main()
{
#if nilai < 60
printf("Tidak Lulus.\n");
#else
printf("Lulus dengan nilai %d", nilai);
#endif
getch();
return 0;
}
Output :
Gambar 7. Preprocessor #else
8. #elif
#elif menyediakan suatu tindakan alternatif pada kondisi #if, #ifdef, atau #ifndef. Kode program akan disertakan setelah pernyataan #elif ketika kondisi sebelumnya #if, #ifdef atau #ifndef bernilai false dan kondisi #elif bernilai true. Kondisi #elif merupakan penyederhanaan dari kondisi #else if.
Format Penulisan:
Format Penulisan:
#elif ekspresi_konstanta
Contoh Penulisan :
#include <stdio.h>
#define nilai 90
int main()
{
#if nilai >= 60
printf("Lulus");
#elif nilai < 60
printf("Tidak Lulus");
#endif
getch();
return 0;
}
Output :
Gambar 8. Preprocessor #elif
9. #endif
#endif digunakan untuk menutup kondisi #if, #ifdef, atau #ifndef.
Format Penulisan:
Format Penulisan:
#endif
Contoh Penulisan :
#include <stdio.h>
#define alamat_web "www.pointopoin.com"
int main()
{
#ifdef alamat_web
printf("Alamat website pointopoin : %s\n", alamat_web);
#endif
printf("Terimakasih!");
getch();
return 0;
}
Output :
Gambar 9. Preprocessor #endif
10. #error
#error menyebabkan proses kompilasi berhenti di lokasi di mana perintah #error ditemui. Jika dijumpai #error, maka pesan error akan keluar sebelum proses kompilasi berhenti.
Format Penulisan:
Format Penulisan:
#error pesan
Contoh Penulisan :
#include <stdio.h>
#include <limits.h>
#define nilai 50
int main()
{
#if nilai <= 60
#error Maaf anda tidak lulus ujian
#endif
printf("Selamat, Anda Lulus Ujian");
getch();
return 0;
}
Output :
Gambar 10. Preprocessor #error
11. #line
#line digunakan untuk mengubah isi dari _LINE_ dan _FILE_ yang telah ditentukan pada compiler.
Format Penulisan:
Format Penulisan:
#line number
atau
#line number "nama_file"
atau
#line ekspresi_preprocessing
Contoh Penulisan :
#include <stdio.h>
int main()
{
fungsi_1();
fungsi_2();
getch();
}
#line 100
fungsi_1()
{
printf("fungsi_1 berada pada baris kode ke-%d\n",__LINE__);
}
#line 200
fungsi_2()
{
printf("fungsi_2 berada pada baris kode ke-%d\n",__LINE__);
}
Output :
Gambar 11. Preprocessor #line
12. #pragma
#pragma adalah sebuah instruksi yang telah didefinisikan implementasinya, yang memungkinkan suatu variasi instruksi yang diberikan pada compiler. Fungsi #pragma ini tidak support pada compiler gcc terbaru.
Tabel Pragma:
Format Penulisan:
Contoh Penulisan :
Output :
Tabel makro:
Format Penulisan:
Contoh Penulisan :
Output :
Format Penulisan #:
Format Penulisan ##:
Contoh Penulisan:
Output :
Format Penulisan:
Contoh Penulisan:
Output :
Format Penulisan:
Contoh Penulisan:
Output :
Semoga materi yang saya sampaikan tentang Bahasa C kali ini dapat dipahami sobat poinreaders. Silahkan tulis pertanyaan seputar materi yang telah dibahas pada kolom komentar. jangan lupa follow akun sosial kami agar poinreaders bisa mendapatkan materi terbaru tentang bahasa pemrograman lainnya.
Tabel Pragma:
Nama Pragma | Keterangan |
---|---|
startup | menjalankan fungsi sebelum fungsi main() |
exit | menjalankan fungsi sesudah fungsi main() |
warn | menampilkan peringatan (warning) pada program |
option | menentukan daftar pilihan compiler yang akan diproses |
inline | menentukan bahwa fungsi C harus sebaris (inline) |
argsused | menonaktifkan pesan peringatan (warning) |
hdrfile | - |
hdrstop | mengakhiri daftar header file yang memenuhi syarat untuk precompilation |
saveregs | - |
Format Penulisan:
#pragma nama_pragma instruksi
Contoh Penulisan :
#include<stdio.h>
void fungsi_1();
void fungsi_2();
#pragma startup fungsi_1
#pragma exit fungsi_2
void main(){
printf("Ini adalah main()\n");
getch();
}
void fungsi_1(){
printf("Ini adalah fungsi_1()\n");
getch();
}
void fungsi_2(){
printf("Ini adalah fungsi_2()\n");
getch();
}
Output :
Gambar 12. Preprocessor #pragma
Predefined Makro
ANSI C mendefinisikan sejumlah makro. Meskipun masing-masing tersedia untuk digunakan dalam pemrograman, makro yang telah ditetapkan tidak boleh diubah secara langsung.Tabel makro:
Makro | Keterangan |
---|---|
__DATE__ | menampilkan tanggal saat ini dalam format "MMM DD YYYY" |
__TIME__ | menampilkan waktu saat ini dalam format ""HH:MM:SS" |
__FILE__ | menampikan file saat ini |
__LINE__ | menampilkan jumlah baris dalam format desimal |
__STDC__ | implementasi penyesuain standar, menampilkan konstanta desimal 1 |
Format Penulisan:
__nama-makro-predefine__
Contoh Penulisan :
#include <stdio.h>
main() {
printf("File :%s\n", __FILE__ );
printf("Tanggal :%s\n", __DATE__ );
printf("Waktu :%s\n", __TIME__ );
printf("Baris :%d\n", __LINE__ );
printf("ANSI :%d\n", __STDC__ );
getch();
}
Output :
Gambar 13. Predefined Makro
Operator Processor # dan ##
ANSI C menyediakan 2 operator processor, yaitu # dan ##. Operator # digunakan pada makro #define, operator # akan mengubah parameter makro menjadi string konstan. Sedangkan operator ## untuk menggabungkan dua argumen.Format Penulisan #:
#define nama_makro #nama_parameter
Format Penulisan ##:
#define nama_makro nama_parameter_1 ## nama_parameter_2
Contoh Penulisan:
#include <stdio.h>
#define nama_lengkap(nama) #nama
#define nilai(a, b) a ## b
int main(void) {
int xy = 90;
printf("Nama : %s\n", nama_lengkap(Denis Julianto));
printf("Nilai : %d", nilai(x, y));
getch();
return 0;
}
Output :
Gambar 14. Operator # dan ##
Operator Processor \
Sebuah makro biasanya terbatas pada satu baris. Operator \ digunakan untuk melanjutkan makro yang terlalu panjang untuk satu baris.Format Penulisan:
\
Contoh Penulisan:
#include <stdio.h>
#define alamat_web(link) \
printf("Alamat website pointopoin : %s", #link)
int main(void) {
alamat_web(www.pointopoin.com);
getch();
return 0;
}
Output :
Gambar 15. Operator \
Operator Processor defined()
Operator ini digunakan dalam ekspresi konstan untuk menentukan apakan sebuah identifier didefinisikan menggunakan #define. Jika identifier yang ditentukan sudah didefinisikan, makan akan bernilai benar (true), sedangkan jika tidak didefinisikan, maka bernilai palsu (false).Format Penulisan:
defined(nama_makro)
Contoh Penulisan:
#include <stdio.h>
#if !defined (PESAN)
#define PESAN "Ini adalah sebuah pesan!"
#endif
int main(void) {
printf("%s", PESAN);
getch();
return 0;
}
Output :
Gambar 16. Operator Preprocessor defined()
Semoga materi yang saya sampaikan tentang Bahasa C kali ini dapat dipahami sobat poinreaders. Silahkan tulis pertanyaan seputar materi yang telah dibahas pada kolom komentar. jangan lupa follow akun sosial kami agar poinreaders bisa mendapatkan materi terbaru tentang bahasa pemrograman lainnya.