Tipe Data dan Keyword Auto

Setiap variabel dalam bahasa C++ dideklarasikan dengan tipe data sesuai nilai yang akan diberikan. Masing-masing tipe data punya struktur, ukuran dan rentang nilai yang berbeda-beda.

Tipe Data Dasar

Di antara beberapa tipe data yang ada, ada tipe data yang disebut tipe data dasar. Tipe data dasar dapat digunakan untuk menyimpan satu nilai dengan rentang tertentu. Tipe data dasar bisa menyimpan angka dan karakter. Jika nilai yang diberikan pada variabel tidak sesuai ukuran dan rentang  nilai tipe data, maka nilainya bisa jadi sesuai dengan keinginan kita.

Berikut ini adalah tipe data dasar yang ada dalam bahasa C++.

  1. Tipe data Boolean : bool
  2. Tipe data Character : char
  3. Tipe data Integer : int, short, long, long long
  4. Tipe data pecahan desimal : float, double, long double
  5. Tipe Data Valueless (void)

Tipe data Bentukan

Tipe data yang merupakan gabungan atau pengembangan dari tipe data dasar disebut dengan tipe data bentukan. Tipe data bentukan dalam bahasa C bisa kalian lihat di bawah ini.

  • Tipe data struct
  • Tipe data Union
  • Tipe data Array
  • Tipe data string
  • Tipe data enumerasi
  • Tipe Data Valueless (void)
Unsigned VS Signed
Tiap tipe data dasar punya versi signed dan unsigned. Penambahan signed dan unsigned tidak mengubah ukuran suatu tipe data. Walaupun tidak mengubah ukuran nilainya dalam byte, signed dan unsigned akan mempengaruhi awal dan akhir dari nilai yang bisa diberikan.

Unsigned hanya akan menerima nilai positif, dan tidak bisa menyimpan angka negatif. Dengan kata lain, tipe unsigned dimulai dari 0 dengan nilai akhir sekitar 2 kali lipat dari nilai positif versi signed-nya, walaupun rentang nilainya tetap sama karena tidak ada nilai negatif.

Berbeda dengan unsigned, signed dimulai dari bilangan negatif. Contohnya, signed char dan unsigned char sama-sama berukuran 1 byte, walaupun nilai awal dan akhirnya berbeda. Secara default, seharusnya semua tipe data dasar akan bertipe signed.

Tipe data Ukuran (byte)Rentang nilai
short int
2
-32,768 .. 32,767
unsigned short int
2
0 .. 65,535
unsigned int
4
0 .. 4,294,967,295
int
4
-2,147,483,648 .. 2,147,483,647
long int
4
-2,147,483,648 to 2,147,483,647
unsigned long int
4
0 to 4,294,967,295
long long int
8
-(2^63)..(2^63)-1
unsigned long long int
8
0..18,446,744,073,709,551,615
signed char1
-128..127
unsigned char
1
0..255
Float
4

double8
long double
12

Saat menggunakan cout, output akan sesuai dengan tipe data yang digunakan. Ini berbeda dengan printf yang mencetak nilai sesuai dengan "format specifier" yang diberikan. Kalian tidak perlu memusingkan penggunaan format specifier jika kalian lebih tertarik untuk menggunakan cout. Untuk mengakali output dari cout kalian perlu mempelajari tentang type casting yang akan saya bahas lain kali.

Mendeklarasikan Tipe Data Baru dengan Typedef

Selain menggunakan tipe data yang sudah ada, kita juga bisa mendeklarasikan tipe data baru dari tipe data yang sudah ada. Untuk mendeklarasikan tipe data buatan kita sendiri, kita bisa mengawali deklarasi tipe data buatan kita dengan kata "typedef". Contoh :
#include <iostream>

typedef char stringku[256];

int main(){
stringku kalimat1="Halo";
stringku kalimat2="dunia";
    std::cout << kalimat1 << kalimat2;
    return 0;
}
Contoh Program :
Halodunia

Setelah tipe data baru dibuat, kita bisa menggunakan tipe data buatan kita di dalam deklarasi variabel. Pada contoh di atas, kata adalah tipe data bentukan kita sendiri yang berasal dari array dengan tipe data char.

Auto

Auto adalah keyword C++ yang secara otomatis memperkirakan tipe data saat runtime ( saat program dijalankan). Itu menggunakan nilai yang diberikan pertama kali untuk menentukan tipe data variabel.

Contoh :

#include <iostream>
using namespace std;
int main() {
    auto x = 5;
    auto y = 3;

    auto z = x + y;
    cout << z << endl;
}