Mengenal fitur bahasa: Tipe Enumerasi

Sebagian orang menganggap bahasa hanya sebagai alat, dan memakai bahasa apapun sama saja. Sebagian lagi fanatik terhadap suatu bahasa, dan menganggap bahasa yang lain itu jelek. Menurut saya yang benar ada di antara keduanya itu. Dalam banyak hal, memakai bahasa apa saja sama saja, tapi dalam kasus tertentu bahasa tertentu lebih baik dari bahasa yang lain.

Memprogram embedded system dalam C akan lebih mudah dibanding dengan menggunakan Pascal misalnya. Penggunaan C dalam embedded system juga menghemat memori, yang akan menghemat biaya produksi alat. Untuk dapat menggunakan suatu bahasa dengan baik, kita perlu mengetahui mengapa fitur tertentu ada di suatu bahasa, dan kapan sebaiknya kita memanfaatkannya.

Dalam kesempatan ini, saya akan membahas penggunakan tipe enumerasi (enum), yang jarang digunakan programmer pemula. Tipe ini banyak diajarkan di berbagai kuliah atau buku, tapi hal yang kurang dibahas adalah mengapa kita sebaiknya memakai tipe enumerasi dibandingkan menggunakan konstanta integer.

Tipe enumerasi adalah tipe di mana nilai yang mungkin disebutkan satu per satu oleh programmer. Misalnya tipe hari yang terdiri dari Senin, Selasa, Rabu, Kamis, Jumat, Sabtu, dan Minggu. Banyak bahasa pemrograman memiliki tipe enumerasi, misalnya C, Pascal, C#, Java 5 ke atas, Ada, dan Visual Basic.


Dalam implementasi, biasanya enumerasi diimplementasikan sebagai tipe data integer. Anda bisa saja membuat tipe hari berupa bilangan integer dengan konstanta (Senin=1, Selasa=2, dst), tapi menggunakan enumerasi bisa membantu membuat program yang lebih jelas.

Pertama, compiler bisa mengingatkan jika kita melakukan operasi aritmatika terhadap tipe enumerasi, tapi compiler tidak akan memperingatkan jika Anda melakukannya terhadap tipe integer. Jika Anda menggunakan pernyataan case/switch, compiler juga akan bisa memperingatkan jika Anda tidak menangani semua kasus enumerasi. Misalnya:

switch (hari) {
case SABTU:{
hitung_gaji();
break;
}
case MINGGU:{
pemeriksaan_mesin();
break;
}
}

Compiler bisa memperingatkan bahwa hari-hari lain tidak ditangani dalam blok tersebut. Dalam bahasa tertentu (Java misalnya), tipe enumerasi ketika dicetak akan menghasilkan representasi string dari enumerasi, dan bukan sebuah angka.
Bacaan lebih lanjut: http://en.wikipedia.org/wiki/Enumerated_type

Leave a Reply

Your email address will not be published. Required fields are marked *