Tipe Data pada Elixir

Pada tulisan sebelumnya kita sudah mengetahui cara install Elixir pada local environment. Kali ini kita akan belajar tentang tipe data apa saja yang terdapat pada bahasa pemrogramman Elixir ini. Kita akan mencoba tipe data tersebut langsung pada Interactive Console dengan mengetik iex pada terminal.

Basic Type Data

1. Boolean: 

iex(1)> true
true

iex(2)> true == false
false

iex(3)> is_boolean(true)
true

iex(4)> is_boolean(1)
false

2. Integer

iex(1)> 1
1

iex(2)> is_integer(1)
true

Operasi pembagian pada integer akan menghasilkan tipe data float

3. Float

iex(1)> 0.1
0.1

iex(2)> is_float(0.1)
true

4. String

Penulisan string harus dengan double quote

iex(1)> "Hello, world!"

# string interpolation
iex(2)> "Hello, #{:Ardian}"
"Hello, Ardian"

# concat string
iex(3)> "Foo" <> " Bar"
"Foo Bar"

# string length
iex(4)> String.length("Hi!")
3

# split
iex(5)> String.split("Hi,Ardian", ",")  
["Hi", "Ardian"]

Atoms

Tipe data atom mirip seperti tipe data symbol pada Ruby.

iex(1)> :ardian
:ardian

Lists

List ditulis dengan square brackets [ ]. Jika kita lihat tipe data list ini mirip dengan tipe data array pada kebanyakan bahasa pemrogramman.

iex(1)> [1, 2, true, 3]
[1, 2, true, 3]

iex(2)> length [1, 2, 3]
3

Multiple list dapat kita gabungkan menjadi satu, atau dapat juga sebuah array kita pecah.

iex(1)> [1, 2, 3] ++ [4, 5, 6]
[1, 2, 3, 4, 5, 6]

iex(2)> [1, true, 2, false, 3, true] -- [true, false]
[1, 2, 3, true]

Tuples

Sama seperti list, tetapi dengan curly brackets { }.

iex(1)> tuple = {:ardian, "bahtiarsyah"}
{:ardian, "bahtiarsyah"}

iex(2)> tuple_size {:ardian, "bahtiarsyah"}
2

iex(3)> elem(tuple, 1)
"bahtiarsyah"

Keyword Lists

Pada dasarnya Keyword List adalah Tuples yang berada pada sebuah List.

iex(1)> list = [{:a, 1}, {:b, 2}]
[a: 1, b: 2]

iex(2)> list == [a: 1, b: 2]
true

Maps

Maps ditulis dengan format key-value dan didefinisikan dengan %{ }.

iex(1)> map = %{:first => "Ardian", :last => "Bahtiarsyah"}
%{:first => "Ardian", :last => "Bahtiarsyah"}

iex(2)> map[:first]
"Ardian"

iex(3)> map[:last]
"Bahtiarsyah"

iex(4)> map[:c]
nil

Jika kita amati, maps ini mirip dengan hash pada Ruby.

Anonymous Functions

Kita dapat mendifinisikan function dengan menggunakan keywords fn dan end

iex(1)> myFunc = fn a, b -> a + b end              
#Function<12.99386804/2 in :erl_eval.expr/5>

# check apakah function dengan 2 argument
iex(2)> is_function(myFunc, 2)
true

iex(3)> is_function(myFunc, 1)
false

# untuk memanggil anonymous function, dengan (dot) antara variable dan parenthesis
iex(4) myFunc.(1, 2)
3

Pada dokumentasi Elixir, Anonymous Function mengacu pada First Class Citizen, maksudnya kita dapat menjadikan Anonymous Functiosebagai argument pada function lain. Seperti contoh diatas is_function(myFunct) akan melakukan pengecekan apakah myFunc adalah function atau bukan.

Elixir juga menyediakan tipe data lain seperti Port,  Reference dan  PID . Tetapi tipe data tersebut biasanya digunakan pada proses komunikasi.

Semoga bermanfaat. (:

Jika menyukai tulisan ini silakan untuk subscribe agar mendapatkan info tulisan terbaru lainnya seputar programming yang tidak kalah menarik.




absyah