Dalam tutorial belajar bahasa pemrograman di duniailkom C kali ini kita akan membahas tentang pengertian variabel dan cara penulisan variabel dalam bahasa C.
Pengertian Variabel dalam Bahasa C
Variabel adalah 'penanda' identitas yang digunakan untuk menampung suatu nilai. Nilai tersebut dapat diubah sepanjang kode program. Secara teknis, variabel merujuk kepada suatu alamat di memory komputer. Setiap variabel memiliki nama yang sebagai identitas untuk variabel tersebut.
Sesuai dengan namanya, isi dari variabel bisa berubah dari waktu ke waktu tergantung kebutuhan. Ini berbeda dari konsep konstanta yang kita bahas dalam tutorial sebelumnya. Untuk konstanta, nilai tersebut akan tetap dan tidak bisa diubah sepanjang kode program.
Sebagai contoh, jika saya membuat program menghitung luas lingkaran, saya bisa membuat variabel 'jari2' dan mengisinya dengan nilai '7', kemudian di dalam kode program, saya bisa mengubah nilainya menjadi '8', '10' atau '1000'. Sedangkan jika 'jari2' ini dibuat sebagai konstanta, maka nilainya akan tetap '7' sepanjang program dijalankan.
Aturan Penamaan Variabel dalam Bahasa C
Penamaan variabel merujuk ke aturan identifier yang pernah kita bahas beberapa tutorial sebelumnya. Berikut aturan penamaan variabel di dalam bahasa pemrograman C:
- Variabel bisa terdiri dari huruf, angka dan karakter underscore / garis bawah ( _ ).
- Karakter pertama dari variabel hanya boleh berupa huruf dan underscore ( _ ), tidak bisa berupa angka. Meskipun dibolehkan, sebaiknya tidak menggunakan karakter underscore sebagai awal dari variabel karena bisa bentrok dengan beberapa variabel settingan program.
- Variabel harus selain dari keyword. Sebagai contoh, kita tidak bisa memakai kata int sebagai nama variabel, karena int merupakan keyword untuk menandakan tipe data integer.
- Beberapa compiler bahasa C ada yang membatasi panjang variabel maksimal 31 karakter. Agar lebih aman, sebaiknya tidak menulis nama variabel yang lebih dari 31 karakter.
Cara Penulisan Variabel di dalam bahasa C
Ketika akan menulis variabel, dalam hampir semua bahasa pemrograman terdapat 2 proses: deklarasi dan inisialisasi.
Deklarasi adalah proses untuk memberitahukan compiler bahasa C bahwa kita akan membuat sebuah variabel. Bahasa C termasuk bahasa pemrograman yang menggunakan konsep strongly typed programming language, yang artinya untuk setiap variabel harus ditulis akan berisi tipe data apa. Apakah itu angka bulat (integer), angka pecahan (float), huruf (char), atau yang lain.
Ketika kita ingin membuat variabel, harus ditentukan dulu apa tipe data dari variabel tersebut. Pembahasan mengenai tipe data di dalam bahasa C akan kita bahas dalam tutorial tersendiri, namun berikut tipe data yang sering dipakai:
- Tipe data integer, yakni tipe data angka bulat seperti 1, 5 atau 1000. Tipe data integer ditulis dengan keyword int.
- Tipe data float, yakni tipe data angka pecahan seperti 1.33, 5.90 atau 1000.99. Tipe data float ditulis dengan keyword float.
- Tipe data character, yakni tipe data huruf seperti 'A', 'a', atau 'Z'. Tipe data character ditulis dengan keyword char.
Sebagai contoh, dalam kode program berikut saya mendeklarasikan 3 buah variabel:
#include <stdio.h> int main(void) { int a; char b; float c; return 0; }
Disini perintah int a akan membuat variabel a dengan tipe data int. Artinya variabel a hanya bisa diisi dengan angka bulat. Variabel b bertipe char, sehingga hanya bisa menampung huruf. Sedangkan variabel c bertipe data float yang hanya bisa diisi dengan angka pecahan.
Setelah sebuah variabel di deklarasikan, kita bisa menginput atau memberikan nilai awal ke dalam variabel tersebut. Proses pemberian nilai awal ini dikenal dengan istilah inisialisasi.
Nilai yang diberikan harus sesuai dengan tipe data. Misalnya variabel a bertipe int, sehingga hanya bisa diisi dengan angka bulat. Berikut contoh proses deklarasi dan inisialisasi dari contoh sebelumnya:
#include <stdio.h> int main(void) { int a; char b; float c; a = 34; b = 'B'; c = 3.14; return 0; }
Sekarang masing-masing variabel sudah berisi nilai. Tanda sama dengan ( = ) disini berfungsi sebagai operator assignment, yakni operator yang akan mengisi sebuah nilai. Proses assignment dilakukan dari kanan ke kiri. Perintah a = 34 artinya memasukkan angka 34 ke dalam variabel a.
Untuk menampilkan isi dari variabel, kita bisa menggunakan perintah printf seperti contoh berikut:
#include <stdio.h> int main(void) { int a; char b; float c; a = 34; b = 'B'; c = 3.14; printf("%i",a); printf("\n"); printf("%c",b); printf("\n"); printf("%f",c); printf("\n"); return 0; }
Proses deklarasi dan inisialisasi variabel juga bisa dilakukan sekaligus, seperti contoh berikut:
#include <stdio.h> int main(void) { int a = 34; char b = 'B'; float c = 3.14; printf("%i",a); printf("\n"); printf("%c",b); printf("\n"); printf("%f",c); printf("\n"); return 0; }
Sekarang variabel a, b dan c masing-masing sudah berisi nilai awal.
Kita juga bisa mendeklarasikan beberapa variabel dalam 1 baris perintah, selama variabel tersebut memiliki tipe data yang sama, seperti contoh berikut:
#include <stdio.h> int main(void) { int a,b,c; a = 12; b = 9; c = 2; printf("%i",a); printf("\n"); printf("%i",b); printf("\n"); printf("%i",c); printf("\n"); return 0; }
Setelah variabel di deklarasikan dan diberikan nilai awal, kita bisa mengubah nilai-nilai ini sepanjang kode program. Berikut contohnya:
#include <stdio.h> int main(void) { int a,b,c; a = 3; b = a; a = a + b; c = b + b + a; printf("%i",a); printf("\n"); printf("%i",b); printf("\n"); printf("%i",c); printf("\n"); return 0; }
Bisakah anda menebak apa hasil akhir dari variabel a, b, dan c?
Diawal kode program, saya mendeklarasikan 3 buah variabel: a, b, dan c. Variabel a kemudian diisi dengan angka 3 dengan perintah a = 3.
Di baris berikutnya terdapat perintah b = a, artinya variabel b akan diisi dengan nilai dari variabel a (ingat, proses assignment berlaku dari kanan ke kiri). Karena variabel a berisi angka 3, maka variabel b juga akan berisi angka 3.
Selanjutnya terdapat perintah a = a + b. Kembali, proses pemberian nilai (assignment) akan dilakukan dari sisi kanan tanda sama dengan ( = ) terlebih dahulu.
Berapakah hasil dari a + b? karena a dan b sama-sama bernilai 3, maka hasilnya adalah 6. Angka enam ini akan menjadi nilai baru untuk variabel a. Nilai variabel a yang sebelumnya 3, akan tertimpa menjadi 6.
Proses terakhir adalah c = b + b + a. Kembali, kita selesaikan dulu perhitungan di sisi kanan, yakni b + b + a. Variabel b saat ini bernilai 3, sedangkan variabel a sudah bernilai 6 akibat perintah sebelumnya. Sehingga proses yang terjadi adalah 3 + 3 + 6 = 12. Angka 12 ini akan menjadi nilai inputan untuk variabel c.
Dari penjelasan diatas, maka variabel a akan berisi angka 6, variabel b angka 3, dan variabel c angka 12. Mari kita buktikan dengan menjalankan kode program tersebut:
Yup, hasilnya sesuai dengan perhitungan.
Dalam tutorial kali ini kita telah mempelajari pengertian variabel dan cara penulisan variabel di dalam bahasa pemrograman C. Dalam tutorial selanjutnya, saya akan membahas tentang cara penggunaan perintah printf yang sudah beberapa kali kita pakai.
Kok ada assignment dari kiri ke kanan dan dari kanan ke kiri? Apa bedanya? Terima kasih.
1 lagi.
Sebelumnya anda membuat \n sambung dengan hello,world. Kenapa sekarang dibuat terpisah? Terima kasih
Itu hanya untuk memudahkan pembacaan saja. Jika pengen disambung juga g ada masalah seperti printf("%i \n",a);
Dalam programming umumnya proses assignment hanya ada dari kanan ke kiri, dimana nilai di sisi kanan menjadi inputan untuk variabel yang ditulis di sisi kiri. Dan tidak ada assignment kiri ke kanan.
saya coba ngikutin yang di atas kok yang tampil cuman proses returned 0 (0x0) execution time: 0.035 s
atas nya blank gak keluar angkanya, apa ada yang salah
#include <stdio.h>
int main (void)
{
int a,b,c;
a = 3;
b = a;
a = a + b;
c = b + b + a;
printf("%1",a);
printf("\n");
printf("%1",b);
printf("\n");
printf("%1",c);
printf("\n");
return 0;
}
thanks sebelumnya utk tutorialnya
%1 di function printf nya di tuker bro ke %d atau %i
Oh iya Om, di lognya ada tulisan " warning: implicit declaration of function 'printf' "
Untuk perintah printf("%1",a), seharusnya printf("%i",a), yakni huruf %i, bukan angka %1.
perasan saya pakai %i kemarin om, kok jadi 1 ya hehe, tapi saya coba lagi masih sama om
maklum newbie.
#include <stdio.h>
int main(void)
{
int a,b,c;
a = 3;
b = a;
a = a + b;
c = b + b + a;
printf("%i",a);
print("\n");
printf("%i",b);
printf("\n");
printf("%i",c);
printf("\n");
return 0;
}
hasilnya tetap sama om, okay saya akan coba lagi sampai bisa hehe. terimakasih bnyak om andre
Hehe, bisa copy paste saja kode di tutorial ini. Lalu bandingkan satu per satu, baris ber baris. Di dalam programming, satu karakter saja salah tulis programnya g akan jalan atau berbeda hasil.
coba cek kembali pada baris ke-10 seharus nya printf("\n");
kurang f itu, kamu tulis print. seharusnya printf
Min berarti bahasa c berkelanjutan ya perhitungannya? Kan dari a tadi 3 lalu a yang ke 2 udah 6, berarti kalau ada operasi selanjutnya langsung memakai a yang ke 2 ?
bantu jawab, kalau dilihat dari perhitungan diatas, yang c=b+b+a hasilnya 12, a disini bernilai 6.
Makasih min :)
minn kenapa variabel b = 'b'
bukannya untuk data char atau string menggunakan petik dua " ya min?? atau ada perbedaannya min
Sudah di cobakah?
Setiap bahasa pemrograman punya aturan masing2 yang kadang berbeda dari satu bahasa dengan bahasa lain. Khusus untuk bahasa pemrograman C, untuk membuat char pakai tanda kutip 1 ( ' ), tidak bisa jika menggunakan tanda kutip dua ( " ).
Untuk string memang bisa pakai tanda kutip dua, tapi itupun ada syarat tambahan lain karena dalam bahasa C string ini adalah sebuah array dari char: https://www.duniailkom.com/tutorial-belajar-c-pengertian-dan-contoh-kode-program-tipe-data-string/
hai,,, saya masih newbie di bahasa c . saya mau tanya semisal untuk menginput seperti :
alamat : jalan mawar no.1
deklarasnya seperti apa dan bagaimana?
Untuk membaca inputan string, nanti akan dibahas pada part 21: https://www.duniailkom.com/tutorial-belajar-c-cara-membaca-string-dengan-scanf-dan-gets/
izin print tiap pembahsan ya kak jdi ilmu buat dibaca" :)
Silahkan…