Lompat ke konten Lompat ke sidebar Lompat ke footer

Variabel Static dan Global Bahasa C Beserta Fungsinya

Pada bahasa C, variabel static dan variabel global harus diinisialisasi oleh kompilator itu sendiri. Jika tidak, maka harus diinisialisasi dengan sebuah nilai konstanta.


Sebelum mempelajari materi tentang Variabel Static dan Global Bahasa C Beserta Fungsinya, terlebih dahulu pelajari materi tentang: Internal dan Eksternal Linkage Bahasa C Beserta Fungsinya, Membuat Nilai Variabel Beku Menggunakan Konstanta Bahasa C, dan Variabel Tidak Diawali Angka pada Bahasa C dan Alasannya.

Dalam pemrograman Bahasa C, variabel static dan global adalah dua konsep penting yang memainkan peran kunci dalam manajemen memori, lingkup variabel, dan struktur program. Artikel ini akan membahas pengertian, penggunaan, serta perbedaan antara variabel static dan global.

Catatan: jika program dikompilasi dan dijalankan dalam bahasa C++ maka program dapat berjalan dengan baik dan menghasilkan keluaran 10.

Contoh: Perkirakan hasil keluaran dari program bahasa C berikut ini.

// PROGRAM 1

#include <stdio.h>

#include <stdlib.h>

 

int main(void)

{

static int *p = (int*)malloc(sizeof(p));

*p = 10;

printf("%d", *p);

}


Contoh:

// PROGRAM 2

#include <stdio.h>

#include <stdlib.h>

 

int *p = (int*)malloc(sizeof(p));

 

int main(void)

{

*p = 10;

printf("%d", *p);

}

Kedua program diatas tidak dapat dikompilasi pada bahasa C. Jika dilakukan kompilasi dengan bahasa C maka akan didapat hasil kompilasi error.

Contoh: Untuk latihan, perkirakan hasil keluaran hasil program berikut dengan menggunakan bahasa C dan C++.

#include <stdio.h>

 

int fun(int x)

{

return (x+5);

}

 

int y = fun(20);

 

int main()

{

printf("%d ", y);

}


Baca Juga:

Variabel Global

Variabel global adalah variabel yang dideklarasikan di luar semua fungsi dalam sebuah program dan dapat diakses oleh seluruh fungsi dalam program tersebut. Variabel global bersifat global dan dapat digunakan di seluruh bagian program, baik di fungsi utama maupun dalam fungsi-fungsi lainnya.

Contoh:

#include <stdio.h>


// Variabel global

int globalVar = 10;


void fungsiSatu() {

// Mengakses variabel global


printf("Nilai variabel global

 dalam fungsiSatu: %d\n",

 globalVar);

}


void fungsiDua() {

// Mengakses variabel global

printf("Nilai variabel global

 dalam fungsiDua: %d\n",

 globalVar);

}


int main() {

// Mengakses variabel global

// dari fungsi main

printf("Nilai variabel global

 dalam main: %d\n",

 globalVar);


// Memanggil fungsi-fungsi

// yang menggunakan variabel

// global

fungsiSatu();

fungsiDua();


return 0;}


Variabel Static

Variabel static adalah variabel yang tetap ada di dalam memori sepanjang program berjalan, tetapi hanya dapat diakses dalam blok kode atau fungsi tempat variabel tersebut dideklarasikan. Variabel static bersifat lokal terhadap blok atau fungsi tempat variabel dideklarasikan, tetapi memiliki umur (lifetime) yang lebih panjang daripada variabel lokal biasa.

Contoh:

#include <stdio.h>


void fungsi() {

// Variabel static lokal

static int count = 0;


// Menampilkan nilai variabel

// static

printf("Nilai variabel static:

 %d\n", count);


// Menambah nilai variabel

// static

count++;

}


int main() {

// Memanggil fungsi beberapa

// kali

fungsi();

fungsi();

fungsi();


return 0;}


Perbedaan Antara Variabel Global dan Static:
  • Lingkup (Scope): Variabel global dapat diakses dari seluruh fungsi dalam program, sementara variabel static bersifat lokal pada blok atau fungsi tempat variabel dideklarasikan.
  • Umur Variabel (Lifetime): Variabel global tetap ada sepanjang program berjalan, sedangkan variabel static lokal memiliki umur yang lebih panjang daripada variabel lokal biasa, tetapi hanya ada selama program berjalan.
  • Inisialisasi Otomatis pada Nol: Variabel global secara otomatis diinisialisasi ke nilai nol, sedangkan variabel static lokal secara otomatis diinisialisasi ke nilai nol hanya pada saat pertama kali fungsi atau blok tempat variabel dideklarasikan dijalankan.
  • Ruangan Memori: Variabel global ditempatkan pada ruang memori global, sedangkan variabel static lokal ditempatkan pada ruang memori yang sama dengan variabel lokal biasa, tetapi tetap ada di dalam memori sepanjang program berjalan.

Manfaat Umum Penggunaan Variabel Static dan Global:
  • Variabel Global:
    • Dapat Diakses Secara Global: Variabel global memungkinkan berbagi data di antara berbagai fungsi dalam program.
    • Konsistensi Nilai: Nilai variabel global konsisten di seluruh program.
  • Variabel Static:
    • Pertahankan Nilai di antara Panggilan Fungsi: Variabel static mempertahankan nilai di antara panggilan fungsi, berguna untuk menyimpan informasi yang dibutuhkan secara persisten.
    • Kendali Lingkup: Variabel static memungkinkan pembatasan akses ke variabel hanya di dalam blok atau fungsi tempat variabel dideklarasikan.

Manfaat Lanjutan

Variabel global memiliki beberapa kelebihan dan kegunaan tertentu yang dapat bermanfaat dalam pengembangan program. Berikut adalah beberapa kelebihan variabel global:
  • Dapat Diakses Secara Global: Variabel global dapat diakses dari seluruh fungsi dalam program, tidak hanya dari fungsi di mana variabel tersebut dideklarasikan. Ini memungkinkan berbagi informasi atau data di antara berbagai bagian program.
  • Konsistensi Nilai: Nilai variabel global konsisten di seluruh program. Jika suatu nilai perlu diperbarui atau diakses oleh berbagai fungsi, variabel global memastikan konsistensi nilai tersebut.
  • Memudahkan Pengelolaan Data: Variabel global membantu dalam pengelolaan data yang perlu diakses atau dimodifikasi oleh beberapa fungsi. Data yang bersifat umum dan harus diakses oleh banyak bagian program dapat diatur menggunakan variabel global.
  • Sederhana dan Mudah Diakses: Variabel global menyediakan cara yang sederhana dan langsung untuk mengakses data tanpa perlu meneruskan atau mengembalikan nilai melalui parameter fungsi. Ini dapat membuat kode menjadi lebih ringkas dan mudah dimengerti.
  • Penting untuk Konfigurasi atau Pengaturan Program: Dalam beberapa kasus, variabel global digunakan untuk menyimpan konfigurasi atau pengaturan program yang memengaruhi perilaku keseluruhan aplikasi. Hal ini memudahkan perubahan konfigurasi tanpa harus memodifikasi setiap fungsi atau bagian program yang terlibat.
  • Efisien untuk Program Kecil: Pada program yang relatif kecil atau sederhana, penggunaan variabel global dapat memudahkan manajemen data tanpa memperkenalkan kompleksitas yang terlalu besar.

Namun, penting untuk digunakan dengan hati-hati karena penggunaan berlebihan dari variabel global dapat mengakibatkan kesulitan dalam pemeliharaan dan debugging kode. Pengembang perlu mempertimbangkan konteks dan kebutuhan program tertentu saat memutuskan apakah akan menggunakan variabel global.

Variabel static memiliki beberapa kelebihan yang dapat membantu dalam pengembangan program. Berikut adalah beberapa kelebihan variabel static:
  • Memiliki Lingkup Lokal: Variabel static memiliki lingkup lokal terhadap blok atau fungsi tempat variabel tersebut dideklarasikan. Ini berarti variabel hanya dapat diakses di dalam blok atau fungsi tersebut, tidak seperti variabel global yang dapat diakses dari seluruh program.
  • Pertahankan Nilai di antara Panggilan Fungsi: Variabel static tetap ada di dalam memori sepanjang program berjalan, dan nilainya dipertahankan di antara panggilan fungsi. Ini berguna untuk menyimpan informasi yang harus bertahan atau diingat di antara pemanggilan fungsi.
  • Keamanan dan Kendali Akses: Variabel static membantu dalam membatasi akses ke variabel hanya di dalam blok atau fungsi tempat variabel tersebut dideklarasikan. Ini memberikan tingkat keamanan dan kontrol yang lebih besar terhadap data.
  • Inisialisasi Otomatis pada Nol: Variabel static lokal secara otomatis diinisialisasi ke nilai nol ketika program dimulai. Hal ini dapat berguna untuk menghindari nilai yang tidak terduga atau sampah ketika variabel tersebut digunakan.
  • Efisiensi Penggunaan Memori: Variabel static dapat membantu dalam efisiensi penggunaan memori karena nilai variabel tetap ada sepanjang program berjalan. Hal ini berguna ketika data perlu disimpan di memori untuk jangka waktu yang lebih lama.
  • Mendukung Rekursi: Variabel static dapat digunakan dalam rekursi karena nilainya dipertahankan di antara pemanggilan rekursif. Hal ini berguna untuk menyimpan informasi yang diperlukan oleh setiap pemanggilan rekursif.
  • Tidak Memengaruhi Variabel di Luar Fungsi: Variabel static lokal tidak memengaruhi variabel dengan nama yang sama di luar fungsi tempat variabel dideklarasikan. Ini memungkinkan penggunaan nama variabel yang sama di berbagai bagian program tanpa konflik.

Variabel static sangat berguna dalam situasi-situasi di mana perlu mempertahankan nilai di antara pemanggilan fungsi, dan ketika keamanan dan kontrol akses terhadap data menjadi prioritas. Namun, seperti halnya dengan variabel global, penggunaan variabel static juga harus dipertimbangkan dengan hati-hati agar tidak menyebabkan kompleksitas yang tidak diperlukan dalam kode.

Kesimpulan

Variabel global dan static adalah dua konsep yang penting dalam Bahasa C. Pemahaman yang baik tentang perbedaan antara keduanya dan kapan sebaiknya menggunakannya membantu pengembang membangun program yang efisien, mudah dimengerti, dan mudah dipelihara. Pemilihan antara variabel global dan static tergantung pada kebutuhan spesifik dari program yang sedang dikembangkan.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Betari Siwi Riyandhini, Desta Ellen Rizki Nur Cahyani, Evana Ayu Lestari, Fadhila Nur Kinasih Ariansyah, dan Farikhah Ismawati.

6 komentar untuk "Variabel Static dan Global Bahasa C Beserta Fungsinya"

  1. Materi yang disampaikan masih kurang lengkap, mohon untuk dilengkapi lagi supaya bisa lebih paham

    BalasHapus
    Balasan
    1. Selalu, dan sedang dalam proses perbaikan secara berkala.

      Hapus
  2. Apa yang dimaksud dengan inisialisasi?

    BalasHapus
    Balasan
    1. Dalam pemrograman komputer, inisialisasi adalah proses penetapan nilai awal untuk objek atau variabel data. Konstruksi pemrograman yang melakukan inisialisasi biasanya disebut penginisialisasi atau initializer.

      Hapus
  3. Apa manfaat proses inisialisasi pada pembuatan program?

    BalasHapus
    Balasan
    1. Proses penginisialisasian variabel dapat mencegah bug pada saat membuat program. Jika variabel adalah jenis referensi, maka dengan melakukan proses inisialisasi pada proses pembuatan program tersebut dapat terhindar dari kesalahan referensi null dikemudian hari.

      catatan: variabel jenis apapun yang memiliki nilai default bukan null akan menggunakan beberapa memori untuk menyimpan nilai default tersebut.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -