0Pricing
C Academy · Pelajaran

Nilai dan Rentang Enum

Kendalikan bilangan bulat yang mendasarinya.

Nilai dan Rentang Enum adalah pelajaran C Academy gratis di CoddyKit. Ini adalah pelajaran 2 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.

Menetapkan Nilai Eksplisit

Anda tidak terikat pada urutan bawaan 0, 1, 2. Anda dapat menetapkan integer apa pun pada sebuah nama menggunakan =.

Ini berguna ketika angka harus sesuai dengan sistem eksternal, seperti kode status HTTP.

enum Http { OK = 200, NOT_FOUND = 404, ERROR = 500 };

Mencetak Nilai Khusus

Setelah ditetapkan, angka yang persis tersebutlah yang disimpan dan dicetak.

Di sini, nama enum dipetakan langsung ke kode HTTP standar.

#include <stdio.h>
enum Http { OK = 200, NOT_FOUND = 404, ERROR = 500 };
int main(void) {
    printf("%d %d\n", OK, NOT_FOUND);
    return 0;
}

Mencampur Nilai Eksplisit dan Bawaan

Jika Anda menetapkan beberapa nilai dan membiarkan yang lain kosong, setiap nama yang kosong melanjutkan penghitungan dari nilai sebelumnya.

Jadi, nama tepat setelah = 10 menjadi 11, lalu 12, dan seterusnya.

#include <stdio.h>
enum N { A = 10, B, C, D = 100, E };
int main(void) {
    printf("%d %d %d %d %d\n", A, B, C, D, E);
    return 0;
}

Dimulai dari Satu

Trik yang umum adalah menjadikan nilai pertama 1, bukan 0, sehingga penomorannya sesuai dengan penghitungan manusia.

Di sini MON bernilai 1, sehingga hari-hari berjalan dari 1 hingga 7.

#include <stdio.h>
enum Day { MON = 1, TUE, WED, THU, FRI, SAT, SUN };
int main(void) {
    printf("%d %d\n", MON, SUN);
    return 0;
}

Nilai Duplikat Diperbolehkan

Dua nama enum dapat berbagi nilai integer yang sama. C tidak mengharuskan nilainya unik.

Hal ini terkadang digunakan untuk membuat alias bagi konsep yang sama.

#include <stdio.h>
enum Color { RED = 1, CRIMSON = 1, BLUE = 2 };
int main(void) {
    printf("%d %d\n", RED, CRIMSON);
    return 0;
}

Nilai Negatif

Nilai enum juga dapat negatif. Nilai tersebut merupakan integer bertanda.

Ini dapat menyatakan kode error di bawah nol bersama rentang netral atau positif.

#include <stdio.h>
enum Temp { COLD = -1, NORMAL = 0, HOT = 1 };
int main(void) {
    printf("%d %d %d\n", COLD, NORMAL, HOT);
    return 0;
}

Trik Sentinel COUNT

Jika Anda mencantumkan item mulai dari 0 dan menambahkan satu nama terakhir, nama terakhir tersebut sama dengan jumlah item.

Trik COUNT ini memberikan ukuran secara otomatis, bahkan setelah Anda menambahkan item baru.

#include <stdio.h>
enum Fruit { APPLE, PEAR, KIWI, FRUIT_COUNT };
int main(void) {
    printf("%d fruits\n", FRUIT_COUNT);
    return 0;
}

Enum sebagai Indeks Array

Karena nilai enum adalah integer, enum sangat cocok digunakan sebagai indeks array.

Jika digabungkan dengan trik COUNT, Anda dapat menentukan ukuran array secara tepat dan mengindeksnya dengan nama yang mudah dibaca.

#include <stdio.h>
enum Fruit { APPLE, PEAR, KIWI, FRUIT_COUNT };
int main(void) {
    int stock[FRUIT_COUNT] = {5, 3, 8};
    printf("%d\n", stock[PEAR]);
    return 0;
}

Tipe yang Mendasari

Dalam C standar, nilai enum disimpan dalam tipe integer yang dipilih kompilator, biasanya int.

Tipe tersebut cukup lebar untuk menampung setiap nilai yang Anda definisikan, sehingga konstanta besar atau negatif tetap dapat disimpan.

#include <stdio.h>
enum Big { SMALL = 0, LARGE = 1000000 };
int main(void) {
    printf("%d\n", LARGE);
    return 0;
}

Tidak Ada Pemeriksaan Rentang Bawaan

C tidak mencegah Anda menetapkan nilai di luar daftar ke variabel enum.

Penetapan di bawah ini berhasil dikompilasi dan dijalankan. Anda bertanggung jawab untuk menjaga agar nilainya tetap valid.

#include <stdio.h>
enum Level { LOW, MID, HIGH };
int main(void) {
    enum Level x = 99;
    printf("%d\n", x);
    return 0;
}

Mengulang pada Suatu Rentang

Ketika enum berjalan dari 0 hingga sentinel COUNT, Anda dapat mengulang setiap nilai dengan for sederhana.

Ini mengiterasi setiap item yang didefinisikan hingga, tetapi tidak termasuk, jumlah tersebut.

#include <stdio.h>
enum Fruit { APPLE, PEAR, KIWI, FRUIT_COUNT };
int main(void) {
    for (int f = APPLE; f < FRUIT_COUNT; f++)
        printf("%d ", f);
    printf("\n");
    return 0;
}

Pemeriksaan Singkat

Analisis nilai enum yang dicampur.

Rangkuman

Anda dapat menetapkan nilai enum secara eksplisit, mencampurnya dengan nilai bawaan, mengulang nilai, dan menggunakan nilai negatif.

Trik sentinel COUNT secara otomatis melacak ukuran daftar, dan enum sangat cocok sebagai indeks array. Ingat: C tidak melakukan pemeriksaan rentang, jadi validasikan nilainya sendiri.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Nilai dan Rentang Enum” gratis?

Ya — teks lengkap “Nilai dan Rentang 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 “Nilai dan Rentang Enum”?

Kendalikan bilangan bulat yang mendasarinya. 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 2 dari 4.

Berapa lama pelajaran “Nilai dan Rentang 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

  1. Mendefinisikan Enum
  2. Nilai dan Rentang Enum
  3. Variabel const
  4. Konstanta #define
← Kembali ke C Academy