Masih Pakai Banyak Const? Saatnya Mengenal Enum di VBA Excel

Apa Itu Enum?

Enum adalah fitur VBA yang digunakan untuk mengelompokkan beberapa konstanta yang saling berkaitan ke dalam satu nama.

Dengan Enum, setiap anggota memiliki nilai numerik yang dapat digunakan di dalam program.

Sintaks dasarnya:

Enum NamaEnum

    Anggota1

    Anggota2

    Anggota3

End Enum

Secara otomatis VBA akan memberikan nilai:

Anggota1 = 0
Anggota2 = 1
Anggota3 = 2

Contoh Enum Sederhana

Enum StatusPesanan

    Diproses

    Dikirim

    Selesai

End Enum

Kemudian digunakan seperti berikut.

Sub Contoh()

    Dim Status As StatusPesanan

    Status = Dikirim

    MsgBox Status

End Sub

Output:

1

Karena Dikirim memiliki nilai 1.


Memberikan Nilai Sendiri

Nilai anggota Enum dapat ditentukan secara manual.

Enum LevelUser

    Admin = 10

    Supervisor = 20

    Staff = 30

End Enum

Sekarang setiap anggota memiliki nilai yang Anda tentukan sendiri.


Menggunakan Enum pada Procedure

Enum JenisKelamin

    LakiLaki

    Perempuan

End Enum

Sub Contoh()

    Dim JK As JenisKelamin

    JK = Perempuan

End Sub

Dengan cara ini, VBA hanya menerima nilai yang berasal dari Enum tersebut.


Studi Kasus

Misalkan sebuah aplikasi memiliki tiga level hak akses.

Enum HakAkses

    Administrator

    Operator

    Tamu

End Enum

Kemudian digunakan pada prosedur.

Sub Login(UserLevel As HakAkses)

    If UserLevel = Administrator Then

        MsgBox "Akses penuh."

    ElseIf UserLevel = Operator Then

        MsgBox "Akses terbatas."

    Else

        MsgBox "Hanya dapat melihat data."

    End If

End Sub

Pemanggilan:

Login Administrator

Kode menjadi jauh lebih mudah dipahami dibanding menggunakan angka seperti:

Login 0

Enum vs Const

Banyak pemula bertanya, kapan menggunakan Const dan kapan menggunakan Enum?

Perbedaannya adalah sebagai berikut.

ConstEnum
Untuk satu nilai tetap Untuk sekumpulan nilai yang saling berkaitan
Berdiri sendiri Dikelompokkan dalam satu tipe
Cocok untuk tarif, batas, atau konfigurasi Cocok untuk status, kategori, level, atau pilihan

Enum vs Integer

Perhatikan dua contoh berikut.

Tanpa Enum.

Dim Status As Integer

Status = 2

Sulit mengetahui arti angka 2.

Menggunakan Enum.

Dim Status As StatusPesanan

Status = Selesai

Kode langsung menjelaskan maksudnya tanpa perlu melihat dokumentasi tambahan.


Menggunakan Enum Bersama Select Case

Enum sangat cocok dipadukan dengan Select Case.

Enum HariKerja

    Senin

    Selasa

    Rabu

End Enum

Sub Jadwal(Hari As HariKerja)

    Select Case Hari

        Case Senin

            MsgBox "Rapat"

        Case Selasa

            MsgBox "Presentasi"

        Case Rabu

            MsgBox "Evaluasi"

    End Select

End Sub

Kesalahan yang Sering Terjadi

Menggunakan Enum untuk Nilai yang Tidak Berkaitan

Kurang tepat.

Enum Data

    Nama

    Pajak

    Berat

    Diskon

End Enum

Setiap anggota sebaiknya mewakili konsep yang saling berkaitan.


Menganggap Enum Menyimpan Teks

Anggota Enum sebenarnya menyimpan nilai numerik, bukan teks.

Misalnya:

Administrator

bukan berarti menyimpan kata Administrator, tetapi nilai numerik yang terkait dengannya.


Menggunakan Angka Langsung

Kurang baik.

Status = 1

Lebih baik.

Status = Dikirim

Kode menjadi lebih mudah dibaca dan dipahami.


Tips Praktis

💡 Gunakan Enum untuk sekumpulan pilihan yang saling berkaitan.

💡 Berikan nama Enum yang menggambarkan isi anggotanya.

💡 Hindari penggunaan angka secara langsung (magic numbers) jika sudah memiliki Enum.

💡 Gunakan Enum bersama Select Case agar logika program lebih jelas.

💡 Jika hanya membutuhkan satu nilai tetap, gunakan Const daripada Enum.


Ringkasan

KonsepFungsi
Enum Mengelompokkan sekumpulan konstanta yang saling berkaitan
Anggota Enum Memiliki nilai numerik
Nilai Default Dimulai dari 0 dan bertambah 1
Nilai Manual Dapat ditentukan sendiri sesuai kebutuhan

Kesimpulan

Enum membantu membuat kode VBA lebih terstruktur dengan mengelompokkan sekumpulan konstanta yang saling berkaitan ke dalam satu tipe data. Dibandingkan menggunakan angka secara langsung atau banyak konstanta terpisah, Enum membuat kode lebih mudah dibaca, mengurangi kesalahan, serta memudahkan proses pengembangan dan pemeliharaan aplikasi VBA yang lebih besar.


Yuk, Praktik!

Latihan 1

Buat Enum bernama StatusPembayaran yang berisi anggota BelumBayar, Lunas, dan Dibatalkan, kemudian gunakan pada sebuah prosedur.


Latihan 2

Buat Enum bernama Prioritas dengan nilai Rendah = 1, Sedang = 2, dan Tinggi = 3. Tampilkan nilai setiap anggota menggunakan MsgBox.


Latihan 3

Gunakan Enum bersama Select Case untuk menampilkan pesan yang berbeda berdasarkan level pengguna (Admin, Operator, dan Guest).

Hubungi Kami

Kantor Berkreasi
Alamat :
Pens Sky Venture - Sukolilo Surabaya
Karangrejo Tmur 17 Surabaya

Email : kantor.berkreasi@gmail.com
WA : wa.me/6287761589881  
(Support  Mbak Ana)

Tim Pengembang

Dr. Rojabi Azharghany, M.Si, S.Sos
Dr. H. Agus Sulthoni Imami, S.Psi. M.Pd.I.
Ali Ishaq, M.Pd.
Didik Rahwiniyanto, S.Si., M.Pd.
Mujiburrohman, M.Pd.
Mohammad Zikky, S.ST, M.T
Amien sawedi, S.Pd.
Didik P Wicaksono, M.Pd.