Variabel, Type Data dan Input / Masukkan dari pengguna
Untuk menyimpan data dalam program, kita membutuhkan variabel. Variabel bisa menyimpan angka, kata-kata, atau data lainnya tergantung tipe data dari variabel tersebut. Data yang kita simpan dalam variabel dapat kita pakai kapanpun saat kita butuhkan. Variabel digunakan dalam function, operasi aritmatika, percabangan dan Perulangan. Tanpa variabel kita hanya akan menampilkan sesuatu yang monoton atau selalu sama setiap kali program dijalankan.
Variabel harus dideklarasikan sebelum digunakan karena variabel membutuhkan tempat dalam memori komputer untuk menyimpan data sesuai ukurannya. Berikut ini contoh deklarasi variabel dengan nama angka dan "int"(tipe data bilangan bulat).
int main(){
int angka;
return 0;
}
Program yang dihasilkan kode program di atas tidak akan menampilkan apapun karena hanya berisi deklarasi variabel. Selain itu nilai variabel di atas bisa bernilai nol atau acak. Untuk memberikan nilai variabel, anda bisa menggunakan Operator assignment ("="). Nilai variabel bisa diberikan saat deklarasi atau kapanpun di dalam program. Perhatikan contoh berikut ini!
int main(){
int angka=5;
angka=7;
return 0;
}
Sama seperti sebelumnya kode program di atas tidak menghasilkan apapun. Program di atas hanya memberikan nilai kepada variabel angka saat deklarasi variabel dengan nilai 5. kemudian nilai variabel angka diubah lagi menjadi 7.
Anda bisa menampilkan nilai variabel atau menggunakan varabel untuk hal lain. Tapi sebelum membahas tentang hal tersebut anda harus paham tentang cara memberikan nama variabel dan apa saja tipe data yang bisa digunakan dalam bahasa C dan C++.
Nama variabel, konstanta dan function disebut identifier. Penulisan identifier memiliki beberapa syarat. Jika cara penulisan identifier tidak tepat maka kode program tidak bisa dicompile karena error. Berikut ini syarat penulisan identifier dalam bahasa C++.
1. Karakter yang digunakan untuk nama variabel boleh menggunakan huruf(a..z, A..Z), angka (0, 1, 2, 3, 4, 5, 6, 7, 8, 9), dan Underscore ( _ ). Karakter pertama harus berupa Huruf atau underscore. Kita tidak boleh menggunakan spasi, operator aritmatika dan karakter khusus lainnya.
2. Tidak melebihi batas karakter yang ditentukan compiler, pada umumnya batas maksimal jumlah karakter dalam variabel adalah 32.
3. Nama variabel dalam C++ bersifat case sensitive, artinya huruf besar dan kecil berbeda. Misalnya, variabel Program dan program adalah dua variabel yang berbeda.
4. Tidak boleh menggunakan nama "keyword" atau kata-kata khusus yang digunakan dalam C++.
Selain untuk nama variabel, aturan diatas digunakan juga untuk nama semua identifier seperti function, objek dan identifier lainnya. Sedangkan, Keyword atau reserved Word dalam C++ adalah sebagai berikut :
alignas (C++11)
alignof (C++11) and and_eq asm auto bitand bitor bool break case catch char char16_t (C++11) char32_t (C++11) class compl concept (concepts TS) const constexpr (C++11) const_cast continue decltype (C++11) default delete do double dynamic_cast |
else
enum explicit export extern false float for friend goto if inline int long mutable namespace new noexcept (C++11) not not_eq nullptr (C++11) operator or or_eq private protected public register reinterpret_cast |
requires (concepts TS)
return short signed sizeof static static_assert (C++11) static_cast struct switch template this thread_local (C++11) throw true try typedef typeid typename union unsigned using virtual void volatile wchar_t while xor xor_eq |
Untuk lebih memahami tentang deklarasi dan penggunaan variabel, buat buat project baru dan ketikkan program di bawah ini.
#include <iostream>
using namespace std;
int main(){
string kata="Aku masih belajar pemrograman.";
cout << kata << endl;
return 0;
}
Untuk menampilkan isi variabel, kita bisa menggunakan "cout" atau "printf". Saat kita menampilkan teks atau string, kita mengapit kata-kata tersebut di antara dua tanda petik ("). Untuk menampilkan "isi" variabel, kita tidak menggunakan tanda petik. Jika menggunakan tanda petik maka yang ditampilkan adalah kata-kata yang diapit tanda petik, dan bukan isi variabel. Pada kode program di atas, "kata" adalah sebuah variabel dengan tipe data string yang menyimpan data berupa kalimat "Aku masih belajar pemrograman.".
Sebuah variabel memiliki sebuah tipe data. pada kode program di atas, tipe data dari kata adalah "string". string adalah tipe data dalam bahasa C++ yang digunakan untuk menyimpan teks atau kata-kata. Karena string bukan tipe data dasar, string tidak dapat diubah "secara langsung" menggunakan assignment operator, tetapi harus menggunakan fungsi khusus.
Sebuah variabel hanya dapat menyimpan satu jenis data. Selain string kita dapat menyimpan type data "integer" ( bilangan bulat ), float (pecahan desimal) dan tipe data lainnya. Tipe data integer dan float dapat digunakan untuk melakukan operasi aritmatika sehingga kita dapat menerapkan rumus-rumus matematika dalam pemrograman. Setiap tipe data memiliki kegunaan tersendiri dalam pemrograman. Dalam bahasa C++, tipe data dapat ditentukan pada saat deklarasi variabel.
Berikutnya kita akan mempelajari tentang tipe data. Ada beberapa tipe data dalam C++, beberapa di antaranya dikelompokkan sebagai tipe data dasar. Type data dasar disimpan sebagai sebuah angka dengan ukuran tertentu dalam byte, misalnya char ukurannya adalah sama dengan 1 byte. Selain itu, secara umum tipe data dasar dapat digunakan secara langsung dalam operator aritmatika karena tidak memiliki anggota ataupun indek.
Selain tipe data dasar, ukurannya bisa tergantung jumlah data yang disimpan. Tipe data yang ada dalam bahasa C++ yaitu :
1. Tipe data dasar (Bilangan bulat / int dan Bilangan pecahan desimal / float).
2. void
3. array
4. objek
5. enumerasi / enum
6. struct
7. union
8. string
9. File
saat ini kita hanya akan fokus pada type data dasar. Seperti sudah saya jelaskan tipe data dasar memiliki ukuran dan jangkauan nilai yang berbeda. Berikut ini nilai dan jangkauan dari setiap tipe data dasar.
Type Data
|
Ukuran (byte)
|
Jangkauan nilai
|
char
|
1
|
signed: -128 to 127
unsigned: 0 to 255
|
short int (short)
|
2
|
signed: -32768 to 32767
unsigned: 0 to 65535
|
int
|
4 (bisa berubah tergantung compiler)
|
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
|
long int (long)
|
4
|
signed: -2147483648 to 2147483647
unsigned: 0 to 4294967295
|
float
|
4
|
3.4e +/- 38 (7 digit)
|
double
|
8
|
1.7e +/- 308 (15 digits)
|
long double
|
8
|
1.7e +/- 308 (15 digits)
|
wchar_t
|
8
|
1 karakter lebar
|
int, short int dan long int adalah type data bilangan bulat. sedangkan float, double, dan long double digunakan untuk pecahan desimal. Tipe data dasar mungkin saja bertambah seiring dengan perkembangan teknologi komputer. Tipe data bilangan bulat dan pecahan bisa memiliki nilai signed atau unsigned. Sebuah bilangan dengan tipe data unsigned hanya bisa menyimpan 0 dan bilangan bulat positif. Tipe data unsigned memiliki jangkauan lebih banyak untuk bilangan positif dibandingkan signed. Untuk lebih paham tentang signed dan unsigned, perhatikan kode program di bawah ini.
#include <iostream>
using namespace std;
int main(){
unsigned int a=-1;
signed int b=-1;
cout << a << endl;
cout << b << endl;
return 0;
}
Program di atas mungkin tetap bisa di compile. Tetapi hasilnya outputnya tidak akan sesuai dengan nilai yang sudah diberikan pada variabel, karena variabel a bertipe unsigned sehingga tidak bisa menyimpan nilai negatif. Jika anda mengubah nilai variabel a menjadi bilangan bulat positif anda bisa mendapatkan output sesuai dengan nilai variabelnya.
Karakter atau huruf dalam bahasa C++ tersimpan dalam bentuk angka, tetapi akan ditampilkan dalam bentuk karakter saat anda menampilkannya menggunakan cout. Untuk karakter ASCII atau ANSI kita bisa menyimpannya dalam variabel bertipe char. sedangkan untuk karakter unicode disimpan dalam variabel dengan tipe wchar_t. Jika kita memberi nilai angka pada tipe data char, saat kita menampilkannya dengan cout kita akan mendapatkan sebuah karakter sesuai kode ASCII-nya. Misalnya karakter 'A' sama dengan 65. Untuk memberikan nilai sebuah karakter gunakan karakter atau huruf yang diapit tanda petik(').
#include <iostream>
using namespace std;
int main(){
char a = 65;
char b = 'A';
cout << a << endl;
cout << b << endl;
return 0;
}
Program Tersebut menampilkan Huruf 'A' dua kali, karena Kode ASCII untuk 'A' adalah 65. Jika kita ingin program tersebut menampilkan angka 65 kita bisa menggunakan Type casting seperti di bawah ini.
#include <iostream>
using namespace std;
int main(){
char a = 65;
char b = 'A';
cout << (int)a << endl;// C-style type cast
cout << int(b) << endl;// function style type cast
return 0;
}
Program tersebut menampilkan variabel a dan b sebagai angka 65. Pada program diatas sudah saya beri komentar yang tidak berpengaruh pada program di setiap akhir pernyataan. Komentar diawali dengan "//" dan berakhir setelah akhir baris. Komentar berguna untuk mememberi keterangan pada program karena komentar akan diabaikan oleh compiler. Anda bisa menghapus komentarnya jika anda merasa sudah paham fungsi setiap baris program tanpa komentar.
Selain C-style type casting dan Function Type Casting seperti yang saya gunakan di atas, ada type casting khusus yang digunakan untuk kegunaan tertentu, yaitu :
Perhatikan cara penggunaan static cast di bawah ini.
#include <iostream>
using namespace std;
int main(){
float a=65.5;
cout << static_cast<int> (a) << endl;
return 0;
}
Untuk type casting lainnya anda bisa cari referensi lainnya karena saya jarang menggunakannya. Mari kita lanjutkan pembahasan tentang typedef.
Kita bisa memberi nama sebuah type data dengan nama baru yaitu menggunakan typedef. Typedef sebaiknya ditulis diluar function (variabel global), walaupun typedef bisa juga dituliskan dalam function (variabel lokal). Misalnya kita ingin memberi nama lain untuk "unsigned int" dengan nama "bilangan_bulat_positif". Kita bisa menuliskannya dengan pernyataan "typedefunsigned int bilangan_bulat_positif;". Lebih jelasnya lihat contoh dibawah ini.
#include <iostream>
using namespace std;
typedef unsigned int bilangan_bulat_positif;
int main(){
bilangan_bulat_positif i, j;
j=5;
i=4-5;
cout << "i = " << i << endl;
cout << "j = " << j << endl;
cout << "i+j = " << i+j << endl;
return 0;
}
Saya jarang menggunakan typedef, karena itu saya tidak akan membahasnya terlalu rinci. Anda bisa mencobanya sendiri untuk lebih paham tentang cara penggunaan typedef. Baiklah, mari kita lanjutkan menuju pembahasan selanjutnya. :D
Sebuah variabel dapat diubah nilainya dengan "=" (assignment operator). Tapi, program yang kita buat tidak akan terlalu berguna dan akan merepotkan jika kita harus meng-compile ulang untuk mengubah nilai variabel dalam program kita.
Lalu, bagaimana caranya mendapatkan nilai variabel yang berbeda tanpa harus mengubah kode program kita? Kita bisa menggunakan cin untuk mengubah nilai suatu variabel berdasarkan nilai yang dimasukkan pengguna melalui tampilan program. Sebenarnya kita bisa juga menggunakan parameter dari function main, tetapi kita harus menjalankan program kita dari Ms. DOS(Windows) atau Terminal(Linux) jika kita ingin bisa mengubah nilainya.
Jika menggunakan DOS pengguna harus menggunakan suatu format penulisan atau mengingat urutan dari variabel. Jika kita menggunakan cin kita bisa memberitahukan apa yang harus pengguna masukkan melalui tampilan program kita. Pengguna program yang kita buat bisa memasukkan nilai yang diinginkan satu persatu atau bersamaan tergantung kode program yang kita buat. Tidak perlu terlalu banyak teori lagi, mari kita coba terapkan dalam program! :D
#include <iostream>
using namespace std;
int main(){
int nilai;
cin >> angka;
cout << angka;
return 0;
}
Jika anda sudah mengcompile dan menjalankan program anda, ketikkan sebuah bilangan bulat (misalnya, 14). Kemudian, tekan tombol enter untuk melanjutkan program. Program akan menjalankan pernyataan berikutnya yaitu "cout << angka;" yang berfungsi untuk menampilkan nilai dari variabel angka. Seharusnya program anda menampilkan nilai yang sama dengan yang anda ketik sebelumnya. Misalnya anda mengetikkan 14 dan menekan enter, maka program akan menampilkan 14 karena variabel angka nilainya berubah menjadi 14 atau angka yang anda masukkan. Jika anda memasukkan nilai yang tidak sesuai tipe variabel atau angka melebihi jangkauan nilai dari variabel, nilai dari variabel tidak akan sesuai yang anda ketikkan.
Program yang sudah kita buat hanya menampilkan kursor yang berkedip saat dibuka, sehingga pengguna tidak tahu apa yang harus dia ketik. Ada baiknya kita memberitahukan kepada pengguna apa yang harus dia ketik. Mari kita ubah sedikit program tersebut.
#include <iostream>
using namespace std;
int main(){
int nilai;
cout << "Masukkan sebuah bilangan bulat : ";
cin >> nilai;
cout << "Bilangan bulat yang anda masukkan adalah : ";
cout << nilai;
return 0;
}
Silahkan anda coba jalankan program anda dan lihat hasilnya. Jika program berhenti sejenak dan hanya menampilkan kursor yang berkedip untuk menunggu anda mengetikkan sesuatu, ketikkan bilangan bulat dan tekan enter. Program akan menjalankan semua pernyataan pada baris setelah perintah yang menggunakan "cin". Sampai disini seharusnya anda sudah bisa membuat sebuah program dengan menggunakan "cin". Jika belum paham cobalah otak-atik kode program anda.
Jika hanya ingin menggunakan nilai suatu variabel tanpa ingin mengubahnya sama sekali kita bisa menggunakan Konstanta yang di deklarasikan dengan menambahkan reserved word "const" di depan variabel. Variabel yang dideklarasikan sebagai konstanta tidak akan bisa diubah nilainya, kecuali menggunakan type casting.
#include <iostream>
using namespace std;
int main(){
const string kalimat="HHHH :), aku mulai bisa membuat program. terima kasih :D";
cout << kalimat << endl;
return 0;
}
Supaya lebih paham, terus coba ubah kode program yang saya berikan. :D
Tidak ada komentar:
Posting Komentar