Enumerated Types

 Bagaimana kita bisa menyimpan banyak nilai konstan di satu tempat dan menanganinya secara bersamaan? Solusinya, Dart menyediakan Enumerated Type, sering disebut Enumerations atau Enums. Enums mewakili kumpulan konstan yang membuat kode kita lebih jelas dan mudah dibaca.

  1. enum Rainbow {
  2.   red, orange, yellow, green, blue, indigo, violet
  3. }
  4.  
  5. enum Weather {
  6.   sunny, cloudy, rain, storm;
  7. }

 Enums pada Dart memiliki beberapa properti bawaan yang dapat kita gunakan untuk menampilkan seluruh nilai dalam bentuk list serta menampilkan item dan indeks dari item tersebut.

Ketika kode di atas dijalankan, maka konsol akan tampil seperti berikut:

  1. [Rainbow.red, Rainbow.orange, Rainbow.yellow, Rainbow.green, Rainbow.blue, Rainbow.indigo, Rainbow.violet]
  2. Rainbow.blue
  3. 1

Semenjak Dart versi 2.15, Enums memiliki properti baru untuk menampilkan nilai String setiap itemnya [3]. Anda dapat gunakan properti .name.

  1. print(Rainbow.blue.name);   // blue

Kita juga bisa menggunakan enums ke dalam switch statements. Namun kita perlu menangani semua kemungkinan nilai enums yang Ada.

Dengan kecanggihan fitur yang disediakan oleh Enums, Dart versi 2.17 rilis dengan fitur baru [4]. Enums mempunyai fitur layaknya kelas yang memiliki attribute dan behaviour. Dengan begitu, kita dapat memberikan variabel ataupun constructor di dalam Enums.

  1. enum Weather {
  2.   sunny(15),
  3.   cloudy(34),
  4.   rain(69),
  5.   storm(83);
  6.  
  7.   final int rainAmount;
  8.  
  9.   const Weather(this.rainAmount);
  10. }

Dengan kehadiran variabel di dalam Enums, kita dapat akses attribute rainAmount dengan cara seperti berikut.

  1. print(Weather.rain.rainAmount);

Selain itu, kita dapat melakukan override method toString(). Dengan begitu, kita dapat mengonversi teks sesuai dengan apa yang diinginkan.

  1. enum Weather {
  2.  
  3.  
  4.   @override
  5. String toString() => "Today's weather forecast is $name with a $rainAmount% chance of rain";
  6. }

Untuk menjalankannya, Anda dapat jalankan perintah berikut.

Apabila ingin melihat sumber dari interactive code di atas, silakan kunjungi tautan berikut.

Selain itu, untuk memperdalam materi mengenai Enumerated Type, Anda dapat membaca tautan berikut.

Popular posts from this blog

Build APK

Web Deployment

Generic