Last Updated on August 16, 2021 by
Seperti bahasa pemrograman yang menerapkan object oriented programming atau pemrograman berbasis objek lainnya, dalam bahasa Kotlin juga dikenal dengan istilah enumeration.
Dalam pemrograman, terkadang muncul kebutuhan untuk mengetikan sesuatu hanya untuk menambahkan nilai yang pasti, oleh karena iti konsep enum pun diperkenalkan dan digunakan di berbagai bahasa pemrograman termasuk Kotlin.
Pada bahasan seri Tutorial Kotlin kali ini, Codekey akan membahas tentang enum Kotlin. Jika Anda tertarik dengan pembahasan kali ini, pastikan Anda membaca artikel ini sampai akhir.
Table of Contents
Kotlin Enum Class
Kotlin enum berisikan daftar nama dari konstanta. Enumeration pada kotlin memiliki tipe khusus yang mengindikasikan sesuatu yang memiliki angka atau nilai yang mungkin. Tidak seperti Java, Kotlin enum sendiri berbentuk kelas.
Saat Anda memodelkan data aplikasi Anda, beberapa konsep akan memiliki serangkaian kemungkinan yang terbatas. Contohnya adalah aplikasi yang terdapat fitur dark mode. Dalam kasus seperti ini, Anda mendefinisikan enum dengan dua hal yang telah ditentukan: LIGHT dan DARK. Oleh karena itu tidak akan ada hal lain yang mungkin muncul karena dua kasus tersebut saling terkait.
Ketika Anda memiliki bidang kemungkinan yang terdefinisi dengan baik, enum adalah fitur yang sangat bagus untuk digunakan. Dengan menggunakan Enum, kode Anda memiliki pemeriksaan waktu kompilasi yang mencegah pengembang menggunakan kasus yang tidak ditentukan. Anda tidak dapat mereferensikan mode aplikasi yang disebut COLORFUL jika satu-satunya opsi adalah LIGHT dan DARK.
Karakteristik yang sama membuat enum tidak cocok untuk kumpulan data variabel atau dinamis. Anda tidak dapat mendefinisikan enum saat runtime. Namun di sisi lain, Enum juga lebih baik untuk digunakan sebagai tambahan kinerja, karena Anda tidak perlu membandingkan nilai String.
Berikut ini adalah beberapa hal penting yang harus Anda ketahui tentang Enum Kotlin:
- Konstanta enum bukan hanya kumpulan konstanta tetapi ia juga memiliki properti, metode, dan lain sebagainya.
- Masing-masing konstanta enum Kotlin bertindak sebagai instance terpisah dari kelas dan dipisahkan dengan koma.
- Enum meningkatkan keterbacaan kode Anda dengan menetapkan nama yang telah ditentukan sebelumnya ke konstanta.
- Instance kelas enum tidak dapat dibuat menggunakan konstruktor.
Berikur ini adalah dasar penggunaan enum dari type-safe Enum:
enum class ArahAngin { UTARA, SELATAN, BARAT, TIMUR }
Masing-masing konstanta enum adalah objek dan konstanta enum dipisahkan dengan koma. Kemudian, berikut ini adalah cara mendefinisikan enum Kotlin dengan menggunakan keyword enum di depan suatu kelas seperti ini:
enum class Hari{ MINGGU, SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU }
Menginisialisasi Kotlin Enum
Pada bahasa pemrograman Kotlin, enum juga bisa didapatkan dengam konstruktor seperti Java Enum. Karena konstanta enum adalah turunan dari kelas Enum, konstanta dapat diinisialisasi dengan meneruskan nilai tertentu ke konstruktor utama. Berikut adalah contoh untuk menentukan warna pada card atau kartu:
enum class Kartu(val color: String) { Hearts("green"), Spades("blue"), }
Kita bisa dengan mudah mengakses warna dari kartu dengan menggunakan kode berikut ini:
val view = Kartu.Spades.color
Properti Enum dan Metode
Seperti di Java dan bahasa pemrograman lainnya, kelas enum Kotlin memiliki beberapa properti dan fungsi bawaan yang dapat digunakan oleh programmer. Berikut ini adalah properti dan metode utama.
Properti Kelas Enum
- ordinal: Properti ini menyimpan nilai ordinal dari konstanta, yang biasanya merupakan indeks berbasis nol.
- name: Properti ini menyimpan nama konstanta.
Metode Utama Kelas Enum
- value : Metode ini mengembalikan daftar semua konstanta yang didefinisikan dalam kelas enum.
- valueOf: Metode ini mengembalikan konstanta enum yang ditentukan dalam enum, cocok dengan string input. Jika konstanta, tidak ada di enum, maka IllegalArgumentException dilemparkan.
Kotlin Enum Class dan Fungsinya
Sejak ada enum class di Kotlin, ia pun berfungsi untuk mendefinisikan tipe baru. Tipe kelas ini dapat memiliki properti dan fungsinya sendiri. Properti dapat diberikan nilai default, namun jika tidak diberikan, maka setiap konstanta harus menentukan nilainya sendiri untuk properti tersebut.
Dalam kasus fungsi, mereka biasanya didefinisikan dalam objek pendamping sehingga mereka tidak bergantung pada instance kelas tertentu. Namun, mereka dapat didefinisikan tanpa objek pendamping juga.
Berikut ini adalah contoh cara untuk mendemonstrasikan properti dan fungsi di Kotlin.
enum class Days(val isWeekend: Boolean = false){
SUNDAY, MONDAY, TUESDAY, WEDNESDAY(true), THURSDAY, FRIDAY(true), // Nilai default akan diganti SATURDAY; companion object{ fun today(obj: Days): Boolean { return obj.name.compareTo("WEDNESDAY") == 0 || obj.name.compareTo("FRIDAY") == 0 } } } fun main(){ // Demonstrasi sederhana dari property dan metode for(day in Days.values()) { println("${day.ordinal} = ${day.name} and is weekend ${day.isWeekend}") } val today = Days.THURSDAY; println("apakah hari ini weekend ${Days.today(today)}") } Output 0 = SUNDAY and is weekend false 1 = MONDAY and is weekend false 2 = TUESDAY and is weekend false 3 = WEDNESDAY and is weekend true 4 = THURSDAY and is weekend false 5 = FRIDAY and is weekend true 6 = SATURDAY and is weekend false Is today a weekend false
Enum sebagai Anonymous Class
Konstanta Enum juga berperilaku sebagai kelas anonim dengan mengimplementasikan fungsinya sendiri bersama dengan mengesampingkan fungsi abstrak kelas. Yang paling penting adalah bahwa setiap konstanta enum harus ditimpa. Berikut ini adalah contohnya:
enum class Seasons(var weather: String) { Summer("hot"){ override fun foo() { println("Bulan ini musim panas") } }, Rainy("moderate"){ override fun foo() { println("Bulan ini musim hujan") } }; abstract fun foo() } fun main(args: Array<String>) { Seasons.Rainy.foo() } Output: Bulan ini musim hujan
Kegunaan dari ekspresi when dengan enum class
Sebuah keuntungan besar dari kelas enum di Kotlin ikut ketika mereka dikombinasikan dengan ekspresi when. Keuntungannya adalah karena kelas enum membatasi nilai yang dapat diambil oleh suatu tipe, jadi ketika digunakan dengan ekspresi when dan definisi untuk semua konstanta disediakan, maka kebutuhan klausa else sepenuhnya dihilangkan. Bahkan, hal itu akan menghasilkan peringatan dari kompiler. Berikut ini adalah contohnya:
enum class Hari{ MINGGU, SENIN, SELASA, RABU, KAMIS, JUMAT, SABTU; } fun main(){ when(Hari.KAMIS){ Hari.MINGGU -> println("Minggu") Hari.SENIN -> println("Senin") Hari.SELASA -> println("Selasa") Hari.RABU -> println("Rabu") Hari.KAMIS -> println("Kamis") Hari.JUMAT -> println("Jumat") Hari.SABTU -> println("Sabtu") } } Output: Kamis
Demikianlah penjelasan tentang Kotlin Enum yang harus Anda ketahui untuk digunakan dalam pemrograman Kotlin Anda. Jika Anda tertarik untuk belajar lebih banyak tentang Kotlin maupun pemrograman Android lainnya, simak terus artikel seri tutorial Kotlin yang ada di https://codekey.id/.
Codekey adalah website media pembelajaran bahasa pemrograman. Anda bisa belajar berbagai bahasa pemrograman dari Codekey dan Anda bisa belajar kapan pun dan di mana pun yang Anda inginkan.
Codekey menyediakan berbagai materi, penjelasan, tips, dam trik untuk berbagai bahasa pemrograman seperti Python, JavaScript, dan Kotlin tentunya. Jangan lupa untuk allow notification dari Codekey, agar Anda tidak ketinggalan update artikel terbaru dari situs kami.
Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.