Konversi Tipe Bagian 1
Termasuk bagian Dasar-Dasar dalam perjalanan C di Coddy. Pelajaran 13 dari 63.
Type casting di C memungkinkan kamu mengonversi nilai dari satu tipe data ke tipe data lainnya. Ini berguna saat kamu perlu melakukan operasi antara tipe data yang berbeda.
Ada dua jenis utama konversi tipe:
- Konversi implisit (otomatis)
- Konversi eksplisit (manual)
Mari kita mulai dengan konversi tipe implisit:
Konversi tipe secara implisit terjadi secara otomatis saat mengonversi dari tipe data yang lebih kecil ke tipe data yang lebih besar:
int num = 10;
double decimal_num;
// Konversi tipe implisit dari int ke double
decimal_num = num;Setelah menjalankan kode di atas, decimal_num akan memiliki nilai 10.0
Ini berfungsi karena double dapat menyimpan semua nilai int yang mungkin tanpa kehilangan data apa pun. Konversi ini aman, jadi C melakukannya secara otomatis.
Jalur casting implisit yang umum:
- char → int → long → float → double
Sekarang, mari kita lihat casting eksplisit:
Pemaksaan tipe data secara eksplisit dilakukan secara manual dengan menempatkan tipe data tujuan di dalam tanda kurung sebelum nilai yang ingin kamu konversi. Ini diperlukan saat mengonversi dari tipe data yang lebih besar ke tipe data yang lebih kecil, karena data mungkin hilang:
double decimal_num = 5.65;
int num;
// Konversi tipe secara eksplisit dari double ke int
num = (int)decimal_num;Setelah menjalankan kode di atas, num akan memiliki nilai 5
Perhatikan bahwa bagian desimal dipotong, bukan dibulatkan, saat mengonversi double menjadi int. Sintaks untuk konversi eksplisit adalah:
(target_type) valueKarena konversi ini dapat menyebabkan kehilangan data, C mengharuskan kamu melakukannya secara eksplisit. Ini memberi tahu compiler bahwa kamu menyadari potensi kehilangan data.
Tantangan
MudahBuat program yang:
- Mendeklarasikan variabel double
resultdan mengaturnya ke 5.65 - Mendeklarasikan variabel int
grade - Menetapkan nilai
resultkegrademenggunakan casting eksplisit - Mencetak nilai
gradedengan pesan "The grade is: " menggunakan printf
Coba sendiri
#include <stdio.h>
int main() {
double result = 5.65;
int grade;
// Gunakan casting eksplisit untuk mengonversi result (double) menjadi grade (int)
printf("The grade is: %d\n", grade);
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Dasar-Dasar
2Variabel
Tipe DataBilangan BulatFloat - DoubleKarakterBooleanKonstantaDasar printfAturan Penamaan VariabelKonversi Tipe Bagian 1Konversi Tipe Bagian 2Tantangan Rangkuman3Operator
Operator AritmetikaOperator ModuloInkrementasi/PenurunanOperator PenugasanOperator RelasionalOperator Logika Bagian 1Operator Logika Bagian 2Operator Logika Bagian 3Tantangan RangkumanLatihan sendiri: Compiler C online