---
description: 'Penulis: Benedict'
---

# Variabel dan Tipe Data

Variabel adalah istilah yang diadopsi dari dunia matematika. Seperti definisinya dalam matematika, variabel adalah suatu yang merepresentasikan suatu nilai. Dalam dunia pemrograman, variabel dapat dipikirkan sebagai suatu _container_ dari suatu data seperti bilangan bulat, kalimat, karakter, dan lain-lain.

{% hint style="info" %}
Seperti di dalam matematika, nilai dari suatu variabel tidaklah tetap, ia dapat berubah di dalam program. Suatu nilai yang bernilai tetap disebut dengan _konstanta._
{% endhint %}

Seperti disebutkan tadi, bahwa variabel menyimpan suatu nilai spesifik, nilai spesifik ini disebut sebagai _tipe data._&#x20;

Pada bahasa pemrograman C++, setiap variabel memiliki tipe data tertentu. Bahasa pemrograman C++ menyediakan berbagai jenis tipe data, misalnya `int`, `string`, `bool`, `double`, dan sebagainya (Dibahas lebih lanjut di bawah). Tipe data suatu variabel menyatakan jenis data yang dapat ditampung oleh variabel tersebut. Dalam C++, Tipe data suatu variabel tidak dapat diubah.

| Tipe Data   | Kegunaan                                                                                                                                                                                                                                                                                  |
| ----------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `int`       | Menampung data berbentuk bilangan bulat. Terbatas untuk bilangan dari $$-2^{31}$$hingga $$2^{31} - 1$$. Catatan : terdapat juga `unsigned int` yang terbatas untuk bilangan $$0$$hingga $$2^{32}$$.                                                                                       |
| `long long` | Menampung data berbentuk bilangan bulat. Terbatas untuk bilangan dari $$-2^{63}$$hingga $$2^{63} - 1$$. Catatan : Terdapat juga `unsigned long long` yang terbatas untuk bilangan $$0$$ hingga $$2^{64}$$.​                                                                               |
| `char`      | Menampung data berbentuk satu dan hanya satu karakter. Misalnya : `'A'`, `'a'`, `'1'`, `'/'`, `'$'`, dan lain-lain. Catatan : setiap `char` memiliki nilai suatu bilangan bulat. Nilai tersebut dapat dilihat pada tabel **ASCII** (_American Standard Code for Information Interchange_) |
| `string`    | Menampung data berbentuk serangkaian `char`. Misalnya : `"Budi"`, `"Pak Dengklek"`, `"Aku mau turu"`.                                                                                                                                                                                     |
| `double`    | Menampung data berbentuk suatu bilangan berkoma. Misalnya : `420.69`, `0.3333`. Catatan : Karena komputer kurang akurat dalam perhitungan bilangan berkoma, tipe data double hanya akurat sampai 16 digit.                                                                                |
| `bool`      | Menampung nilai `true` atau `false.`                                                                                                                                                                                                                                                      |

Selain memiliki tipe data, setiap variabel juga memiliki nama. Penamaan variabel juga memiliki aturan tertentu, berikut adalah aturan penamaan variabel pada bahasa C++ :&#x20;

* Nama variabel terdiri dari huruf, angka, atau underscore (\_).
* Nama variabel harus dimulai dengan huruf atau underscore (\_).
* Nama variabel bersifat _case sensitive_, misalnya `var` dan `Var` dianggap 2 variabel yang berbeda.

Mari kita pelajari bagaimana mendeklarasikan variabel. Suatu variabel dideklarasikan dengan format `tipe_data nama_variabel;` Untuk lebih jelasnya, perhatikan potongan program di bawah.

```cpp
#include <iostream>
using namespace std;

int main(){
    int x;
     
    string s;
    
    return 0;
}
```

Pada program di atas, kita mendeklarasikan 2 variabel. Variabel pertama dengan tipe data `int` dan memiliki nama `x`. Variabel kedua dengan tipe data `string` dan memiliki nama `s`.

Kita dapat mengisi variabel dengan suatu nilai. Misal,

```cpp
#include<iostream>
using namespace std;

int main(){
    int x = 12;
    
    string s = "Makan";
    
    return 0;
}
```

Maka sekarang variabel `x` menampung data `12` dan variabel `s` menampung data `"Makan"`.

Nilai suatu variabel dapat kita ubah dengan syarat nilai yang akan kita isikan ke variabel tersebut memiliki tipe data yang sama.

```cpp
int main(){
    int x = 12;
    x = 100;
    
    return 0;
}
```

Maka sekarang variabel `x` menampung data `100`. Data `12` yang sebelumnya ditampung oleh `x` ditimpa oleh `100`. Perhatikan bahwa kita tidak perlu lagi menuliskan int di belakang `x` pada saat mengubah datanya, hal ini dikarenakan `x` sudah kita deklarasi sebelumnya.

Berikut adalah contoh pendeklarasian variabel untuk tipe data lain.

{% tabs %}
{% tab title="int" %}
<pre class="language-cpp"><code class="lang-cpp">int main(){
<strong>    int x = 56, y = 112, z = 450;
</strong>}
</code></pre>
{% endtab %}

{% tab title="string" %}
<pre class="language-cpp"><code class="lang-cpp">int main(){
<strong>    string s = "Pak Dengklek suka", num = "123456789";
</strong>}
</code></pre>

{% hint style="info" %}
Jika suatu angka dijadikan string, maka angka itu tidak dapat dilakukan operasi aritmatika.
{% endhint %}
{% endtab %}

{% tab title="double" %}
<pre class="language-cpp"><code class="lang-cpp">int main(){
<strong>    double u = 420.69, v = 0.3333;
</strong>}
</code></pre>

Perhatikan bahwa bilangan berkoma ditulis dengan titik dan bukan koma.
{% endtab %}

{% tab title="bool" %}
<pre class="language-cpp"><code class="lang-cpp">int main(){
<strong>    bool benar = true, salah = false;
</strong>}
</code></pre>

`bool` hanya dapat bernilai _true_ atau _false_
{% endtab %}
{% endtabs %}
