Apa Itu extern dalam Bahasa C? Panduan Lengkap Penggunaan dan Contohnya

1. Apa itu extern?

Dalam bahasa C, extern adalah sinyal untuk “meminjam” variabel atau fungsi yang didefinisikan di file lain. Misalnya, ketika Anda ingin menggunakan variabel global yang sudah didefinisikan di satu file pada file lain, Anda menggunakan extern. Saat program dibagi menjadi beberapa file, extern digunakan untuk berbagi data antar file tersebut.

Bayangkan saja, di dalam program terdapat banyak ruangan, dan extern berfungsi seperti “kontrak peminjaman alat” dari ruangan sebelah. Artinya, “di sini tidak ada, tapi ada di ruangan sebelah.”

Contoh

// file1.c
int g_data = 100;

// file2.c
extern int g_data;
void printData() {
    printf("%d\n", g_data);  // Mengakses g_data di file1.c
}

Pada contoh di atas, g_data didefinisikan di file1.c, tetapi dengan menggunakan extern, variabel tersebut dapat diakses dari file2.c.

2. Hubungan antara extern dan Variabel Global

extern sangat berkaitan dengan variabel global. Setelah variabel global didefinisikan sekali dalam program, variabel tersebut bisa diakses dari file mana pun. Namun, file lain tidak akan tahu keberadaan variabel itu kecuali Anda mendeklarasikannya dengan extern sebagai penanda “ada di sini!”

Penting untuk dicatat bahwa extern hanya deklarasi, sehingga tidak mengalokasikan memori. Alokasi memori variabel dilakukan di file asalnya.

Contoh Variabel Global

// file1.c
int counter = 0;

// file2.c
extern int counter;  // Menggunakan counter yang didefinisikan di file lain
void incrementCounter() {
    counter++;  // Memperbarui nilai counter
}
年収訴求

3. Penggunaan extern di File Header

Pada proyek berskala besar, akan merepotkan jika harus mendeklarasikan variabel atau fungsi berulang kali. Di sinilah file header menjadi sangat berguna. File header adalah file yang mengumpulkan informasi yang akan dibagikan ke file lain. Dengan mendeklarasikan extern di file header, file lain dapat merujuk variabel global atau fungsi yang sama.

File header bisa disebut sebagai “kotak peralatan” untuk seluruh proyek. Anda mengumpulkan alat-alat umum di satu tempat, lalu menggunakannya di file yang membutuhkannya.

Contoh File Header

// globals.h
extern int global_variable;
void printGlobalVariable();

// file1.c
#include "globals.h"
int global_variable = 10;

// file2.c
#include "globals.h"
void printGlobalVariable() {
    printf("%d\n", global_variable);
}

4. Kesalahan Umum Penggunaan extern

Ada beberapa hal yang perlu diperhatikan saat menggunakan extern. Misalnya, Anda tidak boleh menginisialisasi variabel pada deklarasi extern. extern hanya untuk “deklarasi”, bukan “definisi”. Jika Anda mendeklarasikan extern di file yang tidak memiliki definisi variabelnya, akan terjadi error pada proses linking.

Kesalahan Umum

extern int data = 100;  // Inisialisasi seperti ini TIDAK BOLEH

Jika Anda mencoba menginisialisasi variabel bersamaan dengan extern seperti di atas, akan terjadi error. extern digunakan untuk merujuk variabel yang sudah didefinisikan di file lain, bukan untuk mendefinisikan atau menginisialisasi variabel.

5. Contoh Penggunaan Praktis extern

extern sangat berguna pada proyek besar. Misalnya, pada program yang terdiri dari banyak modul, data atau fungsi bersama bisa dideklarasikan dengan extern dan digunakan kembali di setiap file.

Dalam proyek semacam ini, penggunaan extern akan memudahkan modularisasi program, serta meningkatkan maintainability dan keterbacaan. Setiap file dapat berfungsi secara independen sambil tetap dapat berbagi data yang diperlukan.

Contoh Praktis

// main.c
#include "globals.h"

int main() {
    printGlobalVariable();  // Memanggil fungsi yang didefinisikan di file lain
    return 0;
}

// globals.c
#include "globals.h"
int global_variable = 100;

void printGlobalVariable() {
    printf("%d\n", global_variable);  // Output variabel global
}

Artikel ini mencakup mulai dari dasar hingga penggunaan praktis extern. Memahami peran extern sebagai kata kunci penting dalam membagi dan menggunakan ulang program C sangatlah penting.