Jenis-jenis Variabel Dalam Bahasa C Part 1 |
Kali ini sanabila.com ingin membahas mengenai jenis-jenis variabel dalam bahasa C. Sebelumnya sanabila.com sudah membahas seputar variabel dalam bahasa C, yaitu:
- Batasan Penamaan Variabel Dalam Bahasa C
- Inisialisasi Variabel Dalam Bahasa C
- Lingkup Variabel Dalam Bahasa C
- Jenis Variabel Dalam Bahasa C Part 1
- Jenis Variabel Dalam Bahasa C Part 2
A. Variabel Otomatis
Variabel otomatis merupakan variabel yang hanya dikenal di dalam suatu blok saja (yang ada di dalam tanda {...}). Blok tersebut antara lain yaitu blok pemilihan, pengulangan, dan fungsi. Apabila setelah tanda { (permulaan blok), kita melakukan deklarasi variabel, maka variabel tersebut hanya akan dikenali oleh program sampai ditemukan tanda } (akhir blok) pertama yang ditemukan.
Variabel seperti inilah yang dinamakan dengan variabel otomatis, karena variabel ini dialokasikan pada saat pendeklarasian dan akan didealokasikan secara otomatis ketika program telah keluar dari suatu blok. Walaupun bersifat opsional, namun untuk mempertegas bahwa variabel tersebut sebagai variabel otomatis, kita dapat menggunakan kata kunci auto pada saat pendeklarasian.
Bentuk umumnya :
Bentuk umumnya :
auto tipe_data nama_variabel;Contoh Program :
#include <stdio.h>
#include <math.h> /* untuk menggunakan fungsi pow() */
int main(void) {
int x = 5, y;
printf("Masukkan nilai pangkat : "); scanf("%d", &y);
if (y >= 0) {
auto int hasil;
hasil = pow (x, y);
printf("%d^%d = %d", x, y, hasil);
}
/* printf("hasil = %d", hasil); */ /* SALAH, karena variabel
hasil tidak dikenal */
return 0;
}
Hasilnya adalah :
Masukkan nilai pangkat : 2
6^2 = 36
B. Variabel Statis
Variabel statis merupakan variabel yang menyimpan nilai permanen dalam memori, artinya variabel tersebut akan menyimpan nilai terakhir yang diberikan. Untuk menyatakan bahwa suatu variabel adalah variabel statis adalah dengan menggunakan kata kunci static.
Bentuk umumnya :
static tipe_data nama_variabel;Sekarang kita akan membandingkan dengan membuat program yang memakai variabel biasa dan variabel statis.
B.1. Variabel Biasa
Contoh Program :
#include <stdio.h>
/* Mendefinisikan sebuah fungsi dengan nama kalidua() */
int kalidua(void) {
int x = 1; /* Mendeklarasikan variabel biasa */
x = x * 2;
return x;
}
/* Fungsi utama */
int main(void) {
/* Mendeklarasikan variabel a, b dan c untuk menampung
nilai dari fungsi */
int a, b, c;
a = kalidua(); /* Melakukan pemanggilan fungsi untuk
pertama kali */
b = kalidua(); /* Melakukan pemanggilan fungsi untuk
kedua kali */
c = kalidua(); /* Melakukan pemanggilan fungsi
untuk ketiga kali */
/* Menampilkan nilai yang terdapat pada variabel a, b dan c */
printf("Nilai a = %d\n", a);
printf("Nilai b = %d\n", b);
printf("Nilai c = %d\n", c);
return 0;
}
Hasilnya adalah :
Nilai a = 2
Nilai b = 2
Nilai c = 2
B.2. Variabel Statis
Contoh Program :
#include <stdio.h>
/* Mendefinisikan sebuah fungsi dengan nama kalidua() */
int kalidua(void) {
static int x = 1; /* Mendeklarasikan variabel statis */
x = x * 2;
return x;
}
/* Fungsi utama */
int main(void) {
/* Mendeklarasikan variabel a, b dan c untuk menampung nilai
dari fungsi */
int a, b, c;
a = kalidua(); /* Melakukan pemanggilan fungsi untuk
pertama kali */
b = kalidua(); /* Melakukan pemanggilan fungsi untuk
kedua kali */
c = kalidua(); /* Melakukan pemanggilan fungsi untuk
ketiga kali */
/* Menampilkan nilai yang terdapat pada variabel a, b dan c */
printf("Nilai a = %d\n", a);
printf("Nilai b = %d\n", b);
printf("Nilai c = %d\n", c);
return 0;
}
Hasilnya adalah :
Nilai a = 2
Nilai b = 4
Nilai c = 8
Penjelasan Singkat :
Kita lihat bahwa pada saat kita menggunakan variabel biasa, setiap kali pemanggilan fungsi tersebut, kompilator akan mengalokasikan variabel x dan menginisialisasinya dengan nilai 1, yang selanjutnya akan dikalikan dengan 2. Namun yang perlu diperhatikan adalah pada saat program selesai melakukan proses yang terdapat fungsi, maka variabel x akan didealokasikan secara otomatis. Hal ini yang menyebabkan setiap pemanggilan fungsi akan selalu menghasilkan nilai yang sama, yaitu 2.
Sedangkan pada variabel statis, ketika pertama kali fungsi dipanggil, variabel x akan dialokasikan dan akan tetap bersarang di memori sampai program dihentikan. Adapun nilai x yang ada pada saat ini adalah 1 sehingga apabila dikalikan 2, maka hasilnya adalah 2. Kemudian ketika fungsi itu dipanggil untuk yang kedua kalinya, nilai x sudah menjadi 2, bukan 1, dan nilai terakhir tersebut kemudian dikalikan lagi dengan 2, menghasilkan nilai 4. Begitu juga dengan pemanggilan fungsi yang ketiga, nilai x yang ada adalah 4 sehingga apabila dikalikan 2 maka hasilnya 8.
Daftar Pustaka :
- Cara Mudah Mempelajari Pemrograman C & Implementasinya. Oleh I Made Joni Budi Raharjo. Diakses pada tanggal 25 Mei 2015 jam 13.15 WIB.