Lompat ke isi

Elixir (bahasa pemrograman)

Ensiklopedia Pengetahuan Universitas Islam Sultan Agung
Revisi sejak 23 Agustus 2026 03.08 oleh Maintenance script (bicara | kontrib) (Presentation V4: sitasi, referensi, Math, Wikimedia Commons, dan atribusi)
(beda) ← Revisi sebelumnya | Revisi terkini (beda) | Revisi selanjutnya → (beda)

Elixir adalah sebuah bahasa pemrograman fungsional, konkuren dan untuk berbagai keperluan yang berjalan dalam Mesin Virtual bahasa Erlang.[1][2] Elixir dibuat berdasarkan bahasa Erlang dan memiliki abstraksi yang sama dalam membangun aplikasi yang terdistribusi dan toleran atas kesalahan. Elixir juga menyediakan perkakas yang productif dan desain yang mudah dikembangkan. Kemudahan pengembangan tersebut diwujudkan melalui meta-programming saat proses kompilasi dengan makro dan polimorfisme dengan protokol-protokolnya.[3] Proses-proses di Elixir diawasi oleh sebuah Supervisor yang apabila terjadi satu proses yang gagal maka akan dibangkitkan proses baru sehingga tidak mengakibatkan kegagalan yang menggangu seluruh sistem, inilah keunggulan toleran atas kesalahan yang dimiliki oleh Elixir. Proses-proses seperti ini bisa mencapai jutaan proses dalam satu waktu.

telah digunakan bebrapa perusahaan semacam E-MetroTel, Pinterest[4] dan Moz.[5] Elixir juga digunakan entuk mengembangkan situs web, oleh perusahaan seperti Bleacher Report, Discord, dan Inverse,[6] and for building embedded systems.[7][8]

Sejarah

Pembuat bahasa Elixir adalah Jose Valim, Ia memaksudkan bahasa ini untuk dapat memiliki produktivitas dan kemampuan untuk mungkin berkembang yang tinggi pada mesin virtual Erlang dan tetap menjaga kecocokan terhadap ekosistem bahasa Erlang.[9][10]

Fitur-fitur

Contoh-contoh

Sintaksis bahasa Elixir banyak terinspirasi dari bahasa Ruby dan Erlang, sehingga relatif mudah dipahami. Jose Valim sendiri juga diketahui sebagai salah seorang pengguna bahasa Ruby. Berikut adalah contoh-contoh yang dapat dijalankan dalam 'iex shell' maupun disimpan ke dalam sebuah berkas dan dijalankan melalui Terminal dengan mengetikan elixir <filename>.

Contoh klasik program Hello world: <syntaxhighlight lang="iex"> iex> IO.puts("Hello World!") Hello World! </syntaxhighlight>

Komprehensi <syntaxhighlight lang="iex"> iex> for n <- [1,2,3,4,5], rem(n, 2) == 1, do: n*n [1, 9, 25] </syntaxhighlight>

Pencocokan pola (destructuring) <syntaxhighlight lang="iex"> iex> [1, a] = [1, 2] iex> a 2

iex> {:ok, [hello: a]} = {:ok, [hello: "world"]} iex> a "world" </syntaxhighlight>

Pencocokan Pola (Banyak klausul) <syntaxhighlight lang="iex"> iex> case File.read("path/to/file") do iex> {:ok, contents} -> IO.puts("found file: #{contents}") iex> {:error, reason} -> IO.puts("missing file: #{reason}") iex> end </syntaxhighlight>

Operator Pipa <syntaxhighlight lang="iex"> iex> "1" |> String.to_integer() |> Kernel.*(2) 2 </syntaxhighlight>

Modul-modul <syntaxhighlight lang="elixir"> defmodule Fun do

 def fib(0), do: 0
 def fib(1), do: 1
 def fib(n), do: fib(n-2) + fib(n-1)  

end </syntaxhighlight>

Mengembangkan ribuan proses secara sequential. <syntaxhighlight lang=elixir> for num <- 1..1000, do: spawn fn -> IO.puts("#{num * 2}") end </syntaxhighlight>

Melakukan tugas secara tidak selaras (async) <syntaxhighlight lang=elixir> task = Task.async fn -> perform_complex_action() end other_time_consuming_action() Task.await task </syntaxhighlight>

Program-program Elixir yang menonjol

  • Absinthe ialah implementasi GraphQL untuk Elixir
  • Ecto adalah pembungkus basisdata dan query untuk Elixir
  • Mix adalah alat pembangun proyek otomatis untuk proyek-proyek Elixir.
  • Nerves adalah sebuah kerangka kerja dan landasan kerja untuk peranti lunak tertanam.
  • Phoenix adalah kerangka kerja pembangun situs web pada Elixir
  • Plug adalah sebuah spesifikasi dan alat untuk mempermudah dalam membuat modul antara aplikasi-aplikasi web.

Pranala luar

Referensi

Sumber dan atribusi

Konten artikel ini diadaptasi dari Wikipedia bahasa Indonesia, revisi 23218304 (2023-04-05T03:34:38Z), yang tersedia berdasarkan lisensi Creative Commons Atribusi-BerbagiSerupa (CC BY-SA). Mohon gunakan konten ini secara bijak serta sesuai dengan ketentuan lisensi yang berlaku.