Membuat Data Global dengan extern const map
di C++
extern const map
merupakan salah satu cara untuk mendefinisikan data global yang dapat diakses dari berbagai bagian kode di dalam program C++. Konsep ini memungkinkan kita untuk menyatukan definisi data tanpa perlu mendefinisikan ulang di setiap file yang memerlukannya.
Kegunaan extern const map
- Kode yang lebih bersih: Dengan menyimpan data global dalam satu lokasi, kode kita menjadi lebih terstruktur dan mudah dipahami.
- Pemisahan kode: Kita bisa mendefinisikan data global dalam file terpisah, sehingga memudahkan pengelolaan dan modifikasi kode.
- Perubahan data yang mudah: Jika kita perlu mengubah data global, kita hanya perlu memperbarui definisi di satu tempat saja.
Cara Menggunakan extern const map
- Deklarasi di header file: Deklarasikan
map
dengan kata kunciextern const
di header file yang akan digunakan oleh berbagai bagian kode.
// my_data.h
extern const std::map my_map;
- Definisi di file sumber: Definisikan
map
dengan nilai yang sebenarnya di file sumber yang akan digunakan.
// my_data.cpp
const std::map my_map = {
{"apple", 1},
{"banana", 2},
{"orange", 3}
};
- Penggunaan di file lain: Kita dapat mengakses
map
yang dideklarasikan di header file dari file lain yang menyertakan header file tersebut.
// main.cpp
#include "my_data.h"
int main() {
std::cout << my_map["apple"] << std::endl; // Output: 1
return 0;
}
Catatan:
extern const
menandakan bahwamap
tersebut didefinisikan di tempat lain dan bersifat konstan, yang berarti nilainya tidak dapat diubah.map
harus didefinisikan hanya sekali di dalam program.extern const map
dapat digunakan dengan berbagai tipe data, tidak hanyamap
saja.
Contoh Penggunaan extern const map
Misalnya, kita ingin menyimpan data tentang daftar siswa dan nilai mereka. Kita dapat menggunakan extern const map
untuk menyimpan data tersebut:
// student_data.h
extern const std::map student_grades;
// student_data.cpp
const std::map student_grades = {
{"John", 90},
{"Jane", 85},
{"Peter", 75}
};
// main.cpp
#include "student_data.h"
int main() {
std::cout << student_grades["John"] << std::endl; // Output: 90
return 0;
}
Kelebihan extern const map
- Lebih mudah diakses dan dikelola daripada data global yang tidak konstan.
- Lebih aman, karena nilai data tidak dapat diubah secara tidak sengaja.
- Dapat digunakan dengan berbagai tipe data, tidak hanya
map
saja.
Kesimpulan
extern const map
merupakan cara yang efektif dan efisien untuk mendefinisikan data global yang konstan dan dapat diakses dari berbagai bagian kode dalam program C++. Dengan menggunakan konsep ini, kode kita akan lebih terstruktur, mudah dipahami, dan mudah diubah.