Java - Enums: Panduan Untuk Pemula
Halo para programmer Java yang ambisius! Hari ini, kita akan membahas tentang dunia yang menarik dari Java Enums. Jangan khawatir jika Anda belum pernah mendengar tentang mereka sebelumnya – pada akhir tutorial ini, Anda akan menjadi ahli(Enum) expert! Jadi, ambil secangkir minuman kesukaan Anda, dan mari kita mulai!
Pengenalan Enums
Apakah Anda pernah berada di situasi di mana Anda perlu untuk mewakili sekumpulan konstanta yang tetap dalam kode Anda? Mungkin Anda membuat program untuk kafe dan perlu untuk mewakili ukuran kopi yang berbeda. Atau mungkin Anda membuat permainan dan perlu untuk mewakili arah yang berbeda karakter dapat bergerak. Ini adalah saat Enums datang untuk menyelamat!
Enum, singkatan dari "enumeration," adalah jenis kelas khusus di Java yang mewakili sekumpulan konstanta (variabel yang tidak dapat diubah, seperti variabel final). Pahami sebagai cara yang keren untuk membuat sekumpulan nilai yang sudah ditentukan yang tidak berubah.
Deklarasi Kelas
Mari kita mulai dengan melihat bagaimana kita mendeklarasikan Enum. Sintaksnya sangat sederhana:
enum CoffeeSize {
KECIL,
SEDANG,
BESAR
}
Dalam contoh ini, kita telah membuat Enum bernama CoffeeSize
dengan tiga konstanta: KECIL, SEDANG, dan BESAR. Perhatikan bahwa kita menggunakan kata kunci enum
bukannya class
, dan bagaimana setiap konstanta dipisahkan oleh koma.
Konstruktor Kelas
Enums dapat memiliki konstruktor, seperti kelas reguler. Hal ini memungkinkan kita untuk menghubungkan data tambahan dengan setiap konstanta enum. Mari kita memperluas contoh CoffeeSize
kita:
enum CoffeeSize {
KECIL(8),
SEDANG(12),
BESAR(16);
private final int ons;
CoffeeSize(int ons) {
this.ons = ons;
}
public int getOns() {
return ons;
}
}
Dalam versi yang diperbarui ini, kita telah menambahkan konstruktor yang mengambil parameter int
yang mewakili jumlah ons untuk setiap ukuran. Kita juga telah menambahkan field pribadi ons
dan metode getter getOns()
.
Metode Kelas
Enums dapat memiliki metode seperti kelas reguler. Mari kita tambahkan metode ke enum CoffeeSize
kita:
enum CoffeeSize {
KECIL(8),
SEDANG(12),
BESAR(16);
private final int ons;
CoffeeSize(int ons) {
this.ons = ons;
}
public int getOns() {
return ons;
}
public String getDeskripsi() {
return this.name() + " kopi (" + this.ons + " ons)";
}
}
Kita telah menambahkan metode getDeskripsi()
yang mengembalikan string yang menjelaskan ukuran kopi. Metode name()
diwarisi dari kelas Enum
dan mengembalikan nama konstanta sebagai string.
Metode Diwarisi
Semua enums secara implisit diwarisi dari java.lang.Enum
. Ini berarti mereka datang dengan beberapa metode bawaan. Berikut beberapa yang paling sering digunakan:
Metode | Deskripsi |
---|---|
name() |
Mengembalikan nama konstanta enum |
ordinal() |
Mengembalikan posisi konstanta enum (berbasis 0) |
valueOf(String name) |
Mengembalikan konstanta enum dengan nama yang ditentukan |
values() |
Mengembalikan array yang berisi semua konstanta enum |
Contoh
Sekarang, mari kita gabungkan semua di contoh lengkap:
public class CoffeeShop {
public static void main(String[] args) {
CoffeeSize ukuranSaya = CoffeeSize.SEDANG;
System.out.println("Saya memesan " + ukuranSaya.getDeskripsi());
System.out.println("Ukuran ini memiliki nilai ordinal: " + ukuranSaya.ordinal());
System.out.println("\nSemua ukuran yang tersedia:");
for (CoffeeSize ukuran : CoffeeSize.values()) {
System.out.println(ukuran.getDeskripsi());
}
// Menggunakan valueOf
CoffeeSize ukuranLain = CoffeeSize.valueOf("BESAR");
System.out.println("\nMenggunakan valueOf: " + ukuranLain.getDeskripsi());
}
}
enum CoffeeSize {
KECIL(8),
SEDANG(12),
BESAR(16);
private final int ons;
CoffeeSize(int ons) {
this.ons = ons;
}
public int getOns() {
return ons;
}
public String getDeskripsi() {
return this.name() + " kopi (" + this.ons + " ons)";
}
}
Output
Ketika Anda menjalankan program ini, Anda akan melihat output berikut:
Saya memesan SEDANG kopi (12 ons)
Ukuran ini memiliki nilai ordinal: 1
Semua ukuran yang tersedia:
KECIL kopi (8 ons)
SEDANG kopi (12 ons)
BESAR kopi (16 ons)
Menggunakan valueOf: BESAR kopi (16 ons)
Mari kita uraikan apa yang terjadi di contoh ini:
- Kita membuat variabel
CoffeeSize
ukuranSaya
dan mengaturnya keSEDANG
. - Kita mencetak deskripsi
ukuranSaya
menggunakan metodegetDeskripsi()
. - Kita mencetak nilai ordinal
SEDANG
, yang adalah 1 (ingat, nilai ordinal dimulai dari 0). - Kita menggunakan loop for-each untuk mengiterasi melalui semua nilai
CoffeeSize
dan mencetak deskripsinya. - Akhirnya, kita demonstrasikan penggunaan
valueOf()
untuk mendapatkan konstanta enumBESAR
dengan nama itu.
Dan itu sudah! Anda baru saja mengambil langkah pertamamu ke dalam dunia Java Enums. Mereka adalah alat yang kuat untuk mewakili sekumpulan konstanta yang tetap dalam cara yang aman tipe.
Ingat, Enums adalah lebih dari sekadar konstanta yang diperkaya. Mereka dapat memiliki konstruktor, field, dan metode, membuat mereka sangat beragam. Mereka sempurna untuk mewakili hal-hal seperti hari dalam minggu, jenis kartu, ukuran pizza, atau sekumpulan nilai tetap lainnya dalam program Anda.
Sebagai Anda melanjutkan perjalanan Java Anda, Anda akan menemukan banyak penggunaan lagi untuk Enums. Mereka adalah bagian fundamental dari bahasa Java, dan menguasainya akan membuat Anda menjadi programmer yang lebih efektif dan efisien.
Terus latihan, terus coding, dan yang paling penting, terus menikmati proses belajar. Sebelum Anda sadar, Anda akan menulis program Java yang kompleks dengan mudah. Happy coding!
Credits: Image by storyset