Casting

Casting dalam C

Casting digunakan untuk mengubah tipe data dalam ekspresi atau variabel.

Jenis Casting dalam C

Jenis Casting
Penjelasan

Implicit Casting

Konversi otomatis yang dilakukan oleh compiler.

Explicit Casting

Konversi manual yang dilakukan oleh programmer menggunakan (tipe_data).

Contoh Pengunaan

1. Implicit Casting (Konversi Otomatis)

Compiler akan otomatis mengubah tipe data yang lebih kecil ke yang lebih besar untuk menghindari kehilangan data.

#include <stdio.h>

int main() {
    int a = 10;
    float b = a;  // Implicit casting dari int ke float

    printf("Nilai b: %.2f\n", b);
    return 0;
}

Hasilnya:

  • Compiler secara otomatis mengubah int menjadi float.

2. Explicit Casting (Konversi Manual)

Jika kita ingin mengubah tipe data secara paksa, gunakan (tipe_data).

#include <stdio.h>

int main() {
    float x = 5.7;
    int y = (int) x;  // Explicit casting dari float ke int

    printf("Nilai y setelah casting: %d\n", y);
    return 0;
}

Hasilnya:

Nilai y setelah casting: 5
  • (int) x âžœ Menghapus angka desimal dan hanya menyimpan bagian bulat.

3. Casting dengan Pointer

Menggunakan void * untuk Generalisasi Pointer.

#include <stdio.h>

void printData(void *ptr, char type) {
    if (type == 'i') {
        printf("Nilai: %d\n", *(int*)ptr);
    } else if (type == 'f') {
        printf("Nilai: %.2f\n", *(float*)ptr);
    }
}

int main() {
    int a = 10;
    float b = 3.14;

    printData(&a, 'i');
    printData(&b, 'f');

    return 0;
}

Hasilnya:

Nilai: 10
Nilai: 3.14
  • void * adalah pointer umum yang bisa menunjuk ke tipe data apa saja.

  • Sebelum mengakses data, pointer harus dikonversi ke tipe data yang sesuai.

  • (int*)ptr âžœ Mengubah void * menjadi int *, lalu dereferensi dengan *ptr.

Last updated