Tipe Data di C

Hai sana, para programer masa depan! Selamat datang ke perjalanan menarik kita ke dunia programming C. Hari ini, kita akan mengexplore realm yang menarik dari tipe data di C. Jangan khawatir jika Anda baru dalam programming; saya akan menjadi panduan yang ramah bagi Anda, dan kita akan menangani topik ini secara bertahap. Jadi, ambil minuman favorit Anda, duduk nyaman, dan mari kita masuk ke dalamnya!

C - Data Types

Tipe Data Integer di C

mari kita mulai dengan sesuatu yang kita kenal semua - bilangan bulat. Di C, kita menyebut ini integer, dan mereka datang dalam ukuran dan rasa yang berbeda.

Tipe Integer Dasar

Ini adalah tabel tipe integer yang paling umum di C:

Tipe Data Ukuran (bytes) Rentang
char 1 -128 hingga 127 atau 0 hingga 255
short 2 -32,768 hingga 32,767
int 4 -2,147,483,648 hingga 2,147,483,647
long 4 atau 8 -2,147,483,648 hingga 2,147,483,647 atau -9,223,372,036,854,775,808 hingga 9,223,372,036,854,775,807

mari kita lihat ini dalam tindakan:

#include <stdio.h>

int main() {
char my_char = 65;
short my_short = 32000;
int my_int = 2000000000;
long my_long = 9000000000L;

printf("char: %c\n", my_char);
printf("short: %d\n", my_short);
printf("int: %d\n", my_int);
printf("long: %ld\n", my_long);

return 0;
}

Ketika Anda menjalankan kode ini, Anda akan melihat:

char: A
short: 32000
int: 2000000000
long: 9000000000

mari kitauraikan ini:

  • Nilai char 65 mengkorresponden dengan 'A' dalam tabel ASCII. Kaget! char juga dapat menyimpan angka!
  • short dan int bekerja seperti yang diharapkan untuk bilangan medium.
  • Untuk long, kita menambahkan 'L' di akhir untuk memberitahu C ini adalah bilangan panjang.

Integer Tak Bertanda

kadang-kadang, kita hanya memerlukan bilangan positif. Itu di mana integer tak bertanda berguna:

unsigned char my_uchar = 255;
unsigned short my_ushort = 65000;
unsigned int my_uint = 4000000000U;

printf("unsigned char: %u\n", my_uchar);
printf("unsigned short: %u\n", my_ushort);
printf("unsigned int: %u\n", my_uint);

Output:

unsigned char: 255
unsigned short: 65000
unsigned int: 4000000000

Dengan menggunakan unsigned, kita dapat menyimpan bilangan positif yang lebih besar dalam jumlah memori yang sama. Itu seperti magi, tapi itu hanya penggunaan cerdas bit!

Tipe Data Angka Desimal di C

Sekarang, mari kita ambil angka desimal. C menyediakan tiga jenis tipe angka desimal:

Tipe Data Ukuran (bytes) Presisi
float 4 6-7 digit desimal
double 8 15-16 digit desimal
long double 16 19-20 digit desimal

mari kita lihat mereka dalam tindakan:

#include <stdio.h>

int main() {
float pi_float = 3.14159265358979323846f;
double pi_double = 3.14159265358979323846;
long double pi_long_double = 3.14159265358979323846L;

printf("float: %.7f\n", pi_float);
printf("double: %.16f\n", pi_double);
printf("long double: %.20Lf\n", pi_long_double);

return 0;
}

Output:

float: 3.1415927
double: 3.1415926535897931
long double: 3.14159265358979323846

Perhatikan bagaimana float kehilangan presisi setelah 7 digit, sedangkan double dan long double mempertahankan lebih banyak akurasi. Itu seperti memperbesar foto digital - di suatu titik, Anda mulai melihat piksel!

Tipe Data yang Didefinisikan Pengguna di C

C memungkinkan kita untuk membuat tipe data sendiri. Itu seperti menjadi koki dan membuat resep Anda sendiri!

Struktur

Struktur memungkinkan kita untuk menggrupkan data yang terkait bersama:

#include <stdio.h>
#include <string.h>

struct Student {
char name[50];
int age;
float gpa;
};

int main() {
struct Student alice;
strcpy(alice.name, "Alice");
alice.age = 20;
alice.gpa = 3.8;

printf("Name: %s\n", alice.name);
printf("Age: %d\n", alice.age);
printf("GPA: %.1f\n", alice.gpa);

return 0;
}

Output:

Name: Alice
Age: 20
GPA: 3.8

Di sini, kita telah membuat tipe Student yang menggabungkan nama, umur, dan IPK bersama. Itu seperti membuat formulir untuk informasi siswa!

Enumerasi

Enumerasi bagus untuk membuat set konstanta yang dinamai:

#include <stdio.h>

enum Days {SUN, MON, TUE, WED, THU, FRI, SAT};

int main() {
enum Days today = WED;
printf("Today is day number %d\n", today);
return 0;
}

Output:

Today is day number 3

Enums secara otomatis menugaskan nilai integer meningkat dimulai dari 0. Itu seperti memberi nama panggilan kepada angka!

Tipe Data void di C

void adalah tipe khusus di C. Itu seperti kanvas kosong - itu mewakili keabsenan data. Kita umumnya menggunakannya dalam tiga scenario:

  1. Fungsi tidak mengembalikan apa-apa:

    void sayHello() {
    printf("Hello, World!\n");
    }
  2. Fungsi tidak menerima parameter:

    int getRandomNumber(void) {
    return 4;  // dipilih oleh lempar dadu yang adil. terjamin untuk menjadi acak.
    }
  3. Pointer generik (kita akan mencakup ini dalam bagian pointer)

Tipe Data Array di C

Array seperti baris burung kacer, setiap yang mengandung nilai tipe yang sama:

#include <stdio.h>

int main() {
int scores[5] = {85, 92, 78, 90, 88};

printf("First score: %d\n", scores[0]);
printf("Last score: %d\n", scores[4]);

float average = 0;
for(int i = 0; i < 5; i++) {
average += scores[i];
}
average /= 5;

printf("Average score: %.2f\n", average);

return 0;
}

Output:

First score: 85
Last score: 88
Average score: 86.60

Ingat, di C, indeks array dimulai dari 0. Itu seperti nomor lantai di Eropa - lantai dasar adalah 0!

Tipe Data Pointer di C

Pointer seperti petunjuk yang menunjuk ke lokasi di memori. Mereka kuat tetapi bisa sulit:

#include <stdio.h>

int main() {
int x = 10;
int *p = &x;

printf("Value of x: %d\n", x);
printf("Address of x: %p\n", (void*)&x);
printf("Value of p: %p\n", (void*)p);
printf("Value pointed by p: %d\n", *p);

*p = 20;
printf("New value of x: %d\n", x);

return 0;
}

Output (alamat akan berubah):

Value of x: 10
Address of x: 0x7ffd5e8e3964
Value of p: 0x7ffd5e8e3964
Value pointed by p: 10
New value of x: 20

Di sini, p adalah pointer yang menyimpan alamat x. Kita dapat menggunakan *p untuk mengakses atau mengubah nilai di alamat itu. Itu seperti memiliki remote kontrol untuk x!

Dan itu saja! Kita telah menyoroti tipe data utama di C. Ingat, memahami tipe data adalah penting karena itu membantu Anda mengelola memori secara efisien dan menghindari kutu. Terus latihan, dan segera Anda akan menjuggling tipe ini seperti seorang ahli! Selamat coding!

Credits: Image by storyset