Input dan Variabel

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;
Contoh :

  • string variabelku;
  • int variabelku;
  • int variabel1, variabel2;
  • int var_1=0;
  • float var_2=1.5;
  • string tulisan="tulisanku";
Pemberian nilai awal saat deklarasi variabel disebut dengan inisialisasi. Nilai awal variabel bisa diberikan dengan menggunakan tanda sama dengan (=) seperti pada contoh-contoh di atas.

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.

  1. alignas (sejak C++11)
  2. alignof (sejak C++11)
  3. and
  4. and
  5. and_eq
  6. asm
  7. atomic_cancel (TM TS)
  8. atomic_commit (TM TS)
  9. atomic_noexcept (TM TS)
  10. auto
  11. bitand
  12. bitor
  13. bool
  14. break
  15. case
  16. catch
  17. char
  18. char16_t (sejak C++11)
  19. char32_t (sejak C++11)
  20. class
  21. compl
  22. concept (sejak C++20)
  23. const
  24. constexpr (sejak C++11)
  25. const_cast
  26. continue
  27. co_await (coroutines TS)
  28. co_return (coroutines TS)
  29. co_yield (coroutines TS)
  30. decltype (sejak C++11)
  31. default
  32. delete
  33. do
  34. double
  35. dynamic_cast
  36. else
  37. enum
  38. explicit
  39. export
  40. extern
  41. false
  42. float
  43. for
  44. friend
  45. goto
  46. if
  47. import (modules TS)
  48. inline
  49. int
  50. long
  51. module (modules TS)
  52. mutable
  53. namespace
  54. new
  55. noexcept (sejak C++11)
  56. not
  57. not_eq
  58. nullptr (sejak C++11)
  59. operator
  60. or
  61. or_eq
  62. private
  63. protected
  64. public
  65. register
  66. reinterpret_cast
  67. requires (sejak C++20)
  68. return
  69. short
  70. signed
  71. sizeof
  72. static
  73. static_assert (sejak C++11)
  74. static_cast
  75. struct
  76. switch
  77. synchronized (TM TS)
  78. template
  79. this
  80. thread_local (sejak C++11)
  81. throw
  82. true
  83. try
  84. typedef
  85. typeid
  86. typename
  87. union
  88. unsigned
  89. using
  90. virtual
  91. void
  92. volatile
  93. wchar_t
  94. while
  95. xor
  96. 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.