Variabel Static dan Global Bahasa C Beserta Fungsinya
// PROGRAM 1
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
static int *p = (int*)malloc(sizeof(p));
*p = 10;
printf("%d", *p);
}
// PROGRAM 2
#include <stdio.h>
#include <stdlib.h>
int *p = (int*)malloc(sizeof(p));
int main(void)
{
*p = 10;
printf("%d", *p);
}
#include <stdio.h>
int fun(int x)
{
return (x+5);
}
int y = fun(20);
int main()
{
printf("%d ", y);
}
Variabel Global
#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
#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;}
- 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.
- 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
- 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.
- 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.
Kesimpulan
- Tipe Data Long Bahasa C Beserta Fungsi dan Perbedaan Kebutuhannya
- Tipe Data size_t pada Bahasa C dan Fungsinya
- Tipe Data dan Modifier Bahasa C Beserta Fungsinya
- Tipe Data Float dan Double Bahasa C Beserta Fungsinya
- Karakter Aritmatika Bahasa C dan Fungsinya
- Tipe Data Konversi Bahasa C dan Fungsinya
- Kelas Penyimpanan Bahasa C dan Fungsinya
6 komentar untuk "Variabel Static dan Global Bahasa C Beserta Fungsinya"
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 -
Materi yang disampaikan masih kurang lengkap, mohon untuk dilengkapi lagi supaya bisa lebih paham
BalasHapusSelalu, dan sedang dalam proses perbaikan secara berkala.
HapusApa yang dimaksud dengan inisialisasi?
BalasHapusDalam pemrograman komputer, inisialisasi adalah proses penetapan nilai awal untuk objek atau variabel data. Konstruksi pemrograman yang melakukan inisialisasi biasanya disebut penginisialisasi atau initializer.
HapusApa manfaat proses inisialisasi pada pembuatan program?
BalasHapusProses 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.
Hapuscatatan: variabel jenis apapun yang memiliki nilai default bukan null akan menggunakan beberapa memori untuk menyimpan nilai default tersebut.