Enum Bahasa C dan Penjelasannya
enum State {Working = 1, Failed = 0};
Keyword 'enum' digunakan untuk mendeklarasikan tipe enumerasi yang baru dari bahass C dan C++. Berikut adalah contoh deklarasi enum, sebagai berikut:
// Nama enum adalah "flag" dan konstanta
// constant1 = 0, constant2 = 1, constant3 = 2, dan seterusnya.
enum flag{constant1, constant2, constant3, ....... };
Varibel tipe enum juga dapat didefinisikan dengan cara yang lain, yaitu:
// Pada dua kondisi kasus, "day"
enum week{Mon, Tue, Wed};
enum week day;
atau
enum week{Mon, Tue, Wed}day;
Contoh:
// Contoh program untuk
// mendemonstrasikan cara
// kerja enum pada bahasa C.
#include<stdio.h>
enum week{Mon, Tue, Wed,
Thur, Fri, Sat, Sun};
int main()
{enum week day;
day = Wed;
printf("%d",day);
return 0;}
Output:2
Pada contoh program sebelumnya, dideklarasikan "day" sebagai sebuah variabel dan nilai "Wed" juga dialokasikan ke "day", dengan nilai sebesar 2. Sebagai hasil, maka nilai 2 akan dicetak pada layar monitor.
Contoh lain dari penggunaan enumerasi bahasa C adalah:
Contoh:
// Contoh lain program bahasa
// C untuk mendemonstrasikan
// cara kerja enum.
#include<stdio.h>
enum year{Jan, Feb, Mar, Apr,
May, Jun, Jul, Aug, Sep, Oct,
Nov, Dec};
int main()
{
int i;
for (i=Jan; i<=Dec; i++)
printf("%d ", i);
return 0;}
Output:0 1 2 3 4 5 6 7 8 9 10 11
Pada contoh tersebut, penggunakan for loop akan menjalankan nilai dari i = 0 hingga i = 11, karena awalnya nilai i adalah Jan yaitu 0 dan nilai Des adalah 11.
Fakta menarik tentang inisialisasi enum:
satu, Dua nama enum dapat memiliki nilai yang sama. Contoh, perhatikan potongan kode program bahasa C berikut, 'Failed' dan 'Freezed', akan memiliki nilai yang sama sebesar 0.
Contoh:
#include <stdio.h>
enum State {Working = 1,
Failed = 0, Freezed = 0};
int main()
{
printf("%d, %d, %d",
Working, Failed, Freezed);
return 0;}
Output:1, 0, 0
dua, Jika secara eksplisit tidak ditetapkan nilai ke nama enum, maka kompilator secara default akan menetapkan nilai dimulai dari angka 0. Contoh, perhatikan program bahasa C berikut, dimana sunday akan mendapatkan nilai 0, monday akan mendapatkan nilai 1, dan seterusnya.
Contoh:
#include <stdio.h>
enum day {sunday, monday,
tuesday, wednesday, thursday,
friday, saturday};
int main()
{enum day d = thursday;
printf("The day number stored in d is %d", d);
return 0;}
Output:The day number stored in d is 4
tiga, Dapat dilakukan penetapan nilai ke beberapa nama dalam urutan apapun. Semua nama yang belum mendapatkan nilai akan mendapatkan nilai dari nilai nama sebelumnya ditambah satu.
Contoh:
#include <stdio.h>
enum day {
sunday = 1,
monday,
tuesday = 5,
wednesday,
thursday = 10,
friday,
saturday};
int main()
{
printf("%d %d %d %d %d %d %d",
sunday,
monday,
tuesday,
wednesday,
thursday,
friday,
saturday);
return 0;
}
Output:1 2 5 6 10 11 12
empat, Nilai penugasan ke nama enum harus terdiri dari konstanta integral, diamana nilai tersebut harus dalam jangkauan nilai minimum dari nilai bilangan bulat yang mungkin ke nilai maksimum.
Contoh:
enum state {working, failed};
enum result {failed, passed};
int main() { return 0; }
Contoh: Program 1.
#include <stdio.h>
enum day {
sunday = 1,
tuesday,
wednesday,
thursday,
friday,
saturday};
int main()
{enum day d = thursday;
printf("The day number stored in d is %d", d);
return 0;}
Contoh: Program 2.
#include <stdio.h>
enum State {
WORKING = 0,
FAILED,
FREEZED};
enum State currState = 2;
enum State FindState()
{return currState;}
int main()
{
(FindState() == WORKING)? printf("WORKING"):
printf("NOT WORKING");
return 0;
}
Enum vs Macro
Dapat pula digunakan makro untk mendefinisikan nama konstanta pada Bahasa C, contoh dilakukan pendefinisian nama "Working" dan "Failed" menggunakan suatu makro bahasa C.Contoh:
#define Working 0
#define Failed 1
#define Freezed 2
Ada banyak keuntungan menggunakan enum dibandingkan makro ketika banyak konstanta bernama yang saling berkaitan, yang sama-sama memiliki nilai integral.
- Enums mengikuti aturan scope Bahasa C.
- Variabel enum secara otomatis akan menentukan nilai terhadap variabel yang ditetapkan.
- Operasi Pada Variabel Struct Bahasa C
- Bit Fields Bahasa C Beserta Penjelasannya
- Anggota Array Fleksibel Struct Pada Bahasa C
- Perbedaan Antara Struct dan Union pada Bahasa C
- Perbedaan Struct Bahasa C dan C++
- Anonimus Union dan Struct Bahasa C dan Penjelasannya
- Compound Literals Bahasa C Beserta Penjelasannya
5 komentar untuk "Enum Bahasa C dan Penjelasannya"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Apa yang dimaksud dengan enum pada bahasa C?
BalasHapusEnumeration atau enum pada bahasa C merupakan jenis atau tipe data khusus yang tipenya ditentukan oleh pengguna.
HapusEnum teridir dari integral konstanta atau bilangan bulat yang diberi nama oleh pengguna itu sendiri.
HapusApa fungsi dari penggunaan enum bahasa C?
BalasHapusPenggunaan enum dalam Bahasa C adalah untuk menamai suatu nilai integer yang membuat seluruh program mudah untuk dipelajari, dipahami, dan dikelola oleh programmer yang sama atau yang berbeda.
Hapus