Kali ini, yang akan kita pelajari adalah header.
Header
merupakan file yang berisi deklarasi variabel, function, tipe data,
dll. Semua function standar dalam Bahasa C ada dalam header. Karena itu, sebuah program dalam Bahasa C minimal menggunakan 1 header
seperti "stdio.h" supaya bisa menggunakan fungsi-fungsi standar dalam bahasa C.
Sebelumnya, kita sering menggunakan #include dan header. #include digunakan untuk menambahkan / menyisipkan isi file "Header" ke dalam kode program saat program dicompile.
Sebelumnya, kita sering menggunakan #include dan header. #include digunakan untuk menambahkan / menyisipkan isi file "Header" ke dalam kode program saat program dicompile.
#include <stdio.h>
int main(){
printf("Hello, World!\n");
return 0;
}
Program
diatas mencetak "Hello, world!" dengan function printf. Function printf merupakan function dalam header "stdio.h".
Kalian bisa menggunakan beberapa header dan library standar yang ada dalam Bahasa C. Beberapa di antara header standar tersebut, yaitu :- stdlib.h
- stdio.h
- math.h
- string.h
Membuat header sendiri
Selain header standar dari bahasa C, kita juga bisa membuat header kita sendiri. Header tersebut bisa kita letakkan di folder yang sama dengan file berisi kode program dalam bahasa C. Untuk menggunakan header di dalam folder yang sama dengan kode program kita, kita bisa menuliskan nama header dalam tanda kutip. Misalnya :
#include <iostream>
#include "headerku.h"
int main(){
std::cout << PI;//variabel atau konstanta ini ada di dalam "headerku.h"
return 0;
}
Kalau kalian ingin menggunakan kode program di atas, kalian harus meletakkan file "headerku.h" di dalam folder yang sama dengan file kode program tersebut. Header tersebut harus berisi variabel atau konstanta dengan dengan nama "PI".Untuk lebih jelasnya, projectnya bisa didownload di sini.
Header dan Library Eksternal
Header lain tidak selalu harus kita buat sendiri. Beberapa situs juga menyediakan header eksternal.
Ada yang menganggap bahasa C hanya untuk membuat program dari console. Tapi, itu tidak benar. Jika kalian menggunakan windows, kalian bisa menggunakan "#include <windows.h>" untuk membuat program dengan tampilan yang berisi tombol-tombol dan tampilan menarik lain. Selain itu, kalian juga bisa menggunakan library eksternal. Beberapa library eksternal yang bisa kalian gunakan dalam bahasa C, misalnya :
- SDL
- GTK
- FLTK
- OpenGL
- Sqlite
- Glut
- Glew
- QT library
- dll.
Dalam
bahasa C, function dalam library eksternal dihubungkan dengan kode program
menggunakan header dan file library (.a atau .lib). Selain itu, untuk
menjalankan program kita butuh runtime library (.dll untuk windows atau
.so untuk linux). Library berisi
sekumpulan function terpisah yang bisa digabungkan dengan program yang
akan kita buat. Header biasanya hanya berisi prototype dan deklarasi
variabel jika function sudah disimpan dalam library.
Untuk menggunakan header eksternal yang terdiri dari banyak file, kalian perlu mengatur posisinya lewat setting di IDE atau compiler. Setelah letak foldernya diatur lewat setting, header eksternal bisa digunakan dengan cara yang hampir sama dengan header standar.
Untuk menggunakan header eksternal yang terdiri dari banyak file, kalian perlu mengatur posisinya lewat setting di IDE atau compiler. Setelah letak foldernya diatur lewat setting, header eksternal bisa digunakan dengan cara yang hampir sama dengan header standar.
Berikut ini contoh kode program sederhana untuk SDL2.
#include <SDL2/SDL.h>
#include <stdio.h>
int main( int argc, char* args[] ){
SDL_Window* window = NULL;
SDL_Surface* layar = NULL;
if( SDL_Init( SDL_INIT_VIDEO ) < 0 ){
printf( "gagal : %s\n", SDL_GetError() );
}
else{
window = SDL_CreateWindow( "SDL Tutorial", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 800, 640, SDL_WINDOW_SHOWN );
if( window == NULL ){
printf( "gagal : %s\n", SDL_GetError() );
}
else{
layar = SDL_GetWindowSurface( window );
SDL_FillRect( layar, NULL, SDL_MapRGB( layar->format, 0xFF, 0xFF, 0x00 ) );
SDL_UpdateWindowSurface( window );
SDL_Delay( 5000 );
}
}
SDL_DestroyWindow( window );
SDL_Quit();
return 0;
}
Membuat Library Sendiri
Selain menggunakan library yang sudah ada, kita bisa juga membuat library sendiri dengan bahasa C.
Kita bisa menggunakan IDE
seperti code block atau IDE lain yang sudah menyediakan project untuk
membuat library.
Library bisa kita gunakan untuk kode program yang dibuat dengan bahasa pemrograman yang sama. Untuk menggunakan library kita bisa melakukan pengaturan lewat setting dalam IDE. Library biasanya menyertakan header yang berisi nama function dalam library tersebut.
Dalam OS Linux, ada dua tipe library yang bisa kita buat dengan bahasa C atau bahasa pemrograman lainnya. Jenis-jenis library tersebut, yaitu :
Untuk membuat static library, klik File => New => Project. Kemudian, pilih static library, dan klik Go. Pilih folder dan bahasa pemrograman yang akan kita gunakan setelahnya dengan menekan tombol Next beberapa kali hingga Finish.
Ganti kode program yang sudah ada di file "main.c" atau file utama yang tersedia di project dengan kode program di bawah ini, lalu compile atau build!
Cara Menggunakan Static Library
Untuk menggunakan static library, kita bisa membuat project baru berupa program console atau GUI. Sekarang kita akan menggunakan program console untuk menggunakan static library. Buat project baru dengan bahasa C dan ketik kode program di bawah ini setelah kalian membuat project baru.
Untuk yang malas mengetik download "source code untuk membuat static library" di sini.
Library bisa kita gunakan untuk kode program yang dibuat dengan bahasa pemrograman yang sama. Untuk menggunakan library kita bisa melakukan pengaturan lewat setting dalam IDE. Library biasanya menyertakan header yang berisi nama function dalam library tersebut.
Dalam OS Linux, ada dua tipe library yang bisa kita buat dengan bahasa C atau bahasa pemrograman lainnya. Jenis-jenis library tersebut, yaitu :
- Static libraries (.a): Library yang menjadi bagian dari program atau aplikasi setelah kode program dicompile.
- Dynamically linked shared object libraries (.so): Jenis library ini bisa digunakan dengan melalui setting operasi atau dimuat saat program dijalankan.
Untuk membuat static library, klik File => New => Project. Kemudian, pilih static library, dan klik Go. Pilih folder dan bahasa pemrograman yang akan kita gunakan setelahnya dengan menekan tombol Next beberapa kali hingga Finish.
Ganti kode program yang sudah ada di file "main.c" atau file utama yang tersedia di project dengan kode program di bawah ini, lalu compile atau build!
#include <stdio.h>
int Tambah(int i1, int i2){
return i1 + i2;
}
int Kurang(int i1, int i2){
return i1 - i2;
}
void Tampilkan(int i1, int i2){
printf("A: %d", i1);
printf("B: %d", i2);
printf("A+B: %d", i1-i2);
printf("B-B: %d", i1+i2);
}
Setelah kalian berhasil mengcompile, kalian bisa mendapatkan hasilnya di folder
"bin/Release" atau "bin/Debug" di dalam folder Project kalian. Static
library adalah file dengan ekstensi "*.a" atau "*.lib". Kalian bisa menggunakan static library berulang-ulang dalam project lain yang kalian buat.Cara Menggunakan Static Library
Untuk menggunakan static library, kita bisa membuat project baru berupa program console atau GUI. Sekarang kita akan menggunakan program console untuk menggunakan static library. Buat project baru dengan bahasa C dan ketik kode program di bawah ini setelah kalian membuat project baru.
#include <stdio.h>
#include <stdlib.h>
int Tambah(int i1, int i2);//Prototype Function tambah
int Kurang(int i1, int i2);//Prototype Function kurang
int main(){
printf("%d\n", Tambah(3, 1));
printf("%d\n", Kurang(3, 1));
return 0;
}
Kalau kalian menggunakan bahasa C++, programnya mungkin tidak akan bisa dicompile karena static library dibuat dalam bahasa C. Kalian bisa menggunakan extern "C" untuk mengatasi error karena perbedaan bahasa pemrograman. Kode program untuk bahasa C++ yang menggunakan library dari bahasa C bisa kalian lihat di bawah ini.#include <stdio.h>
#include <stdlib.h>
extern "C"{
int Tambah(int i1, int i2);//Prototype Function tambah
int Kurang(int i1, int i2);//Prototype Function kurang
}
int main(){
printf("%d\n", Tambah(3, 1));
printf("%d\n", Kurang(3, 1));
return 0;
}
Untuk
menggunakan function yang terdapat dalam library, kalian perlu
menambahkan prototype dari function yang akan kalian gunakan dalam kode
program yang memerlukannya. Kalian bisa meletakkan prototype dan variabel yang kalian butuhkan dalam program utama maupun header. Berikut ini adalah cara pengaturannya.- Sebelum meng-compile dan menjalankan program tersebut tambahkan librarynya melalui menu "Project => Properties".
- Setelah masuk ke pengaturan melalui menunya, klik "Project's build options".
- Masuk ke tab Linker settings, dan klik add untuk menambahkan library sebagai bagian dari program.
Untuk yang malas mengetik download "source code untuk membuat static library" di sini.