Terakhir Diperbarui: 26 Feb, 2026

Saat menulis program C++, terutama dalam proyek besar, mengorganisir kode Anda ke dalam beberapa file sangat penting untuk keterbacaan dan pemeliharaan. Ini biasanya melibatkan penggunaan file header, yang memiliki ekstensi .h atau .hpp. Tetapi apa perbedaan antara keduanya, dan mana yang harus Anda gunakan?
Dalam artikel ini, kami akan menjelaskan perbedaan antara file .h dan .hpp, menelusuri sejarahnya, dan memberikan panduan tentang praktik terbaik.
Memahami File Header di C++
File header berisi deklarasi untuk fungsi, kelas, konstanta, dan makro yang dapat Anda sertakan dalam beberapa file sumber. File-file ini kemudian disertakan dalam file .cpp (sumber C++) menggunakan direktif #include.
Konten Umum dari File Header
- Definisi kelas
- Deklarasi fungsi
- Definisi konstanta
- Makro
- Template (dalam beberapa kasus)
File .h
Apa Itu File .h?
File .h adalah file header tradisional dan pertama kali banyak digunakan dalam bahasa pemrograman C. Mereka masih digunakan dalam proyek C dan C++ untuk mendeklarasikan antarmuka.
Contoh Penggunaan:
// mathutils.h
#ifndef MATHUTILS_H
#define MATHUTILS_H
int add(int a, int b);
int subtract(int a, int b);
#endif
Keuntungan:
- Diakui secara universal (digunakan dalam C dan C++).
- Cocok untuk proyek yang melibatkan kode C dan C++.
Kerugian:
- Dapat menyebabkan ambiguitas dalam proyek C++ mengenai apakah file tersebut bergaya C atau C++.
File .hpp
Apa Itu File .hpp?
File .hpp adalah file header khusus C++. Mereka berfungsi sama seperti file .h tetapi digunakan untuk menunjukkan secara eksplisit bahwa header tersebut ditujukan untuk kode C++.
Contoh Penggunaan:
// vectorutils.hpp
#ifndef VECTORUTILS_HPP
#define VECTORUTILS_HPP
#include <vector>
std::vector<int> filter_even(const std::vector<int>& input);
#endif
Keuntungan:
- Menunjukkan dengan jelas bahwa file tersebut ditujukan untuk kode C++.
- Menghindari kebingungan saat mencampur C dan C++.
- Bermanfaat dalam proyek bahasa campuran atau tim yang mengikuti konvensi penamaan ketat.
Kerugian:
- Sedikit kurang umum di basis kode yang lebih lama.
- Tidak dikenali oleh beberapa sistem warisan yang mengharapkan
.h.
.h vs .hpp: Perbedaan Utama
| Fitur | File .h | File .hpp |
|---|---|---|
| Asosiasi Bahasa | C dan C++ | Hanya C++ |
| Konvensi atau Aturan? | Konvensi | Konvensi |
| Penggunaan dalam Proyek C++ | Umum | Diutamakan oleh sebagian untuk kejelasan |
| Dukungan Template | Ya | Ya |
| Ambiguitas Kode | Mungkin terjadi dalam proyek bahasa campuran | Kurang mungkin |
Praktik Terbaik Memilih Antara .h dan .hpp
Berikut beberapa pedoman umum untuk membantu Anda memilih:
Gunakan .h jika:
- Anda menulis kode yang harus kompatibel dengan C dan C++.
- Anda memelihara atau memperluas kode warisan yang sudah menggunakan
.h.
Gunakan .hpp jika:
- Anda ingin memperjelas bahwa file tersebut khusus C++.
- Anda bekerja dalam proyek yang hanya menggunakan C++ atau menggunakan fitur khusus C++ seperti kelas, template, dan namespace.
Struktur Proyek Umum
Contoh dengan .h:
project/
├── main.cpp
├── mathutils.h
└── mathutils.cpp
Contoh dengan .hpp:
project/
├── main.cpp
├── vectorutils.hpp
└── vectorutils.cpp
Kedua struktur valid; perbedaannya terutama pada kejelasan dan preferensi tim.
Kesimpulan
Pemilihan antara .h dan .hpp sebagian besar merupakan masalah konvensi, bukan fungsionalitas. Keduanya melayani tujuan yang sama: mendeklarasikan antarmuka dan kode bersama di beberapa file sumber C++.
Namun, untuk kode khusus C++, menggunakan .hpp dapat membuat niat Anda lebih jelas dan membantu menghindari kebingungan dalam basis kode yang lebih besar—terutama yang melibatkan banyak bahasa. Untuk proyek bahasa campuran atau warisan, .h mungkin masih menjadi pilihan.
Poin Penting:
Gunakan
.hppketika Anda ingin menandakan “ini hanya kode C++” — tetap gunakan.hjika Anda bekerja di lingkungan yang menggabungkan C dan C++.