Searching...
Saturday, January 19, 2019

Operator Pipa Elixir

Di dalam bahasa pemrograman Elixir, ada sebuah fitur unik yang disebut operator pipa(pipe operator). Apa itu operator pipa? 
Di situs elixir-lang.org, disebutkan bahwa:
It takes the output from the expression on its left side and passes it as the first argument to the function call on its right side.It’s similar to the Unix |operator. Its purpose is to highlight the data being transformed by a series of functions.

Operator pipa Elixir itu mengambil output dari ekspresi yang ada di sebelah kirinya, untuk kemudian diteruskan ke fungsi yang berada di sebelah kanannya. 
Fungsi1 |> Fungsi 2 |> Fungsi 4
Misalkan:
iex > nama = “Hendri L Tobing” 
iex > nama |> String.upcase |> String.split(“I”)|> hd
Keluaran dari operasi di atas adalah sebagai berikut.
"HENDR"

Mengapa bisa demikian? Mari kita telusuri.
Pertama-tama, fungsi String.upcase/1 mengambil nama sebagai argumen.
String.upcase(nama)
Kalaulah ini dijalankan, hasilnya adalah sebagai berikut.
“HENDRI L TOBING”
Selanjutnya, hasilnya digunakan oleh String.split/2 sebagai argumen pertamanya.
String.split(“HENDRI L TOBING”, “I”)
Fungsi tersebut memisahkan string menjadi beberapa bagian, dengan karakter “I” sebagai batasnya. String-string itu kemudian digabungkan menjadi sebuah list.
["HENDR"," L TOB","NG"]

Terakhir, hd adalah fungsi yang mengambil head atau anggota yang berada di ujung paling kiri dari sebuah list. Dalam hal ini, head dari list tadi adalah "HENDR", yang menjadi hasil akhir dari operasi yang tadi dijalankan.
Penggunaan operator pipa ini, tentu lebih nyaman ketimbang memanggil fungsi-fungsi di atas dengan cara klasik, seperti berikut.
hd(String.split(String.upcase(nama), “I”))

0 comments:

Post a Comment

 
Back to top!