Casting Tipe Data
Pada post sebelumnya sudah dijelaskan mengenai masing masing tipe data.Dalam pemrograman kita terkadang dihadapkan suatu masalah, dimana kita diharuskan untuk mengganti tipe data tersebut dengan tipe data yang dapat ditampung oleh hasil pengoperasian yang kita lakukan.
Contoh langsung lihat codenya saja.
Contoh 1...
Code:#include <stdio.h> int main() { int alas, tinggi; float Luas; printf("Masukkan Alas: "); scanf("%d", &alas); // input alas printf("Masukkan Tinggi: "); scanf("%d", &tinggi); // input tinggi //Proses menghitung Luas segitiga. Luas = (alas * tinggi)/2; // sama saja seperti 1/2 * (alas * tinggi) printf("Hasil: %f\n", Luas); // menampilkan Hasil perhitungan return 0; }Output :
Bisa kita lihat bahwa
4 x 5 = 20 lalu dibagi 2 = 10
Hasilnya Benar.
Tetapi jika kita masukkan Alas = 3, dan tinggi = 3.
Seharusnya kita mendapat nilai 4.5, akan tetapi hasil yang kita harapkan berbeda..
Kenapa ?
Tentu saja karna nilai Alas dan Tinggi tersebut berupa Integer.
Jika kita mengoperasikan dua buah bilangan bulat, maka compiler otomatis akan mendeteksi bahwa hasil yang kita inginkan berupa bilangan bulat juga.
Contoh 2....
Code:#include <stdio.h> int main() { float a = 2 / 10; printf("%f\n", a); return 0; }Apa outputnya ?
Tentu saja 0.00000
Tetapi jika kita mengubahnya dengan menambahkan angka 0 dibelakang koma menjadi
Code:
#include <stdio.h> int main() { float a = 2.0 / 10.0; printf("%f\n", a); return 0; }Maka hasilnya
Tapi apakah mungkin jika kita melakukan hal tersebut kepada Contoh kita yang pertama tadi ?
gak mungkinkan kita menyuruh user untuk nambahin .0 disetiap angka yg mereka input ? Repot banget.
Maka, untuk mempermudah kita dapat melakukan casting.
apa itu Casting ?
Mengganti ? Mengubah ?
Apa sajalah, Casting adalah suatu cara untuk mengubah tipe data dari variabel ke tipe data lain.
Caranya ?
Code:
#include <stdio.h> int main() { int alas, tinggi; float Luas; printf("Masukkan Alas: "); scanf("%d", &alas); // input alas printf("Masukkan Tinggi: "); scanf("%d", &tinggi); // input tinggi //Proses menghitung Luas segitiga. Luas = (float) (alas * tinggi)/2; // sama saja seperti 1/2 * (alas * tinggi) printf("Hasil: %f\n", Luas); // menampilkan Hasil perhitungan return 0; }Output jika kita input alas dan tinggi = 3:
Perhatikan Code Contoh1 tadi dan Code diatas.
apa yang beda ???
Luas = (float) (alas * tinggi)/2;iyak, ada syntax (float) sebelum (alas * tinggi)/2.
hal tersebutlah yang dinamakan casting. Jika sebelumnya yang kita proses itu adalah int, maka kita mengubah tipe data dari variabel alas dan tinggi menjadi float, agar bisa menghasilkan nilai berkoma.
Jika ada yang kurang dimengerti, bisa bertanya melalui Komentar dibawah Artikel ini.
Sekian dan Terima Kasih..