28 Januari 2012

Variable dan Tipe Data

Variable bisa didefinisikan sebagai porsi dari memory yang digunakan untuk menyimpan nilai yang sudah ditentukan. Untuk memahami kosep mengenai variable, akan saya gunakan sebuah narasi. Coba anda bayangkan jika saya meminta anda untuk mengingat sebuah bilangan, anggap saja angka 5. Kemudian saya minta anda untuk mengingat lagi satu bilangan, yaitu angka 2.

Sekarang anda memiliki 2 buah bilangan untuk diingat, yaitu 5 dan 2. Sekarang, jika saya minta anda menambahkan angka 1 ke bilangan pertama, seharusnya anda mempunyai angka 6 (yaitu 5 + 1) dan 2 di ingatan anda. Kemudian jika saya minta bilangan pertama dikurangi bilangan kedua, anda akan mendapatkan hasil berupa angka 4. Keseluruhan proses mengingat tadi, serupa dengan apa yang bisa dilakukan oleh komputer dengan 2 buah variable. Proses yang sama bisa digambarkan dengan bahasa C++ melalui perintah-perintah berikut:

a = 5;
b = 2;
a = a + 1;
hasil = a - b;

Jelas sekali bahwa ini hanyalah contoh yang sederhana,karena kita hanya menggunakan 2 buah bilangan bulat, akan tetapi, kemampuan komputer yang sesungguhnya dalam menyimpan bilangan-bilangan bisa sampai jutaan dan pada saat yang sama, mampu melakukan perhitungan yang lebih rumit dari yang baru saja dilakukan. Sebuah variable membutuhkan pengenal (identifier) untuk membedakan antara variable satu dengan lainnya. Seperti pada kode sebelumnya, pengenal dari variable antara lain: a, b, dan hasil. Kita boleh saja memberikan nama variable sesuka kita, asalkan sesuai dengan aturan pemberian nama identifier (pengenal) variable.


Identifier

Sebuah identifier yang valid adalah rangkaian yang terdiri dari satu atau lebih huruf, angka atau tanda underscore (_). Namun, sebuah identifier tidak boleh mengandung spasi dan tanda baca. Hal lain yang perlu diperhatikan adalah sebuah identifier harus diawali dengan huruf. Sebenarnya bisa saja identifier diawali dengan underscore, tapi terkadang bisa saja identifier yang dideklarasikan merupakan kata kunci yang sudah dipesan oleh compiler dan akan menimbulkan error. Dan juga sebuah identifier tidak boleh menggunakan 2 undescore secara berurutan dan sebaiknya tidak diawali dengan angka.

Terdapat banyak banyak compiler untuk bahasa C++. Biasanya masing-masing compiler memiliki kata kunci yang sudah dipesan. Kata kunci sudah dipesan maksudnya tidak boleh digunakan untuk identifier, karena kata-kata tersebut adalah bagian dari sistem compiler. Berikut ini adalah kata kunci standart yang sudah dipesan:
asm, auto, bool, break, case, catch, char, class, const, const_cast, continue, default, delete, do, double, dynamic_cast, else, enum, explicit, export, extern, false, float, for, friend, goto, if, inline, int, long, mutable, namespace, new, operator, private, protected, public, register, reinterpret_cast, return, short, signed, sizeof, static, static_cast, struct, switch, template, this, throw, true, try, typedef, typeid, typename, union, unsigned, using, virtual, void, volatile, wchar_t, while

Sebagai tambahan, ungkapan untuk beberapa operator tidak dapat digunakan, karena dalam keadaan tertentu operator tersebut sudah dipesan. Kata-kata tersebut antara lain:
and, and_eq, bitand, bitor, compl, not, not_eq, or, or_eq, xor, xor_eq

Perlu diperhatikan, compiler yang anda gunakan mungkin memiliki kata kunci tersendiri yang sudah dipesan, yang tidak disebutkan di atas. Dan juga, C++ adalah bahasa pemrograman yang "case sensitif" yang artinya membedakan penggunaan huruf kapital. Misalnya, variable Hasil, tidak sama dengan variable HASIL ataupun variable hasil. Semuanya adalah 3 buah variable yang berbeda.


Tipe data dasar

Ketika kita membuat program, kita menyimpan variable di dalam memory komputer kita, tapi komputer harus mengetahui jenis data apa yang akan disimpan. Hal ini perlu karena tiap tipe data membutuhkan jumlah alokasi memory yang berbeda-beda. Contohnya, sebuah angka sederhana akan memerlukan memory yang tidak sama dengan satu huruf ataupun angka yang bernilai besar. Selain itu, type data yang berbeda akan di interpretasikan dengan cara yang berbeda pula.

Memory dalam komputer diatur dalam satuan byte. Satu byte adalah jumlah minimal memory yang bisa dimanage dalam C++. Satu byte bisa menyimpan data yang relatif kecil, misalnya satu karakter atau sebuah bilangan kecil (umumnya bilangan antara 0 dan 255). Sebagai tambahan, komputer mampu memanipulasi type data yang lebih kompleks dengan menggabungkan beberapa byte, misalnya bilangan dengan digit yang panjang, atau bilangan bulat yang bernilai besar sekali.

Berikut ini adalah rangkuman type data dasar dalam bahasa C++, dengan disertai cakupan nilai yang bisa ditampung.

NamaKeteranganUkuran*Range*
charKarakter atau bilangan kecil1 bytesigned: -128 sampai 127
unsigned: 0 - 255
short int (short)Bilangan bulat kecil2 bytesigned: -32768 sampai 32767
unsigned: 0 - 65535
intBilangan bulat4 bytesigned: -2147483648 - 2147483647
unsigned: 0 - 4294967295
long int (long)Bilangan bulat banyak digit4 bytesigned: -2147483648 - 2147483647
unsigned: 0 - 4294967295
boolBoolean bisa bernilai satu diantara dua, yaitu: true atau false1 bytetrue atau flse
floatBilangan yang mengandung pecahan4 byte+/-3.4e +/-38(~7 digit)
doubleBilangan pecahan presisi ganda8 byte+/-1.7e +/-308(~15 digit)
long doubleBilangan pecahan presisi ganda panjang8 byte+/-1.7e +/-308(~15 digit)
wchar_tKarakter lebar2 - 4 byte1 karakter lebar
* Nilai dari kolom Ukuran dan Range bergantung pada sistem dimana program dikompilasi. Nilai yang ditunjukan di atas adalah nilai yang terdapat pada sebagian besar sistem 32-bit. Tapi untuk sistem lain, spesifikasi umum adalah int memiliki ukuran alami yang disarankan oleh arsitektur sistem (satu "word") dan untuk tipe char,short,int dan long masing-masing harus sama besarnya dengan yang mendahuluinya, dengan char selalu berukuran 1 byte. Hal yang sama berlaku pada tipe float,double,long double, dimana semuanya harus menyediakan presisi yang paling tidak, sama dengan yang sebelumnya.


Deklarasi variable

Sebelum kita bisa menggunakan variable, kita terlebih dulu harus mendeklarasikannya dan menentukan tipe data apa yang akan disimpan di dalamnya. Syntax untuk mendeklarasikan variable baru adalah dengan menulis tipe data yng diinginkan (seperti int,bool,float...) diikuti dengan identifier variable yang valid. Sebagai contoh:

int a;
float mynumber;
Cara tersebut adalah dua cara yang valid untuk mendeklarasikan variable. Baris pertama adalah deklarasi variable dengan tipe int dengan identifier a. Baris kedua adalah deklarasi variable tipe float dengan identifier mynumber.

Setelah di deklarasikan, variable a dan mynumber bisa digunakan pada program, sesuai dengan cakupannya. Untuk mendeklarasikan variable dengan tipe data yang sama, kita bisa menuliskannya

int a, b, c;
Hasilnya akan sama dengan
int a;
int b;
int c;
Tipe data integer, char,short,long,dan int bisa didekalrasikan bernilai positif (unsigned) atau positif dan negatif (signed) tergantung dari jangkauan angka yang dibutuhkan untuk direpresentaiskan. Tipe signed bisa merepresentasikan nilai positif dan negatif, sedangkan unsigned hanya bisa digunakan untuk nilai positif dan nol. Untuk mendeklarasikan apakah signed atau unsigned, bisa menggunakan sintaks seperti contoh:
unsigned short int JumlahSaudara;
signed int SaldoRekening;
Secara default, jika kita tidak menentukan signed atau unsigned, maka sebagian besar kompiler akan menjadikannya bertipe signed. Dengan begitu, deklarasi yang kedua bisa kita tulis:
int SaldoRekening;
Pengecualian untuk aturan ini adalah tipe char, dimana char umumnya digunakan untuk menyimpan data berupa karakter, bukan sebuah bilangan. short dan long bisa digunakan tersendiri sebagai sebuah tipe data. Jika kita melaukan hal ini, data tersebut akan dianggap sebagai tipe int, short sama dengan short int dan long sama dengan long int.

Berikut ini adalah dua buah baris deklarasi variable yang memberikan hasil yang serupa:

short Tahun;
short int Tahun;
Kemudian, signed dan unsigned juga bisa digunakan sebagai sebuah tipe data, aturan yang sama dengan sebelumnya, yaitu data yang dideklarasikan adalah sebuah integer. Berikut ini adalah dua buah deklarasi variable yang memberikan hasil yang sama:
unsigned TahunDepan;
unsigned int TahunDepan;
Untuk melihat penggunaan variable dalam sebuah program, kita akan menjadikan cerita dua bilangan yang saya minta di awal posting ini:

//operasi menggunakan variable

#include <iostream>
using namespace std;

int main () {
//deklarasi sebuah variable
int a,b;
int hasil;

//proses
a = 5;
b = 2;
a = a + 1;
hasil = a - b;

//tampilkan hasil di layar
cout << hasil;

//menutup program
return 0;
}


Cakupan variable

Semua variable yang ingin kita gunakan dalam program, sebelumnya harus sudah di deklarasikan beserta tipe dari masing-masing variable. Seperti dalam program sebelumnya, di awal dari fungsi main, ketika kita mendeklarasikan bahwa a,b, dan hasil adalah bertipe int. Sebuah variable bisa memiliki cakupan global ataupun lokal. Sebuah variable global adalah variable yang dideklarasikan di dalam program, namun tidak di dalam fungsi apapun (bahkan fungsi main). Sedangkan variable lokal adalah variable yang dideklarasikan di dalam sebuah sebuah fungsi atau blok fungsi.

#include <iostream>
using namespace std;

//variable global
int Bilangan;
char Huruf;
char Kalimat[20];
unsigned int JumlahAnak;

int main () {

//variable lokal
unsigned short Umur;
float Angka1, angka2;

//instruksi program
cout << "Masukan umur anda: ";
cin >> Umur;
...
}

Variablew global bisa diakses dari mana saja di dalam program, bahkan dari dalam sebuah fungsi yang tidak mendeklarasikannya. Variable lokal memiliki cakupan yang terbatas di dalam blok yang dibatasi dengan tanda kurung kurawal ({}) dimana variable tersebut dideklarasikan. Sebagai contoh, jika sebuah variable dideklarasikan di awal sebuah fungsi (seperti fungsi main), cakupannya adalah baris dimana variable itu di deklarasikan sampai akhir dari fungsi. Pada contoh di atas, jika ada fungsi lain yang ditambahkan selain fungsi main, variable lokal yang dideklarasikan di dalam fungsi main tidak bisa di akses dari fungsi lain tersebut, dan begitu juga sebaliknya.


Inisialisasi variable

Ketika kita mendeklarasikan variable, nilai dari variable tersebut belum ditentukan. Kita bisa memberikan variable nilai setelah variable di deklarasikan atau kita bisa memberikan nilai kepada variable bersamaan dengan saat kita mendeklarasikannya. Untuk memberikan nilai pada variable sekaligus dengan saat kita mendeklarasikannya, kita perlu menginisialisasikan variable. Dalam bahasa C++, ada dua cara inisialisasi variable.

Cara pertama, adalah cara inisialisasi variable sama dengan bahasa C, yaitu dengan menggunakan tanda sama dengan ( = ) diikuti dengan nilai data yang akan diinisialisasikan ke variable.

tipe identifier = nilai_inisialisasi;
Sebagai contoh, jika kita ingin mendeklarasikan variable bertipe int dengan nama a dan dengan nilai inisialisasi 0, bisa ditulis:

int a = 0;

Cara lain inisialisasi variable disebut constructor initialization, yaitu dengan meletakkan nilai inisialisasi diantara tanda kurung:

tipe identifier (nilai_inisialisasi);
Contoh:

int a (0);

Kedua cara di atas adalah benar dan akan memberikan hasil yang sama dalam C++.

//inisialisasi variable

#include <iostream>
using namespace std;

int main () {
int a = 5;      //inisialisasi nilai 5
int b (2);       //inisialisasi nilai 2
int hasil        //inisialisasi belum ditentukan

a = a + 3;
hasil = a - b;
cout << hasil;

return 0;
}


Pengenalan string

Variable yang menyimpan data bukan bilangan, dan lebih panjang dari sebuah karakter disebut string. Library dari C++ menyediakan support untuk string melalui class string. Meski string bukan tipe data dasar, tapi string meiliki sifat yang hampir sama dengan tipe data dasar. Salah satu perbedaan string dengan tipe data dasar adalah instruksi untuk deklarasi. Dan perbedaan lainnya adalah untuk mengunakan variabel bertipe data string, kita harus terlebih dahulu menambahkan header file <string> kedalam program kita.

//Penggunaan string
#include <iostream>
#include <string>
using namespace std;

int main () {
string stringku = "Ini adalah sebuah string";
cout << stringku;
return 0;
}

Sebagaimana yang terlihat pada contoh di atas, string bisa di inisialisasi dengan data bertipe string dengan cara yang sama dengan tipe data numerik. Bahkan, kedua cara inisialisasi variable juga bisa digunakan pada string:

string stringku = "Ini adalah sebuah string";
string stringku ("Ini adalah sebuah string");



Tidak ada komentar:

Posting Komentar