Aturan Penggunaan Enum Java Dengan Nilai Kostumisasi
- Definisi Enum: Untuk mendefinisikan Enum dengan nilai konstumisasi, gunakan kata kunci enum. Enum dapat didefinisikan di dalam atau di luar kelas.
- public enum JenisKelamin { PRIA, WANITA; }
- Nilai Enum Harus Konstan: Nilai dalam Enum harus berupa konstan dan tidak dapat diubah setelah didefinisikan. Ini berarti Enum bersifat final dan nilainya tetap sepanjang waktu.
- /* Nilai konstumisasi di dalam Enum */ public enum Hari { SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU, MINGGU; }
- Nilai Enum sebagai Objek: Nilai dalam Enum sebenarnya adalah objek. Setiap nilai Enum adalah instance dari tipe Enum yang didefinisikan.
- JenisKelamin jenisKelamin = JenisKelamin.PRIA;
- Menggunakan Constructor Enum: Enum dapat memiliki constructor. Setiap nilai Enum dapat diinisialisasi dengan parameter yang didefinisikan dalam constructor Enum.
- public enum Warna {
- MERAH("#FF0000"), HIJAU("#00FF00"), BIRU("#0000FF");
- private String kodeWarna;
- Warna(String kodeWarna) { this.kodeWarna = kodeWarna; }
- public String getKodeWarna() { return kodeWarna; }
- }
- Menggunakan Metode dalam Enum: Enum dapat memiliki metode. Setiap nilai Enum dapat memiliki implementasi metode sesuai dengan kebutuhan.
- public enum Hari {
- SENIN(1), SELASA(2), RABU(3), KAMIS(4), JUMAT(5), SABTU(6), MINGGU(7);
- private int urutan;
- Hari(int urutan) { this.urutan = urutan; }
- public int getUrutan() { return urutan; }
- }
- Membandingkan Nilai Enum: Enum values dapat dibandingkan menggunakan operator == karena setiap nilai Enum bersifat unik dan merupakan objek.
- JenisKelamin jenis1 = JenisKelamin.PRIA;
- JenisKelamin jenis2 = JenisKelamin.WANITA;
- if (jenis1 == jenis2) { /* Operasi jika jenis1 dan jenis2 sama */ }
- Switch Statement pada Enum: Switch statement dapat digunakan dengan nilai Enum. Ini meningkatkan keterbacaan kode dan memastikan bahwa semua nilai Enum telah ditangani.
- public enum Hari { SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU, MINGGU; }
- public void tampilkanAktivitas(Hari hari) { switch (hari) {
- case SENIN: System.out.println("Bekerja"); break;
- case SABTU:
- case MINGGU: System.out.println("Libur"); break;
- default: System.out.println("Belum ditentukan");
- }}
Pada contoh sebelumnya dapat dilihat enum Fruits yang memiliki tiga anggota yaitu APPLE, BANANA, dan GRAPES beserta nilai kostumisasinya masing-masing, yaitu RED, YELLOW, dan GREEN.
- Parameter constructor harus dibuat terlebih dahulu untuk class enum. Kenapa? Karena objek class enum tidak dapat dibuat secara eksplisit sehingga untuk inisialisasinya harus menggunakan parameter constructor. Constructor tidak bisa dideklarasikan secara public atau protected, tetapi harus dalam bentuk private atau default modifier, karena jika dibuat dalam modifier public atau protected, artinya constructor memberi enum izin untuk diakses lebih dari satu object. Hal ini bertentangan dengan konsep enum yang hanya bisa digunakan sebagai satu objek saja.
- Untuk mendapatkan value atau nilai dari enum harus menggunakan method getter.
// Program Java untuk
// mendemonstrasikan bagaimana
// nilai dapat ditetapkan pada
// sebuam enum
enum TrafficSignal
{
// Hanya akan memanggil
// constructor enum sekali
/* String argument */
RED("STOP"), GREEN("GO"),
ORANGE("PELAN");
// dideklarasikan dalam
// private variabel untuk
// mendapatkan nilai atau
// values
private String action;
/* method getter */
public String getAction()
{
return this.action;
}
// enum constructor - tidak
// bisa dibuat dalam public
// atau protected
private TrafficSignal(String action)
{
this.action = action;
}
}
/* Driver code */
public class EnumConstructorExample
{
public static void main(String args[])
{
// cetak hasil dari enum
// beserta nilainya
// masing-masing
/* - Enum values() examples */
TrafficSignal[] signals = TrafficSignal.values();
/* looping */
for (TrafficSignal signal : signals)
{
// gunakan method getter untuk
// mendapatkan nilai enum
System.out.println("name : "
+ signal.name()
+" action: "
+ signal.getAction() );
}
}
}
name: GREEN action: GO
name: ORANGE action: PELAN
Kekurangan Aturan Penggunaan Enum Java Dengan Nilai Konstumisasi
- Keterbatasan Ekstensibilitas: Enum bersifat final, yang berarti tidak dapat di-extend. Jika suatu saat pengembang membutuhkan perluasan dari tipe data Enum, hal ini dapat menjadi kendala.
- Keterbatasan Penanganan Nama yang Sama: Enum tidak dapat memiliki dua nilai dengan nama yang sama. Ini bisa menjadi kendala jika ada kebutuhan untuk memiliki nilai Enum yang sama dalam konteks yang berbeda.
- Keterbatasan pada Kompleksitas Logika Bisnis: Jika Enum diisi dengan logika bisnis yang kompleks atau memiliki banyak metode, ini dapat menyebabkan Enum menjadi terlalu besar dan sulit untuk dikelola.
- Keterbatasan dalam Serialisasi: Enum dalam Java di-serializable secara default, tetapi jika ada kebutuhan untuk mengontrol proses serialisasi, ini dapat menjadi keterbatasan.
- Keterbatasan pada Pemilihan Nilai Dinamis: Enum tidak memungkinkan penggunaan nilai yang dapat diambil atau dimodifikasi secara dinamis selama runtime. Jika ada kebutuhan untuk memilih nilai secara dinamis, ini mungkin tidak cocok dengan Enum.
- Keterbatasan dalam Pengujian Unit: Enum yang memiliki logika bisnis kompleks atau terlalu tergantung pada sumber daya eksternal dapat menyulitkan pengujian unit.
// Enum yang sulit diuji
public enum StatusTransaksi
{
SUKSES {
@Override
public boolean cekStatus() {
// Logika bisnis yang
// tergantung pada database
return cekDatabase();
}},
GAGAL {
@Override
public boolean cekStatus() {
// Logika bisnis yang
// tergantung pada jaringan
return cekJaringan();
}};
public abstract boolean cekStatus();
}
Kesimpulan
- Menggunakan Parameter Tipe Terikat Java dan Fungsinya
- Cara Membuat Program Berulang pada Java Menggunakan Looping
- Statement Pengambil Keputusan Java dan Fungsinya
- Kendala Penggunaan For Each Loop Java dan Solusinya
- Membuat Program Berulang Java Menggunakan For Loop
- Membuat Perintah Keyboard Java Menggunakan Switch Statement
- Membuat Perintah Keyboard Java Menggunakan String Switch Case
5 komentar untuk "Aturan Penggunaan Enum Java Dengan Nilai Kostumisasi"
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 definisi enum pada bahasa pemrograman Java? jelasin dong?
BalasHapusEnum selalu digunakan ketika sebuah variabel, terutama method parameter, hanya dapat memiliki atau mengambil satu nilai dari sekumpulan kecil kemungkinan nilai yang telah terdefinisi.
HapusContoh; variabel tipe konstanta.
Jika menggunakan enum, programmer dapat melakukan peningkatan waktu pemeriksaan kompilasi program dan menghindari kesalahan agar tidak membuat konstanta yang bernilai invalid, serta dapat mendokumentasikan nilai mana dari variabel yang legal untuk digunakan pada program.
Di masa lalu, programmer sering mendefinisikan serangkaian nilai integer konstanta yang akan digunakan untuk mewakili sekumpulan pilihan nilai yang definisinya terbatas. Contoh, dalam merepresentasikan hari dalam satu minggu, maka programmer akan mendeklarasikan tujuah buah variabel dari nama-nama hari tersebut, namun hal tersebut sejalan perkembangan waktu mulai terasa tidak efisien dalam pembuatan nilai variabel ataupun juga nilai konstanta. disamping terlalu memakan banyak bentuk dokumentasi, nilai alokasi memori yang dipakai juga terlalu banyak.
BalasHapusJava mendukung pendekatan yang lebih elegan untuk merepresentasikan pilihan dari himpunan terbatas dengan mendefinisikan apa yang dikenal sebagai tipe data enumerasi, atau disingkat enum. Dengan bentuk tipe deklarasi enum maka variabel hanya diperbolehkan untuk mengambil nilai yang berasal dari sekumpulan nama tertentu dengan nilai yang telah ditentukan pula dan bersifat baku atau tidak dapat diubah.
Apakah class enum dapat memiliki method pada bahasa pemrograman Java?
BalasHapusClass enum dapat menyertakan penggunaan method dan field pada bidang pengoperasiannya seperti halnya class biasa. Saat membuat class enum, kompilator akan membuat instance atau object dari setiap konstanta enum. Selain itu, semua konstanta enum selalu merupakan final static public yang bersifat default.
Hapus