Tipe Data Tuple pada Elixir

Pada tulisan sebelumnya (http://absyah.com/blog/tipe-data-pada-elixir/) kita telah mengenal tipe data pada Elixir. Salah satu tipe data tersebut adalah tuple. Tipe data tuple ini masih belum begitu familiar untuk para Rubyist seperti saya ini. Kali ini saya ingin sedikit berbagi dari apa yang telah saya pahami dari beberapa tulisan tentang tipe data pada Elixir.

Tuple sendiri biasanya digunakan untuk menyimpan data (pada sebuah variable) yang saling berkaitan satu dengan yang lainnya. Misalnya, kita mendefinisikan data user sebagai berikut:

{ "Ardian Bahtiarsyah", 27, "Male", "Junior Elixir Developer" }

Pada element pertama maksudnya adalah “nama”, element ke-2 adalah “umur”, dan element ke-3 adalah “profesi”. Maka tuple tersebut dapat kita artikan sebagai tuple user. Seandainya salah satu element dari tuple tersebut hilang, berarti itu bukan sebuah tuple userlagi.

Sebagian besar pemanfaatan tuple pada Elixir yaitu digunakan pada response seperti ini, misalnya:

{ :ok, "Article successfully created" }

Element pertama yaitu response status dan element kedua yaitu response message.

Reading Values from Tuple

Untuk membaca sebuah tuple atau mendapatkan setiap element pada tuple pada awalnya akan terlihat susah. Sebagai contohnya, bagaimana kita mendapatkan data statusmessage, dan authordari tuple dibawah ini.

response = { :ok, "Elixir in Action", author: "Sasa Juric" }
# status = ?
# title = ?
# author = ?

Ada dua cara yang umum dipakai dalam mengambil values dari sebuah tuple, yaitu dengan function elem dan pattern matching.

Elem

Jika kita mengetahui index dari element yang akan digunakan, kita dapat menggunakan elem.

response = { :ok, "Elixir in Action", author: "Sasa Juric" }

# gunakan fungsi elem untuk membaca nilai dari sebuah tuple 
status = elem(response, 0)
message = elem(response, 1)
author = elem(response, 2)[:author]

Pattern Matching

Dengan pattern matching kita juga dapat mengeluarkan value yang kita inginkan. Cara ini boleh dikatakan “Elixir-way” jika pada Rails ada istilah Rails-way.

response = { :ok, "Elixir in Action", author: "Sasa Juric" }

# set the values pada status, title, dan author dengan pattern matching
{ status, title, author: author_name } = response

Jika kita hanya menginginkan value dari index tertentu saja dan tidak ingin mengambil values dari index lain. Kita juga masih dapat menggunakan pattern matching ini dengan underscore.

response = { :ok, "Elixir in Action", author: "Sasa Juric" }

# set the values pada status, title, dan author dengan pattern matching
{ _, _, author: author_name } = response

Maka hanya element authorsaja yang ditampung pada variable author_name.

Semoga bermanfaat! (:

As always, jika menyukai tulisan ini silakan untuk subscribe agar mendapatkan info tulisan terbaru lainnya seputar programming yang tidak kalah menarik.

 




absyah