Mendefinisikan Enum
Buat nilai bernama yang mudah dibaca.
Mendefinisikan Enum adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar C Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus C Academy mencakup 4 pelajaran total.
Apa Itu Enum?
Enumerasi (enum) adalah tipe yang ditentukan pengguna untuk mengelompokkan sekumpulan konstanta integer bernama.
Daripada mengingat bahwa 0 berarti Senin dan 1 berarti Selasa, Anda memberikan nama yang mudah dibaca untuk angka-angka tersebut. Hal ini membuat kode lebih jelas dan mengurangi kemungkinan kesalahan.
Sintaks Dasar
Anda mendeklarasikan enum dengan kata kunci enum, nama tag, dan daftar nama di dalam kurung kurawal.
Setiap nama menjadi konstanta yang dapat digunakan di mana pun sebuah integer diharapkan.
enum Weekday { MON, TUE, WED, THU, FRI };Nilai Bawaan Dimulai dari 0
Secara bawaan, nama pertama bernilai 0, dan setiap nama berikutnya bernilai satu lebih besar daripada nama sebelumnya.
Jadi dalam enum Weekday, MON bernilai 0, TUE bernilai 1, WED bernilai 2, dan seterusnya.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
printf("%d %d %d\n", MON, TUE, WED);
return 0;
}Mendeklarasikan Variabel Enum
Setelah tipe enum tersedia, Anda dapat membuat variabel dengan tipe tersebut.
Variabel tersebut menyimpan salah satu nilai bernama. Pada dasarnya, nilainya hanyalah sebuah int.
#include <stdio.h>
enum Weekday { MON, TUE, WED, THU, FRI };
int main(void) {
enum Weekday today = WED;
printf("today = %d\n", today);
return 0;
}Alasan Enum Meningkatkan Keterbacaan
Bandingkan if (state == 2) dengan if (state == PAUSED).
Versi kedua menjelaskan dirinya sendiri. Enum memungkinkan kompilator melacak makna nilai, sementara Anda membaca nilai bernama yang bersih, bukan angka yang sulit dipahami.
enum Status { RUNNING, PAUSED, STOPPED };Menggunakan Enum dengan switch
Enum berpadu secara alami dengan pernyataan switch. Setiap nilai bernama menjadi label kasus yang jelas.
Ini adalah salah satu penggunaan enum yang paling umum dalam praktik.
#include <stdio.h>
enum Status { RUNNING, PAUSED, STOPPED };
int main(void) {
enum Status s = PAUSED;
switch (s) {
case RUNNING: printf("running\n"); break;
case PAUSED: printf("paused\n"); break;
case STOPPED: printf("stopped\n"); break;
}
return 0;
}Enum Hanyalah Integer
Konstanta enum dapat dipertukarkan dengan integer. Anda dapat melakukan operasi aritmetika dan perbandingan terhadapnya.
Fleksibilitas ini berguna, tetapi juga berarti C tidak akan mencegah Anda menyimpan angka di luar rentang.
#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
enum Level next = LOW + 1;
printf("%d\n", next);
return 0;
}Enum Tanpa Nama
Anda dapat menghilangkan nama tag jika hanya memerlukan konstanta, bukan tipe bernama.
Ini adalah cara cepat untuk mendefinisikan sekelompok konstanta integer yang saling terkait.
#include <stdio.h>
enum { RED, GREEN, BLUE };
int main(void) {
printf("%d %d %d\n", RED, GREEN, BLUE);
return 0;
}Konvensi Penamaan
Berdasarkan konvensi, nama konstanta enum ditulis dalam UPPER_CASE, seperti makro.
Hal ini memberi tahu pembaca bahwa nilainya merupakan konstanta tetap. Nama tag sering menggunakan CamelCase atau PascalCase.
enum TrafficLight { LIGHT_RED, LIGHT_YELLOW, LIGHT_GREEN };Menggabungkan dengan typedef
Menulis enum Weekday di setiap tempat terasa panjang. typedef memungkinkan Anda menggunakan nama yang lebih singkat.
Setelah typedef, Anda dapat mendeklarasikan variabel sebagai Weekday today; tanpa kata kunci enum.
#include <stdio.h>
typedef enum { MON, TUE, WED } Weekday;
int main(void) {
Weekday d = TUE;
printf("%d\n", d);
return 0;
}Cakupan Konstanta Enum
Nama konstanta enum berbagi ruang nama yang sama dengan pengenal biasa dalam cakupannya.
Artinya, dua enum dalam cakupan yang sama tidak boleh menggunakan kembali nama konstanta yang sama. Pilih nama yang berbeda untuk menghindari bentrokan.
enum A { OPEN, CLOSED };
enum B { LOCKED, UNLOCKED };Pemeriksaan Singkat
Uji pemahaman Anda tentang nilai bawaan enum.
Rangkuman
Enum mendefinisikan konstanta integer bernama. Nilai pertama adalah 0 dan setiap nama berikutnya satu lebih besar, kecuali Anda menentukan sebaliknya.
Enum membuat kode lebih mudah dibaca, berpadu baik dengan switch, dan dapat disingkat menggunakan typedef. Selanjutnya, kita akan mempelajari nilai dan rentang khusus.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Mendefinisikan Enum” gratis?
Ya — teks lengkap “Mendefinisikan Enum” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus C Academy, upgrade ke CoddyKit PRO. Kursus C Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Mendefinisikan Enum”?
Buat nilai bernama yang mudah dibaca. Kamu berlatih C Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai C Academy?
Tidak diperlukan pengalaman sebelumnya. C Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Mendefinisikan Enum” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran C Academy ini?
Ya. Setiap pelajaran C Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Mendefinisikan Enum
- Nilai dan Rentang Enum
- Variabel const
- Konstanta #define