Selain menampilkan output yang sama terus menerus, kalian bisa menampilkan output yang berbeda-beda berdasarkan input yang diberikan oleh pengguna program. Kalian juga akan membutuhkan variabel. Variabel tersebut digunakan untuk menyalin input yang diberikan oleh pengguna.
Sebelum membahas lebih jauh lagi, saya akan memberikan contoh kode programnya terlebih dahulu.
#include <iostream>
using namespace std;
int main(){
string variabelku;
cout<< "Input : ";
cin>>variabelku;
cout<< "Isi variabel : ";
cout<< variabelku;
return 0;
}
Silakan simpan kode programnya. Compile, dan jalankan programnya! Setelah program dimulai, ketik apa saja. Kemudian, tekan enter.
Untuk menerima input dari pengguna, kalian perlu menggunakan cin. Cin akan menyalin apa yang diketik pengguna ke dalam variabel saat tombol enter ditekan. Variabel tersebut perlu dideklarasikan sebelum bisa digunakan.
Deklarasi Variabel
Contoh di atas menggunakan variabel dengan nama "variabelku". Variabel tersebut tipe datanya adalah string. Variabel dalam bahasa C++ hanya bisa menyimpan satu jenis data saja. Kalian perlu menyebutkan tipe datanya saat deklarasi variabel.
Pola penulisan deklarasi variabel bisa kalian lihat di bawah ini.
- Tipe_data nama_variabel;
- Tipe_data nama_variabel1, nama_variabel2;
- Tipe_data nama_variabel=nilai awal;
- Tipe_data nama_variabel1=nilai awal, nama_variabel2=nilai awal;
- string variabelku;
- int variabelku;
- int variabel1, variabel2;
- int var_1=0;
- float var_2=1.5;
- string tulisan="tulisanku";
Ada cukup banyak tipe data lain yang bisa kalian gunakan dalam bahasa C++. Saat memberikan input, kalian harus memperhatikan tipe data dari variabel yang akan menyimpannya. Nilai yang tidak sesuai dengan tipe data variabel bisa menyebabkan error. Untuk lebih amannya, lebih baik kita gunakan string saja terlebih dahulu. String bisa menyimpan karakter berupa angka, huruf, spasi, atau simbol.
Variabel yang tidak diberi nilai saat deklarasinya nilai awalnya ditentukan oleh compiler. Jika tipe datanya angka, nilainya bisa 0 atau diambil secara acak dari memori komputer. Untuk variabel bertipe data string, isi dari variabelnya adalah string kosong.
Sama seperti cout, cin ada di dalam header iostream. Bedanya adalah pada kegunaan dan arah tanda panahnya (>>). Selain itu, kalian juga perlu menyertakan nama variabel setelah tanda >>.
Penamaan Variabel
Kalian tidak bisa memberi nama variabel secara asal-asalan. Penamaan variabel memiliki syarat-syarat yang harus kalian patuhi. Jika nama variabel tidak sesuai, maka kode program tidak akan bisa dicompile. Berikut ini adalah syarat-syarat penamaan variabel.
- Karakternya hanya boleh terdiri dari huruf, angka, dan underscore(_). Spasi dan karakter khusus tidak boleh digunakan sebagai nama variabel.
- Karakter pertama tidak boleh berupa angka.
- Variabel dalam bahasa C++ bersifat case sensitive. Artinya, huruf besar dan kecil dianggap sebagai karakter yang berbeda. Misalnya, variabel "EL" beda dengan "el".
- Jumlah karakter dalam nama variabel tidak boleh melewati batas tertentu. Untuk saat ini, batas karakter nama variabel adalah 255. Untuk lebih amannya, lebih baik pakai nama variabel yang pendek saja.
- Nama variabel tidak boleh menggunakan tipe data atau reserved words. Reserved word adalah kata-kata yang punya kegunaan khusus dalam bahasa C++.
- Nama variabel dan nama function disebut dengan identifier. Tidak boleh ada identifier dengan nama yang sama dalam satu program.
Penulisan nama variabel pada fungsi cout tidak memerlukan tanda kutip. Jika kalian menggunakan tanda kutip, maka output yang ditampilkan adalah isi dari tanda kutip. Sebaliknya, isi variabel akan ditampilkan jika kalian tidak menggunakan tanda kutip.
Btw, berikut ini adalah reserved word yang digunakan C++ hingga adanya ISO C++11.
- alignas (sejak C++11)
- alignof (sejak C++11)
- and
- and
- and_eq
- asm
- atomic_cancel (TM TS)
- atomic_commit (TM TS)
- atomic_noexcept (TM TS)
- auto
- bitand
- bitor
- bool
- break
- case
- catch
- char
- char16_t (sejak C++11)
- char32_t (sejak C++11)
- class
- compl
- concept (sejak C++20)
- const
- constexpr (sejak C++11)
- const_cast
- continue
- co_await (coroutines TS)
- co_return (coroutines TS)
- co_yield (coroutines TS)
- decltype (sejak C++11)
- default
- delete
- do
- double
- dynamic_cast
- else
- enum
- explicit
- export
- extern
- false
- float
- for
- friend
- goto
- if
- import (modules TS)
- inline
- int
- long
- module (modules TS)
- mutable
- namespace
- new
- noexcept (sejak C++11)
- not
- not_eq
- nullptr (sejak C++11)
- operator
- or
- or_eq
- private
- protected
- public
- register
- reinterpret_cast
- requires (sejak C++20)
- return
- short
- signed
- sizeof
- static
- static_assert (sejak C++11)
- static_cast
- struct
- switch
- synchronized (TM TS)
- template
- this
- thread_local (sejak C++11)
- throw
- true
- try
- typedef
- typeid
- typename
- union
- unsigned
- using
- virtual
- void
- volatile
- wchar_t
- while
- xor
- xor_eq
Method Cin.ignore
Saat menggunakan cin berturut-turut, fungsi cin kedua dan seterusnya akan dilewati karena informasi yang disimpan dari input sebelumnya belum dibersihkan. Kalau itu terjadi, kalian perlu menggunakan method ignore().
#include <iostream>
using namespace std;
int main(){
string variabel1, variabel2;
cout<< "Input : ";
cin>>variabel1;
cin.ignore();
cout<< "Input : ";
cin>>variabel2;
return 0;
}
Kalian bisa mencoba menyingkirkan baris yang berisi ignore untuk melihat kegunaan ignore. Kalau kalian sudah menyingkirkannya dan tidak ada bedanya, mungkin compiler sudah membersihkan buffer yang digunakan untuk input. Walaupun begitu, untuk lebih amannya, sebaiknya gunakan saja ignore setiap selesai menggunakan cin.
Tipe Data Angka
Selain string, ada banyak tipe data dalam bahasa C++. Kalau kalian hanya perlu angka, kalian bisa menggunakan tipe data di bawah ini.
- int : bilangan bulat
- float : pecahan desimal.
Selain int, ada beberapa tipe data bilangan bulat. Tipe data pecahan desimal juga bukan hanya float. Ada beberapa tipe data lain yang sejenis, tapi berbeda ukuran byte-nya. Saya akan membahas tipe data lain dengan lebih detail secara terpisah.