author Ahmad Muhardian

Belajar C #19: Memahami Header File


Memahami Header File pada C

Pada tutorial ini, kita akan mempelajari konsep header file pada C sehingga nantinya bisa membuat program secara modular.

Apa itu Header file?

Gimana cara pakainya?

Mari kita pelajari.

Apa itu Header File?

Header file adalah file dengan ekstensi .h yang berisi definisi dari fungsi, variabel, macro, dan konstanta.

Pada program-program yang sudah kita buat, kita sering memasukan header file stdio.h ke dalam program.

#include <stdio.h>

File stdio.h adalah header file yang berisi definisi dari fungsi-fungsi untuk standar input dan output seperti printf(), scanf(), gets(), puts(), dan sebagainya.

File stdio.h ada di mana?

Jika kamu pakai Linux, file stdio.h akan berada di direktori /usr/include/.

file stdio

Jika kamu pakai Windows, file stdio.h akan berada di folder compiler, milsanya C:\MinGw\include.

folder include mingw

Kita bisa membuka file stdio.h dengan teks editor dan melihat isinya.

Mengapa kita Butuh Header File?

Header file pada C sebenarnya berperan sebagai library.

Apa itu library?

Library dalam pemrograman adalah sekumpulan fungsi-fungsi dan konstanta yang bisa kita pakai kembali.

Misalnya:

Kita sedang membuat program sekala besar. Program ini punya kode yang sangat banyak sampai ribuan. Maka kita tidak mungkin akan menulis program tersebut dalam satu file saja.

Biar gampang dikelola, program harus dibuat menjadi modul atau library dengan menulisnya di file yang terpisah.

heder file pada c

Dengan begitu, kita hanya perlu mengimpor dan menggunakannya pada program utama.

Jadi mengapa kita membutuhkan header file?

Karena agar bisa membuat program secara modular sehingga program tersebut gampang dikelola dan dikembangkan.

Cara Impor Header File

Ada dua cara mengimpor header file ke dalam program.

Cara pertama: Menggunakan kurung siku

#inlude <stdio.h>

Ini digunakan untuk mengimpor header file yang berada di fodler sistem (/usr/include).

Cara kedua: Menggunakan tanda petik

#include "nama_file.h"

Cara kedua digunakan untuk mengimpor header file yang masih satu folder dengan program kita.

Biar semakin paham, mari kita coba latihan.

Latihan: Contoh Program dengan Header File

Buatlah folder baru dengan nama header_file, kemudian di dalamnya buat tiga file:

  1. File main.c program utama;
  2. File hitung_umur.h header file hitung umur;
  3. File hitung_umur.c kode implementasi dari header file.

file program header file

Isilah masing-masing file dengan kode seperti ini:

File: hitung_umur.h

int hitung_umur(int tahun_lahir, int tahun_sekarang);

File: hitung_umur.c

int hitung_umur(int tahun_lahir, int tahun_sekarang) {
  return tahun_sekarang - tahun_lahir;
} 

File: main.c

#include <stdio.h>
#include "hitung_umur.h"

void main() {
    int tahun_sekarang = 2022;
    int tahun_lahir = 1999;
    
    // menggunakan fungsi dari hitung_umur.h
    int umur = hitung_umur(tahun_lahir, tahun_sekarang);
    
    printf("Umur kamu %d tahun", umur);
} 

Setelah itu, kita bisa compile semua programnya.

Karena di sini ada dua file kode file c, maka kita harus meng-compile kedua file tersebut.

Jika hanya meng-compile main.c saja, maka tidak akan bisa.

compile main

Lalu gimana cara compile kedua file ini?

Caranya tinggal ditambahkan aja semua nama file yang mau di-compile pada perintah gcc.

Contoh:

gcc main.c hitung_umur.c -o main

Maka hasilnya:

hasil compile program

Program berhasil di-compile, untuk menjalankannya ketik perintah berikut:

./main

Maka hasilnya:

hasil output program

Latihan: Menggunakan Codeblocks

Buka Codeblocks, kemudian Klik menu File–>New Project... Lalu pilih Console application

codeblock-new-project

Setelah itu klik Next.

welcome wizard

Pilih C sebagai bahasa pemrograman yang akan dipakai. Setelah itu klik Next.

select language

Setelah itu, isi nama project dengan latihan_header_file, kemudian klik Next.

nama-project

Pada pemilihan compiler, pilih GNU GCC Compiler. Setelah itu klik Finish.

compiler stup

Project kita sudah siap..

project di codeblocks

Mari kita tambahkan file baru.

Caranya:

Klik menu File–>New File, kemudian pilih Empty File.

Jika muncul jendela seperti ini:

add file to project

Klik Yes.

Kemudian isi nama filenya dengan hitung_umur.h dan klik Save.

nama-file

Jika muncul seperti ini, klik saja OK.

select target file

Setelah itu, isi file hitung_umur.h dengan kode seperti ini:

int hitung_umur(int tahun_lahir, int tahun_sekarang);

Kemudian, buat satu lagi file untuk mengimplementasikan hitung_umur.h, yakni hitung_umur.c.

Caranya sama seperti tadi.

Klik File–>New File–>Empty File. Lalu berkan nama dengan hitung_umur.c dan isi kodenya seperti ini:

int hitung_umur(int tahun_lahir, int tahun_sekarang) {
  return tahun_sekarang - tahun_lahir;
}

Terakhir, ubah kode pada main.c mejadi seperti ini:

#include <stdio.h>
#include <stdlib.h>
#include "hitung_umur.h"

int main()
{
    int tahun_sekarang = 2022;
    int tahun_lahir = 1999;

    // menggunakan fungsi dari hitung_umur.h
    int umur = hitung_umur(tahun_lahir, tahun_sekarang);

    printf("Umur kamu %d tahun", umur);
    return 0;
}

Setelah itu coba Compile dan Run.

Maka hasilnya:

hasil run codeblocks

Mantap 👍

Apa Selanjutnya?

Header file membantu kita membuat program menjadi modular, sehingga kita tidak perlu menulis kode berulang-ulang.

Tinggal impor saja header file dari program yang lain dan langsung bisa dipakai.

Selanjutnya coba buat projectmu dengan teknik ini dan coba pelajari juga tentang make file pada C.

Selamat belajar. 🙌

Baca Juga ini

Belajar C #18: Memahami Preprocessor dan Macro

Belajar C #18: Memahami Preprocessor dan Macro

Pada tutorial ini, kita akan belajar tentang preprocessor dan macro di C. Sehingga kamu akan bisa paham, compiler memproses macro.

Belajar C #13: Mengenal Tipe Data Union di C

Belajar C #13: Mengenal Tipe Data Union di C

Pada tutorial ini, kita akan belajar tentan tipe data union. Sehingga kita bisa membuat custom tipe data sendiri dengan union.

Belaajar C #16: Fungsi untuk Alokasi Memori Secara Dinamis

Belaajar C #16: Fungsi untuk Alokasi Memori Secara Dinamis

Pada tutorial ini, kita akan belajar fungsi untuk mengalokasikan memori secara dinamis seperti alloc(), calloc(), realloc(), dan free().

Apa sih Bedanya Statement dengan Expression dalam Pemrograman?

Apa sih Bedanya Statement dengan Expression dalam Pemrograman?

Statement dan ekspression merupakan bagian terpenting dalam pemrograman. Lalu, apa perbedaan statement dengan eskspresi? Mari kita bahas..

Belajar Pemrograman C #14: Mengenal Tipe Data String pada C

Belajar Pemrograman C #14: Mengenal Tipe Data String pada C

Pada tutorial ini, kamu akan belajar bagaimana cara memanipulasi string dengan fungsi-fungsi yang sudah disediakan oleh C. Mengapa ini penting? Karena...

Belajar Pemrograman C #17: Cara Membaca dan Menulis File di C

Belajar Pemrograman C #17: Cara Membaca dan Menulis File di C

Pada tutorial ini, kita akan belajar cara membaca dan menunlis file dengan program C. Ini penting, karena file sering digunakan dalam program komputer. Simak selengkapnya...