Home C++ Type Conversion
Post
Cancel

C++ Type Conversion

Desktop View

Dalam tutorial ini, kita akan belajar tentang dasar-dasar conversion type C++ dengan contoh.

C++ memungkinkan kita untuk mengconversi data dari satu type ke type lainnya. Ini dikenal sebagai type conversion.

Ada dua jenis type conversion di C++.

  • Implicit Type Conversion
  • type conversion (juga dikenal sebagai Type Casting)

Implicit Type Conversion

type Conversion yang dilakukan secara otomatis oleh compiler dikenal sebagai type conversion implisit. Jenis Conversion ini juga dikenal sebagai konversi otomatis.

Mari kita lihat dua contoh konversi tipe implisit.

Contoh 1: Konversi Dari int ke double

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// Bekerja dari implicit type-conversion

#include <iostream>
using namespace std;

int main() {
   // menetapkan nilai int ke num_int
   int num_int = 9;

   // mendeklarasikan variable type ganda
   double num_double;
 
   // implicit conversion
   // menetapkan nilai int ke variable ganda
   num_double = num_int;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

Output

1
2
num_int = 9 
num_double = 9

Dalam program, menetapkan data int ke double variable.

1
num_double = num_int;

Di sini, nilai int secara otomatis dikonversi oleh double compiler sebelum ditetapkan ke to num_double variable. Ini adalah contoh type conversion implisit.

Contoh 2: conversi Otomatis dari double ke int

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// Bekerja dari Implicit type-conversion

#include <iostream>
using namespace std;

int main() {

   int num_int;
   double num_double = 9.99;

   // implicit conversion
   // menetapkan nilai ganda ke variable int
   num_int = num_double;

   cout << "num_int = " << num_int << endl;
   cout << "num_double = " << num_double << endl;

   return 0;
}

Output

1
2
num_int = 9 
num_double = 9,99

Dalam program, telah menetapkan data double ke variable int.

1
num_double = num_int;

Di sini, nilai double secara otomatis dikonversi oleh int compiler sebelum ditetapkan ke to variable num_int. Ini juga merupakan contoh type conversion implisit.

Catatan: Karena int tidak dapat memiliki bagian decimal, num setelah titik decimal terpotong dalam contoh di atas.

Kehilangan Data Selama conversion (Narrowing Conversion)

Seperti yang telah kita lihat dari contoh di atas, conversi dari satu type data ke type data lainnya rentan kehilangan data. Ini terjadi ketika data dari type yang lebih besar diconversi ke data dari type yang lebih kecil.

Desktop View

C++ Explicit Conversion

Saat user secara manual mengubah data dari satu jenis ke jenis lainnya, ini dikenal sebagai Conversion eksplisit. Jenis Conversi ini juga dikenal sebagai type casting.

Ada tiga cara utama di mana kita dapat menggunakan Conversi eksplisit dalam C++:

  • C-style type casting (also known as cast notation)
  • Function notation (dikenal sebgai type casting)
  • Type conversion operators

C-style Type Casting

Seperti namanya, jenis ini casting disukai oleh bahasa pemrograman C. Hal ini juga dikenal sebagai cast notation.

Syntax untuk style ini adalah:

1
(data_type)expression;

Sebagai contoh,

1
2
3
4
5
6
7
8
// menginisialisasi variable int
int num_int = 26;

// mendeklarasikan variabel ganda
double num_double;

// conversi dari int ke double
num_double = (double)num_int;

Function-style Casting

Kita juga dapat menggunakan fungsi seperti notasi untuk mentransmisikan data dari satu type ke type lainnya.

Syntax untuk style ini adalah:

1
data_type(expression);

Sebagai contoh,

1
2
3
4
5
6
7
8
// menginisialisasi variable int
int num_int = 26;

// mendeklarasikan variable ganda
double num_double;

// conversi dari int ke double
num_double = double(num_int);

Contoh 3: Type Casting

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>

using namespace std;

int main() {
    // menginisialisasi variable ganda
    double num_double = 3.56;
    cout << "num_double = " << num_double << endl;

    // C-style conversion dari double ke int
    int num_int1 = (int)num_double;
    cout << "num_int1   = " << num_int1 << endl;

    // function-style conversion dari double ke int
    int num_int2 = int(num_double);
    cout << "num_int2   = " << num_int2 << endl;

    return 0;
}

Output

1
2
3
num_double = 3,56 
num_int1 = 3 
num_int2 = 3

menggunakan C style type conversion dan function-style casting untuk type conversi dan menampilkan hasilnya. Karena mereka melakukan tugas yang sama, keduanya memberi kita output yang sama.

Type Conversion Operators

Selain dua jenis ini, C++ juga memiliki empat operator untuk jenis conversi. Mereka dikenal sebagai Type Conversion Operators:

  • static_cast
  • dynamic_cast
  • const_cast
  • reinterpret_cast
This post is licensed under 0x3n0 by the author.

C++ Operators

C++ Variable Literal dan constanta