Cara Menggunakan Enums di TypeScript Langkah demi Langkah

Enum dalam TypeScript adalah cara untuk menentukan sekumpulan konstanta bernama yang dapat digunakan untuk mewakili sekumpulan nilai terkait. Enum membuat kode lebih mudah dibaca dan dipelihara dengan memberi nama yang mudah dipahami pada nilai-nilai ini. Panduan ini akan memandu Anda menggunakan enum dalam TypeScript langkah demi langkah, meliputi jenis, manfaat, dan contoh praktisnya.

Apa itu Enum?

enum (kependekan dari "enumeration") adalah tipe data khusus dalam TypeScript yang memungkinkan Anda menentukan sekumpulan konstanta bernama. Konstanta bernama ini dapat mewakili nilai numerik atau string, membuat kode Anda lebih deskriptif dan tidak mudah salah.

Jenis-jenis Enum dalam TypeScript

Ada tiga jenis enum di TypeScript:

  • Enum numerik
  • Enum String
  • Enum Heterogen

Enum numerik

Enum numerik adalah nilai default dalam TypeScript. Enum numerik adalah sekumpulan nilai bernama yang secara otomatis diberi nilai numerik mulai dari 0, atau dari nilai awal kustom jika ditentukan.

Contoh Enum Numerik Dasar

Berikut ini adalah contoh sederhana enum numerik:

enum Direction {
  Up,
  Down,
  Left,
  Right
}

let move: Direction = Direction.Up;
console.log(move); // Output: 0

Dalam contoh ini, enum Direction memiliki empat anggota: Up, Down, Left, dan Right. Secara default, Up diberi nilai 0, Down adalah 1, dan seterusnya. Anda juga dapat menentukan nilai numerik khusus untuk anggota tersebut.

Enum Numerik dengan Nilai Kustom

Anda dapat menetapkan nilai khusus ke anggota enum:

enum Status {
  New = 1,
  InProgress,
  Done = 5,
  Cancelled
}

console.log(Status.New); // Output: 1
console.log(Status.InProgress); // Output: 2
console.log(Status.Done); // Output: 5
console.log(Status.Cancelled); // Output: 6

Dalam contoh ini, Baru ditetapkan ke 1, SedangDiproses ditetapkan secara otomatis ke 2, Selesai ditetapkan ke 5, dan Dibatalkan ditetapkan secara otomatis ke 6.

Enum String

Enum string merupakan tipe enum lain yang tiap anggotanya diinisialisasi dengan literal string, sehingga lebih mudah dibaca dan di-debug.

Contoh Enum String Dasar

Berikut ini adalah contoh string enum:

enum Direction {
  Up = "UP",
  Down = "DOWN",
  Left = "LEFT",
  Right = "RIGHT"
}

let move: Direction = Direction.Left;
console.log(move); // Output: "LEFT"

Dalam contoh ini, setiap anggota enum diinisialisasi dengan nilai string. Tidak seperti enum numerik, enum string tidak memiliki nilai yang bertambah secara otomatis.

Enum Heterogen

Enum heterogen adalah enum yang berisi anggota string dan numerik. Meskipun memungkinkan untuk mendefinisikannya, hal ini umumnya tidak direkomendasikan karena dapat menyebabkan kebingungan dan kesalahan dalam kode.

Contoh Enum Heterogen

Berikut ini adalah contoh enum heterogen:

enum MixedEnum {
  Yes = "YES",
  No = 0,
  Maybe = 1
}

console.log(MixedEnum.Yes); // Output: "YES"
console.log(MixedEnum.No); // Output: 0

Dalam contoh ini, MixedEnum berisi nilai string dan numerik. Gunakan enum tersebut dengan hati-hati karena dapat menyebabkan kebingungan.

Kasus Penggunaan Enum

Enum berguna dalam berbagai skenario:

  • Mewakili serangkaian konstanta terkait seperti arah (Atas, Bawah, Kiri, Kanan).
  • Menentukan status pada mesin status (Baru, Sedang Berlangsung, Selesai, Dibatalkan).
  • Menggunakannya dalam pernyataan switch-case agar lebih mudah dibaca.

Enum dalam Contoh Switch-Case

Penggunaan enum dalam pernyataan switch-case meningkatkan keterbacaan kode dan membuatnya lebih mudah dalam mengelola status.

enum Status {
  New,
  InProgress,
  Done,
  Cancelled
}

function getStatusMessage(status: Status): string {
  switch (status) {
    case Status.New:
      return "The task is new.";
    case Status.InProgress:
      return "The task is in progress.";
    case Status.Done:
      return "The task is completed.";
    case Status.Cancelled:
      return "The task is cancelled.";
    default:
      return "Unknown status.";
  }
}

console.log(getStatusMessage(Status.InProgress)); // Output: "The task is in progress."

Dalam contoh ini, pernyataan switch-case lebih mudah dibaca dan lebih kecil kemungkinannya mengalami kesalahan, berkat penggunaan enum.

Kesimpulan

Enum dalam TypeScript menyediakan cara yang ampuh untuk mendefinisikan sekumpulan konstanta bernama, yang meningkatkan keterbacaan kode dan keamanan tipe. Dengan menggunakan enum numerik, string, atau bahkan heterogen, Anda dapat mengelola dan mengatur kode dengan lebih baik. Dengan panduan langkah demi langkah ini, Anda sekarang akan merasa nyaman menggunakan enum dalam TypeScript untuk membuat kode Anda lebih bersih dan lebih mudah dikelola.