Enum #
Sebuah enum merupakan sebuah class khusus yang merepresentasikan sebuah grup dari constants (variable yang tidak dapat diubah, seperti variabel final).
Untuk membuat sebuah enum, gunakan keyword enum (sebagai ganti dari class atau interface), dan pisahkan constants dengan sebuah koma. Contant harus menggunakan huruf kapital. Contoh :
enum Level {
LOW,
MEDIUM,
HIGH
}
Anda bisa mengakses constant enum dengan menggunakan titik ( . ) :
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level variabel = Level.MEDIUM;
System.out.println(variabel);
}
}
Output :
MEDIUM
Enum merupakan kependekan dari “enumerations”, yang berarti “terdaftar secara khusus”.
Enum Dalam Class #
Anda juga bisa memiliki enum di dalam sebuah class. Contoh :
public class Main {
enum Level {
LOW,
MEDIUM,
HIGH
}
public static void main(String[] args) {
Level variabelSaya = Level.MEDIUM;
System.out.println(variabelSaya);
}
}
Akan menghasilkan :
MEDIUM
Enum Dalam Switch #
Enums sering digunakan dalam switch untuk mengecek nilai yang sesuai. Contoh :
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
Level variabelSaya = Level.MEDIUM;
switch(variabelSaya) {
case LOW:
System.out.println("Low Level");
break;
case MEDIUM:
System.out.println("Medium Level");
break;
case HIGH:
System.out.println("High Level");
break;
}
}
}
Akan menghasilkan :
Medium Level
Loop Melalui Enum #
Enum memiliki sebuah method values(), yang akan mengembalikan sebuah array dari semua constant enum. Method ini berguna ketika Anda ingin melakukan iterasi pada constant enum. Contoh :
enum Level {
LOW,
MEDIUM,
HIGH
}
public class Main {
public static void main(String[] args) {
for (Level variabelSaya : Level.values()) {
System.out.println(variabelSaya);
}
}
}
Akan menghasilkan :
LOW
MEDIUM
HIGH
Catatan: iterasi adalah mengakses nilai-nilai yang disimpan pada Collection / Enum satu per-satu
Perbedaan Antara Enum Dan Class #
Enum bisa seperti sebuah class, memiliki atribut dan method. Satu-satunya perbedaan adalah bahwa constant enum adalah public, static, dan final (tidak dapat diubah). Enum tidak dapat dibuat object dan tidak dapat mewarisi (inheritance) class lain (tapi dapat mengimplementasi interface).
Kapan Dan Mengapa Menggunakan Enum?
Gunakan enum ketika Anda memiliki nilai yang Anda tahu tidak akan diubah, seperti bulan, hari, warna, tumpukan kartu, dll.