Bahasa C - Casting

Casting adalah salah satu cara untuk konversi type data satu ke yang lain dimana kompilator tidak melakukan konversi secara otomatis. Konversi yang dikonversi secara explisit atau Casting bisa dicontohkan sebagai contoh int(x) merubah type x ke integer atau double(x) merubah type data x ke dounle.

int main(void) {
  int jam = 40;
  int hari = 6;

  float rata_rata = jam/hari;
  printf("%d jam in %d hari\n", jam, hari);
  printf("Bekerja selama %.1f jam per hari!\n", rata_rata);

}

Hasil program diatas adalah :

40 jam in 5 hari                                                                                            
Bekerja selama 6.0 jam per hari!

Dari hasil tersebut terlihat bahwa rata-rata seharusnya 6.66 tetapi hasil dari jam/hari menghasilkan cuma integer tanpa desimal ‘.66’. Contoh berikut kita coba untuk Casting persamaan tersebut untuk menghasilkan yang sebenarnya.

int main(void) {
  int jam = 40;
  int hari = 6;

  float rata_rata = jam/(float)hari;
  printf("%d jam in %d hari\n", jam, hari);
  printf("Bekerja selama %.1f jam per hari!\n", rata_rata);

}

Hasilnya :

40 jam in 6 hari                                                                                            
Bekerja selama 6.7 jam per hari!

Terlihat bahwa casting (float)hari menghasilkan angka yang sebenarnya.