Terakhir Diperbarui: 26 Feb, 2026

Judul - .h vs .hpp: Apa Perbedaannya dan Mana yang Harus Anda Gunakan?

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

FiturFile .hFile .hpp
Asosiasi BahasaC dan C++Hanya C++
Konvensi atau Aturan?KonvensiKonvensi
Penggunaan dalam Proyek C++UmumDiutamakan oleh sebagian untuk kejelasan
Dukungan TemplateYaYa
Ambiguitas KodeMungkin terjadi dalam proyek bahasa campuranKurang 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 .hpp ketika Anda ingin menandakan “ini hanya kode C++” — tetap gunakan .h jika Anda bekerja di lingkungan yang menggabungkan C dan C++.

Lihat Juga