Elixir adalah bahasa pemrograman fungsional dan dinamis yang berjalan di atas Virtual Machine (VM) Erlang. Elixir dibuat oleh José Valim, seorang programmer asal Brasil, pada tahun 2011. Elixir memiliki sintaks yang lebih mudah dibaca dan dipahami dibandingkan dengan bahasa Erlang, namun tetap dapat memanfaatkan kekuatan dan keandalan yang sudah teruji dari Erlang untuk aplikasi berskala besar.
Apa itu Elixir?
Elixir merupakan bahasa pemrograman yang menekankan pada konsep-konsep seperti immutable data, pure functions, dan concurrency. Immutable data berarti data yang tidak dapat diubah setelah dibuat, sehingga dapat menghindari bug dan kesalahan yang disebabkan oleh perubahan data yang tidak terkontrol. Pure functions berarti fungsi yang tidak memiliki efek samping, yaitu tidak mengubah data atau state di luar ruang lingkupnya, sehingga dapat meningkatkan keterbacaan dan kemudahan pengujian kode. Concurrency berarti kemampuan untuk mengeksekusi banyak proses secara bersamaan, sehingga dapat meningkatkan performa dan skalabilitas aplikasi.
Elixir juga menyediakan fitur-fitur seperti macros, yang memungkinkan penulisan kode yang lebih tersusun dan terstruktur. Macros adalah sebuah mekanisme yang dapat mengubah kode Elixir menjadi kode Elixir lainnya, sebelum kode tersebut dieksekusi oleh VM Erlang. Dengan macros, kita dapat membuat abstraksi dan ekstensi bahasa yang sesuai dengan kebutuhan kita.
Salah satu kelebihan utama dari Elixir adalah kemampuannya dalam menangani concurrency dengan baik. Hal ini disebabkan karena Elixir menggunakan sistem actor model seperti yang digunakan oleh Erlang. Dengan actor model, Elixir dapat dengan mudah membuat dan mengelola proses-proses paralel yang saling terkait, namun tetap terisolasi satu sama lain. Elixir juga memiliki kemampuan untuk mengakses library dan fitur-fitur dari Erlang, sehingga developer dapat memanfaatkan kekuatan dan keandalan yang sudah teruji dari Erlang untuk aplikasi yang dibuat dengan Elixir.
Elixir sangat cocok untuk digunakan dalam pengembangan aplikasi yang membutuhkan concurrency tinggi, seperti aplikasi yang menangani banyak koneksi secara bersamaan, atau aplikasi yang memerlukan pemrosesan data dalam jumlah besar. Elixir juga dapat digunakan untuk pengembangan aplikasi web, game, dan aplikasi lainnya.
Cara Menginstall Elixir
Menginstall Elixir pada perangkat kita sangatlah mudah. Kita cukup mengikuti petunjuk penginstallan yang tertera pada dokumentasi resmi Elixir. Namun, apabila kita belum berniat untuk melakukan instalasi Elixir, kita tidak perlu khawatir karena kita dapat menggunakan online editor untuk mencoba kode Elixir secara langsung.
Setelah kita berhasil melakukan instalasi Elixir, silahkan buka terminal kita lalu ketikkan iex
. Setelah itu, akan muncul shell interaktif seperti berikut ini.
Erlang/OTP 24 [erts-12.0.3] [source] [64-bit] [smp:8:8] [ds:8:8:10] [async-threads:1] [jit]
Interactive Elixir (1.12.2) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
Sekarang, mari kita coba untuk mengeksekusi kode berikut ini dengan cara mengetikkannya pada shell lalu menekan enter.
iex(1)> IO.puts "Hello World!"
Hello World!
:ok
Hasilnya akan terlihat seperti ini:
Hello World!
:ok
Selamat! Kita baru saja berhasil menjalankan kode Elixir pertama kita.
Dasar-Dasar Elixir
Selanjutnya, kita akan mempelajari dasar-dasar dari Elixir, khususnya bagian tipe data dan juga struktur data bawaan.
Tipe Data
Pada Elixir, tipe data terbagi menjadi integer, float, boolean, atom, dan string.
iex(2)> 1 # integer
1
iex(3)> 1.0 # float
1.0
iex(4)> true # boolean
true
iex(5)> :atom # atom
:atom
iex(6)> "elixir" # string
"elixir"
Integer adalah tipe data yang merepresentasikan bilangan bulat, seperti 1, 2, 3, dan seterusnya. Float adalah tipe data yang merepresentasikan bilangan pecahan, seperti 1.0, 2.5, 3.14, dan seterusnya. Boolean adalah tipe data yang merepresentasikan nilai kebenaran, yaitu true atau false. Atom adalah tipe data yang merepresentasikan sebuah konstanta yang memiliki nama sama dengan nilainya, seperti :atom, :ok, :error, dan seterusnya. String adalah tipe data yang merepresentasikan sebuah kumpulan karakter yang diapit oleh tanda kutip, seperti “elixir”, “hello”, “world”, dan seterusnya.
Struktur Data
Pada Elixir, struktur data bawaan yang paling umum digunakan adalah list, tuple, map, dan keyword list.
iex(7)> [1, 2, 3] # list
[1, 2, 3]
iex(8)> {1, 2, 3} # tuple
{1, 2, 3}
iex(9)> %{a: 1, b: 2, c: 3} # map
%{a: 1, b: 2, c: 3}
iex(10)> [a: 1, b: 2, c: 3] # keyword list
[a: 1, b: 2, c: 3]
List adalah struktur data yang merepresentasikan sebuah koleksi data yang berurutan, yang dapat berisi data dengan tipe apapun, seperti [1, 2, 3], [“a”, “b”, “c”], atau [1, “a”, true]. List diapit oleh tanda kurung siku, dan elemen-elemennya dipisahkan oleh koma. List dapat diakses dan dimodifikasi secara efisien dari ujung depan, namun tidak dari ujung belakang.
Tuple adalah struktur data yang merepresentasikan sebuah koleksi data yang berurutan, yang dapat berisi data dengan tipe apapun, seperti {1, 2, 3}, {“a”, “b”, “c”}, atau {1, “a”, true}. Tuple diapit oleh tanda kurung biasa, dan elemen-elemennya dipisahkan oleh koma. Tuple dapat diakses secara efisien dari indeks apapun, namun tidak dapat dimodifikasi setelah dibuat.
Map adalah struktur data yang merepresentasikan sebuah koleksi data yang tidak berurutan, yang berisi pasangan-pasangan key dan value, seperti %{a: 1, b: 2, c: 3}, %{“a” => 1, “b” => 2, “c” => 3}, atau %{1 => “a”, 2 => “b”, 3 => “c”}. Map diawali dengan tanda persen, dan pasangan-pasangan key dan value diapit oleh tanda kurung kurawal, dan dipisahkan oleh koma. Key dan value dapat berupa data dengan tipe apapun. Map dapat diakses dan dimodifikasi secara efisien dari key apapun.
Keyword list adalah struktur data yang merepresentasikan sebuah koleksi data yang berurutan, yang berisi pasangan-pasangan atom dan value, seperti [a: 1, b: 2, c: 3], [name: “Alice”, age: 20, gender: :female], atau [color: :red, size: :large, shape: :circle]. Keyword list diapit oleh tanda kurung siku, dan pasangan-pasangan atom dan value dipisahkan oleh koma. Keyword list dapat diakses dan dimodifikasi secara efisien dari atom apapun.
Penutup
Demikianlah artikel singkat yang saya buat tentang “Mengenal Bahasa Elixir”. Saya harap artikel ini dapat memberikan gambaran awal tentang apa itu Elixir, bagaimana cara menginstallnya, dan apa saja dasar-dasarnya. Tentu saja, masih banyak hal lain yang dapat dipel