Lompat ke konten Lompat ke sidebar Lompat ke footer

Aturan Penggunaan Enum Java Dengan Nilai Kostumisasi

Enum secara otomatis memiliki nilai string-nya sendiri. Programmer dapat menetapkan beberapa nilai modifikasi (kostumisasi) pada enum. Perhatikan contoh berikut ini.

Sebelum mempelajari materi tentang Aturan Penggunaan Enum Java Dengan Nilai Kostumisasi, terlebih dahulu pelajari tentang: Cara Membuat Identifier Java dan Fungsinya, Tipe Data Java dan Fungsinya, dan Cara Menggunakan Enum Java Untuk Membuat Tipe Data Buatan.

Enum (Enumerated) dalam bahasa pemrograman Java adalah tipe data khusus yang digunakan untuk mendefinisikan kumpulan nilai konstan yang dapat diidentifikasi oleh nama. Untuk menggunakan Enum dengan nilai konstumisasi, ada beberapa aturan yang perlu diperhatikan agar implementasi Enum dapat dilakukan secara benar dan efisien. Berikut adalah aturan penggunaan Enum Java dengan nilai konstumisasi:
  • 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");
    • }}

Sintak:
enum  Fruits {APPLE("RED"), BANANA("YELLOW"), GRAPES("GREEN");}

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.

Baca Juga:

Aturan Penggunaan Kode Program Enum:
  • Parameter constructor harus dibuat terlebih dahulu untuk class enumKenapa? Karena objek class enum tidak dapat dibuat secara eksplisit sehingga untuk inisialisasinya harus menggunakan parameter constructorConstructor 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.

Contoh:

// 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() );

}

}

 

}

Output:
name: RED action: STOP
name: GREEN action: GO
name: ORANGE action: PELAN


Kekurangan Aturan Penggunaan Enum Java Dengan Nilai Konstumisasi

Meskipun penggunaan Enum dalam Java dengan nilai konstumisasi memiliki banyak kelebihan, namun ada beberapa kekurangan dan pertimbangan yang perlu diperhatikan. Dalam pengimplementasiannya, aturan penggunaan Enum juga dapat menimbulkan beberapa kekurangan. Berikut adalah beberapa aspek yang perlu dipertimbangkan:
  • 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.

Contoh:

// 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();

}


Penggunaan Enum dalam Java dengan nilai konstumisasi memiliki kelebihan yang signifikan, namun juga membawa beberapa keterbatasan dan pertimbangan. Sebelum memutuskan untuk menggunakan Enum, penting untuk memahami kebutuhan proyek dan mempertimbangkan apakah Enum merupakan pilihan yang tepat dalam konteks tertentu. Pemilihan jenis tipe data harus selalu didasarkan pada kebutuhan spesifik dan sifat dari fitur atau komponen yang sedang dikembangkan.

Kesimpulan

Penggunaan Enum dalam Java dengan nilai konstumisasi dapat membantu menyederhanakan dan meningkatkan keterbacaan kode. Dengan mengikuti aturan-aturan ini, pengembang dapat memanfaatkan fitur Enum secara efisien untuk merepresentasikan nilai-nilai yang bersifat konstan dan terkait. Ini membuat kode lebih jelas, aman, dan mudah dipelihara.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Khairunisa Hanum Hafifah, Khoirul Latif, Merry Puspita Sari, Muhammad Ali Wardhana, dan Muhammad Nizam.

5 komentar untuk "Aturan Penggunaan Enum Java Dengan Nilai Kostumisasi"

  1. Apa definisi enum pada bahasa pemrograman Java? jelasin dong?

    BalasHapus
    Balasan
    1. Enum selalu digunakan ketika sebuah variabel, terutama method parameter, hanya dapat memiliki atau mengambil satu nilai dari sekumpulan kecil kemungkinan nilai yang telah terdefinisi.

      Contoh; 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.

      Hapus
  2. 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.

    Java 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.

    BalasHapus
  3. Apakah class enum dapat memiliki method pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Class 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

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 -