Daftar Isi
- Memulai dan Menulis Ekspresi di IEx
- Membaca Dokumentasi di IEx
- Cara Debugging di IEx
- Keluar dari Sesi IEx atau Menampilkan Opsi Lainnya
- Referensi
Memulai dan Menulis Ekspresi di IEx
Memulai Sesi IEx dan Mengevaluasi Ekspresi
IEx (Interactive Elixir) adalah shell interaktif atau REPL (read–eval–print loop) bawaan Elixir yang memungkinkan kita menjalankan kode secara langsung di terminal. Melalui IEx, kita bisa mengeksplorasi fitur bahasa, membaca dokumentasi, melakukan debugging, dan masih banyak lagi. Karena sudah menjadi bagian dari Elixir, kita tidak perlu menginstal apa pun untuk mulai menggunakannya.
Untuk memulai sesi, cukup jalankan perintah iex
di terminal:
$ iex
Erlang/OTP 26 [erts-14.0] [source] [64-bit] [smp:20:20] [ds:20:20:10]
Interactive Elixir (1.15.0) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)> Di sinilah kita mengetikkan ekspresi Elixir
Saat IEx berjalan, ia menampilkan versi runtime Erlang dan Elixir yang sedang digunakan. Setelah itu, akan muncul prompt iex(1)>
, tempat kita bisa mengetikkan ekspresi. Angka dalam tanda kurung menunjukkan urutan evaluasi ekspresi.
Mari kita coba ekspresi pertama:
iex(1)> 1 + 1 ❶
2 ❷
Penjelasannya:
- ❶ Kita mengetikkan ekspresi
1 + 1
. - ❷ IEx mengevaluasi ekspresi tersebut dan mencetak hasilnya, yaitu
2
.
Di Elixir, hampir semua hal adalah ekspresi yang menghasilkan nilai, termasuk pemanggilan function, if
, case
dan masih banyak lagi.
Ekspresi Multi Baris
IEx juga mendukung penulisan ekspresi dalam beberapa baris:
iex(1)> 2 * ( ❶
...(1)> 3 + 1 ❷
...(1)> ) / 4 ❸
2.0 ❹
Penjelasannya:
- ❶ Kita mulai menulis ekspresi, tetapi belum lengkap karena tanda kurung belum ditutup.
- ❷ Prompt
...(1)>
menunjukkan bahwa ekspresi masih berlanjut ke baris berikutnya. - ❸ Setelah ekspresi lengkap, tekan
Enter
sekali lagi untuk menjalankannya. - ❹ IEx mengevaluasi ekspresi tersebut dan mencetak hasilnya, yaitu
2.0
.
Selama ekspresi belum lengkap, IEx akan terus menunggu input tambahan. Fitur ini berguna ketika kita ingin menulis ekspresi panjang agar lebih rapi dan mudah dibaca.
Membaca Dokumentasi di IEx
IEx menyediakan fitur bantuan untuk membaca dokumentasi langsung dari dalam shell. Untuk memulainya, kita cukup mengetikkan h
:
iex(2)> h
IEx.Helpers
Welcome to Interactive Elixir. You are currently seeing the documentation for
the module IEx.Helpers which provides many helpers to make Elixir's shell more
joyful to work with.
This message was triggered by invoking the helper h(), usually referred to as
h/0 (since it expects 0 arguments).
...... (dan seterusnya)
Perintah ini akan menampilkan dokumentasi dari module IEx.Helpers
, yang berisi berbagai helper untuk mempermudah eksplorasi dan penggunaan IEx.
Kalau ingin melihat dokumentasi sebuah function, misalnya IO.puts
, kita bisa gunakan h
diikuti dengan nama module dan nama function-nya:
iex(3)> h IO.puts
def puts(device \\ :stdio, item)
@spec puts(device(), chardata() | String.Chars.t()) :: :ok
Writes item to the given device, similar to write/2, but adds a newline at the
end.
By default, the device is the standard output. It returns :ok if it succeeds.
## Examples
IO.puts("Hello World!")
#=> Hello World!
...... (dan seterusnya)
Dari output ini, kita bisa melihat type spec (tipe data yang diterima oleh argumen dan nilai kembalian pada suatu function), penjelasan singkat function IO.puts
, nilai kembalian yang diberikan, serta contoh penggunaannya.
Cara Debugging di IEx
Salah satu cara melakukan debug di IEx adalah dengan menggunakan function dbg/1
. Function ini mencetak ekspresi yang dievaluasi beserta hasilnya, lalu menampilkannya di sebelah kanan simbol #=>
. Ini memudahkan kita melacak bagaimana data diproses di setiap langkah.
Contoh sederhana:
iex(14)> dbg(200 + 20.22)
[iex:14: (file)]
200 + 20.22 #=> 220.22
220.22
Di sini, dbg
mencetak ekspresi 200 + 20.22
dan hasil evaluasinya, yaitu 220.22
. Output akhirnya tetap dikembalikan seperti biasa.
Karena Elixir adalah bahasa pemrograman fungsional, kita akan sering membangun logika kompleks dengan merangkai banyak function. Dalam konteks ini, dbg
sangat membantu terutama saat bekerja dengan ekspresi panjang yang menggunakan pipeline. Pipeline adalah cara khas Elixir untuk mengalirkan data melalui rangkaian function menggunakan pipe operator |>
.
Pembahasan lengkap tentang pipeline akan kita bahas di bagian tersendiri. Untuk sekarang, cukup pahami bahwa dbg
memungkinkan kita menelusuri nilai di setiap tahap dalam alur eksekusi:
iex(16)> -100 |> div(4) |> abs() |> to_string() |> dbg() ❶
[iex:16: (file)] ❷
-100 #=> -100 ❷
|> div(4) #=> -25 ❷
|> abs() #=> 25 ❷
|> to_string() #=> "25" ❷
"25" ❸
Penjelasannya:
- ❶ Kita membuat sebuah pipeline sederhana. Nilai awal
-100
dialirkan ke setiap function secara berurutan:-
div(4)
menghasilkan-25
-
abs()
menghasilkan25
-
to_string()
menghasilkan"25"
-
dbg/1
mencetak hasil evaluasi di setiap langkah
-
- ❷ Ini adalah output yang dihasilkan oleh
dbg
, menunjukkan evaluasi dari setiap tahap dalam pipeline - ❸ Nilai akhir dari seluruh ekspresi tetap dikembalikan, dalam hal ini:
"25"
Dengan dbg
, kita bisa memantau alur eksekusi secara rinci tanpa harus menambahkan print manual seperti IO.puts
di setiap langkah.
Keluar dari Sesi IEx atau Menampilkan Opsi Lainnya
Cara tercepat untuk keluar dari sesi IEx adalah dengan menekan CTRL+C
dua kali. Jika hanya ditekan sekali, IEx akan masuk ke kondisi BREAK dan menampilkan sejumlah opsi seperti berikut:
$ iex
Erlang/OTP 27 [erts-15.2] [source] [64-bit] [smp:4:4] [ds:4:4:10] [async-threads
:1] [jit:ns]
Interactive Elixir (1.17.3) - press Ctrl+C to exit (type h() ENTER for help)
iex(1)>
BREAK: (a)bort (A)bort with dump (c)ontinue (p)roc info (i)nfo
(l)oaded (v)ersion (k)ill (D)b-tables (d)istribution
Saat memasuki kondisi BREAK, IEx akan menunggu perintah dari kita. Beberapa opsi yang umum digunakan:
-
(a)bort
: Keluar dari sesi IEx. -
(A)bort with dump
: Keluar sambil menghasilkan dump untuk keperluan debugging. -
(c)ontinue
: Melanjutkan sesi IEx yang sedang berhenti.
Untuk keluar sepenuhnya dari IEx, kita bisa:
- Menekan
CTRL+C
dua kali secara cepat, atau - Menekan
a
saat berada di kondisi BREAK.
Karena IEx adalah alat yang akan sering kita gunakan selama proses pengembangan, memahami cara mengelola sesi ini sejak awal akan sangat membantu dalam menjaga alur kerja tetap lancar.
Referensi
- Saša Jurić. (2024). Elixir In Action (3rd ed.). Manning Publications.
- Elixir. (2024, December 11). IEx [Documentation]. https://hexdocs.pm/iex/IEx.html
Top comments (0)