3.9 KiB
---LESSON_INFO--- Learning Objectives:
- Memahami konsep struktur (struct) dalam bahasa C
- Belajar mendeklarasikan dan menggunakan struktur
- Mengenal typedef untuk membuat alias tipe data
- Memahami aplikasi struktur dalam program
Prerequisites:
- Pemahaman tentang variabel dan tipe data
- Pemahaman dasar tentang pointer
---END_LESSON_INFO---
Struktur dalam C
Struktur dalam C adalah variabel khusus yang besar yang berisi beberapa variabel bernama di dalamnya. Struktur adalah dasar utama untuk objek dan kelas dalam C. Struktur digunakan untuk:
- Serialisasi data
- Melewatkan beberapa argumen masuk dan keluar dari fungsi melalui satu argumen
- Struktur data seperti daftar tertaut, pohon biner, dan lainnya
Contoh paling dasar dari struktur adalah titik, yang merupakan entitas tunggal yang berisi dua variabel - x dan y. Mari kita definisikan sebuah titik:
struct point {
int x;
int y;
};
Sekarang, mari kita definisikan titik baru, dan gunakan. Asumsikan fungsi draw menerima titik dan menggambarnya di layar. Tanpa struct, penggunaannya akan memerlukan dua argumen - masing-masing untuk setiap koordinat:
/* menggambar titik di 10, 5 */
int x = 10;
int y = 5;
draw(x, y);
Menggunakan struct, kita bisa melewatkan argumen titik:
/* menggambar titik di 10, 5 */
struct point p;
p.x = 10;
p.y = 5;
draw(p);
Untuk mengakses variabel titik, kita menggunakan operator titik ..
Typedef
Typedef memungkinkan kita untuk mendefinisikan tipe dengan nama yang berbeda - yang bisa sangat berguna ketika berurusan dengan struct dan pointer. Dalam kasus ini, kita ingin menghilangkan definisi panjang dari struktur titik. Kita bisa menggunakan sintaks berikut untuk menghapus kata kunci struct dari setiap kali kita ingin mendefinisikan titik baru:
typedef struct {
int x;
int y;
} point;
Ini akan memungkinkan kita untuk mendefinisikan titik baru seperti ini:
point p;
Struktur juga bisa menyimpan pointer - yang memungkinkan mereka menyimpan string, atau pointer ke struktur lain juga - yang merupakan kekuatan sejati mereka. Sebagai contoh, kita bisa mendefinisikan struktur kendaraan dengan cara berikut:
typedef struct {
char * brand;
int model;
} vehicle;
Karena brand adalah pointer char, tipe vehicle bisa berisi string (dalam hal ini, menunjukkan merek kendaraan).
vehicle mycar;
mycar.brand = "Ford";
mycar.model = 2007;
Tabel Komponen Struktur dalam C
| Komponen | Deskripsi | Contoh |
|---|---|---|
| struct | Mendeklarasikan struktur | struct name { ... }; |
| typedef | Membuat alias untuk tipe data | typedef struct { ... } name; |
| Akses anggota | Mengakses elemen struktur | struct_var.member |
| Pointer ke anggota | Mengakses elemen lewat pointer | ptr->member |
---EXERCISE---
Latihan: Membuat Struktur Orang
Definisikan struktur data baru, bernama "person", yang berisi string (pointer ke char) bernama name, dan integer bernama age.
Requirements:
- Buat struktur person dengan dua anggota
- Gunakan pointer char untuk name
- Gunakan integer untuk age
- Gunakan typedef untuk membuat alias
Expected Output:
John is 27 years old.
Try writing your solution in the code editor below!
---EXPECTED_OUTPUT--- John is 27 years old. ---END_EXPECTED_OUTPUT---
---INITIAL_CODE--- #include <stdio.h>
/* definisikan struct person di sini menggunakan sintaks typedef */
int main() {
person john;
/* kode pengujian */
john.name = "John";
john.age = 27;
printf("%s is %d years old.", john.name, john.age);
}
---END_INITIAL_CODE---
---SOLUTION_CODE--- #include <stdio.h>
typedef struct {
char * name;
int age;
} person;
int main() {
person john;
/* kode pengujian */
john.name = "John";
john.age = 27;
printf("%s is %d years old.", john.name, john.age);
}
---END_SOLUTION_CODE---