Mendeklarasikan dan Menggunakan enum
Termasuk bagian Logika dan Alur dalam perjalanan C di Coddy. Pelajaran 56 dari 63.
Sekarang setelah kamu mendefinisikan enum, kamu bisa membuat variabel dengan tipe enum tersebut dan memberinya nilai yang bermakna. Di sinilah enum benar-benar unggul: daripada menggunakan angka yang membingungkan, kamu menggunakan nama yang deskriptif.
Untuk mendeklarasikan variabel dengan tipe enum, kamu menggunakan sintaks yang sama seperti saat mendeklarasikan variabel lainnya:
enum DayOfWeek today;
enum DayOfWeek weekend_day;Kamu kemudian dapat menetapkan nilai ke variabel-variabel ini menggunakan konstanta bernama dari enum-mu:
today = WEDNESDAY;
weekend_day = SATURDAY;Bandingkan ini dengan penggunaan angka mentah: today = 2; dan weekend_day = 5;. Versi enum langsung memberi tahu kamu hari apa yang sedang kamu gunakan, sedangkan angka mengharuskan kamu mengingat arti setiap nilai. Ini membuat kodemu jauh lebih mudah dibaca dan mengurangi kemungkinan terjadinya error.
Tantangan
MudahBuat program C yang menunjukkan cara mendeklarasikan dan menggunakan variabel enum untuk sistem pengelolaan tugas sederhana. Programmu harus:
- Definisikan
enumbernamaTaskStatusdengan konstanta berikut dalam urutan yang persis sama:PENDINGIN_PROGRESSCOMPLETEDCANCELLED
- Di dalam fungsi main:
- Deklarasikan tiga variabel bertipe
enum TaskStatusbernamatask1,task2, dantask3 - Baca tiga bilangan bulat dari input yang mewakili status setiap tugas (0, 1, 2, atau 3)
- Tetapkan nilai enum yang sesuai ke setiap variabel tugas berdasarkan input:
- Jika input bernilai 0, tetapkan
PENDING - Jika input bernilai 1, tetapkan
IN_PROGRESS - Jika input bernilai 2, tetapkan
COMPLETED - Jika input bernilai 3, tetapkan
CANCELLED
- Jika input bernilai 0, tetapkan
- Cetak status setiap tugas menggunakan nilai enum dengan format yang persis seperti ini:
Task 1 status: [numeric_value]Task 2 status: [numeric_value]Task 3 status: [numeric_value]
- Hitung dan cetak jumlah tugas dalam setiap kategori status:
Pending tasks: [count]In progress tasks: [count]Completed tasks: [count]Cancelled tasks: [count]
- Hitung dan cetak jumlah total tugas aktif (tugas yang berstatus
PENDINGatauIN_PROGRESS) dengan format yang persis seperti ini:Active tasks: [count]
- Deklarasikan tiga variabel bertipe
Tantangan ini menunjukkan bagaimana variabel enum membuat kodemu lebih mudah dibaca dengan menggunakan nama yang bermakna, bukan angka mentah. Kamu akan berlatih mendeklarasikan variabel enum, menetapkan nilai enum berdasarkan input, menggunakan konstanta enum dalam perbandingan, dan melakukan perhitungan dengan nilai enum.
Coba sendiri
#include <stdio.h>
// TODO: Definisikan enum TaskStatus di sini
int main() {
// Baca input untuk tiga status tugas
int status1, status2, status3;
scanf("%d", &status1);
scanf("%d", &status2);
scanf("%d", &status3);
// TODO: Deklarasikan tiga variabel enum TaskStatus (task1, task2, task3)
// TODO: Tetapkan nilai enum berdasarkan input
// TODO: Tampilkan status tugas
// TODO: Hitung tugas dalam setiap kategori
// TODO: Hitung dan tampilkan jumlah tugas aktif
return 0;
}Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.
Semua pelajaran di Logika dan Alur
1Dasar-Dasar Pointer
Apa Itu Pointer?Mendeklarasikan PointerOperator Address-Of (&)Operator Dereference (*)Pointer NULLRekap: Dasar-Dasar Pointer4Proyek: Utilitas Teks Sederhana
Gambaran Umum ProyekMenghitung Karakter7Struktur (struct)
Apa Itu struct?Mendeklarasikan structMembuat Variabel structMengakses Anggota structMenginisialisasi structRingkasan: struct Data Siswa10Enum dan typedef
enum untuk Konstanta BernamaMendeklarasikan dan Menggunakan enumenum dalam Pernyataan switchMenggunakan typedef untuk Alias Tipetypedef dengan structRingkasan: Latihan typedef dan enum2Pointer dan array
Nama array sebagai pointerElemen array dan pointerAritmetika pointerMembandingkan pointerRangkuman: Menelusuri array dengan pointer5Pointer dan Fungsi
Penerusan dengan NilaiMeneruskan Pointer ke FungsiMengubah Variabel melalui PointerContoh Klasik: SwapMeneruskan Array ke FungsiRingkasan: Argumen Pointer Fungsi8Struct dan Pointer
Pointer ke StructOperator Panah (->)Mengirim Struct berdasarkan NilaiMengirim Pointer StructAlokasi Dinamis StructUlasan: Memodifikasi Struct dengan Pointer11Tantangan Rangkuman Akhir
Rangkuman: Penggabungan string DinamisRangkuman: array berisi structRangkuman: Penghitung Frekuensi Kata3Array char dan String
String sebagai array charPenanda akhir nullInput String dengan scanfMenggunakan strlen()Menggunakan strcpy()Menggunakan strcat()Menggunakan strcmp()Ulasan: Fungsi String DasarLatihan sendiri: Compiler C online