Di Golang Tidak Ada Class Enum : Lalu Bagaimana Solusinya ?

Table of Contents
Di Golang Tidak Ada Class Enum : Lalu Bagaimana Solusinya

Golang atau biasa di sebut dengan GO adalah bahasa pemerograman yang di kembangkan oleh google. Bahasa pemerograman ini pertama kali di buat oleh tiga orang yaitu Robert Griesemer, Rob Pike dan Ken Thompson pada tahun 2007 dan release pertamanya pada bulan November tahun 2009. Bahasa pemerograman ini bersifat open source, jadi siapa saja dapat berkontribusi dalam project ini ya. Golang di ciptakan untuk mengatasi kelemahan dari bahasa pemerograman lain seperti java yang membutuhkan waktu compile yang lama. Walaupun begitu, tidak menutup kemungkinan bahasa pemerograman golang juga memiliki beberapa kekurangan di bandingkan java, seperti yang akan kita bahas kali ini adalah class Enum. 

Salah satu ciri khas dari bahasa pemerograman ini adalah ketika kita membuat code di golang mungkin akan terlihat sederhana di bandingkan anda membuat code di java. Jadi mungkin akan cocok jika anda ingin membangun software yang berskala besar. Di karenakan bahasa golang ini juga di pakai oleh beberapa perusahaan besar loh, seperti Google dan Twitter. 

Dalam artikel ini, codedadakan akan membahas mengapa di golang tidak ada class enum ? lalu jika tidak ada, apa solusi yang akan dibuat ? atau bagaimana cara mengimplementasikan class Enum di golang ? 

Apa itu Enum

Ada baiknya sebelum ke inti pembahasan, kita bahas terlebih dahulu tentang apa itu Enum ? Enum merupakan tipe data yang khusus dan dapat memungkinkan programmer untuk mendefenisikan sekumpulan konstanta yang di perlukan. Mari kita lihat contoh class enum jika kita menggunakan bahasa pemerograman java. 

public enum AccountStatus {
    ACTIVE,
    INACTIVE
}

Bisa kita lihat pada contoh code java di atas bahwa AccountStatus sebagai class enum hanya dapat memiliki 2 buah nilai yaitu ACTIVE dan INACTIVE. 

Class enum tersebut dapat di gunakan agar code yang dibuat akan semakin jelas ketika ada dev baru yang join ke dalam team kita. dan pastinya jika kita menggunakan class enum, maka akan mencegah kesalahan pemberian nilai yang tidak valid pada sebuah object. 

Kenapa Golang Tidak Memiliki Class Enum ? 

Perlu di ketahui bahwa di bahasa pemerograman golang, class di representasikan sebagai struct yaa. dan perlu di ketahui juga bahwa bahasa pemerograman golang sangat berfokus pada kesederhanaan dan efisiensi. 

Salah satu alasan kenapa golang tidak memiliki Enum adalah untuk menghindari dari kerumitan tambahan dalam bahasa golang itu sendiri. yaa mungkin karena defenisi filosofi golang itu sendiri yang sangat berfokus pada kesederhanaan code.  Jadi meskipun tidak ada enum, tetapi golang sendiri menyediakan cara agar developer golang dapat mengimplementasikan penggunaan enum dalam code nya. Berikut adalah beberapa solusi yang dapat di gunakan jika ingin menggunakan enum di golang. 

Solusi Enum di Golang

Berikut contoh code solusi yang biasa saya gunakan jika ingin mengimplementasikan enum class pada bahasa pemerograman golang.

package enum

type RecordStatusEnum string

const (
	ACT      RecordStatusEnum = "ACT"
	INACTIVE RecordStatusEnum = "INACTIVE"
)

func GetValueEnumRecordStatus(r RecordStatusEnum) string {
	switch r {
	case ACT:
		return "Active"
	case INACTIVE:
		return "Inactive"
	}
	return ""
}

Dalam contoh ini, RecordStatusEnum digunakan untuk merepresentasikan nilai tetap dengan tipe string. Fungsi GetValueEnumRecordStatus memberikan deskripsi yang lebih human-readable berdasarkan nilai enum.  Anda juga bisa menggunakan iota agar setiap nilai konstanta akan menghasilkan nilai unik yang akan di berikan oleh iota. 

Meskipun Bahasa pemerograman golang tidak memiliki class enum seperti halnya pada bahasa pemerograman java, akan tetapi ada solusi lain yang cukup fleksibel untuk memenuhi kebutuhan anda jika ingin menggunakan enum di golang. Dengan menggunakan konstanta, tipe data khusus, atau string, anda dapat menciptakan solusi yang mungkin lebih efisien di banding kan dengan bahasa pemerograman lain. 

Tapi jika anda tertarik untuk menghadirkan enum di dalam bahasa pemerograman golang, mungkin anda bisa memberikan kontribusi ke dalam project tersebut, mengingat bahasa pemerograman golang itu sendiri adalah bahasa yang open soure. 

Atau jika anda mempunyai cara lain untuk membuat enum di golang, jangan sungkan untuk berdiskusi di dalam kolom komentar yah. Terima Kasih. 

Posting Komentar