Tuple

Julia Tingkat Menengah

Anthony Markham

Quantitative Developer

Tuple - pengantar

  • Koleksi nilai yang terurut dan imut.
  • Dapat berisi nilai dari tipe data apa pun.
  • Pengindeksan dengan bilangan bulat, sama seperti vektor.
Julia Tingkat Menengah

Tuple - mengapa?

Keunggulan

  • Kode lebih aman jika Anda memakai tuple untuk data yang ingin dilindungi.
  • Lebih cepat dari vektor dan lebih hemat memori.

Kelemahan

  • Tidak dapat mengurutkan tuple.
  • Tidak dapat menambah, menghapus, atau mengubah nilai.
Julia Tingkat Menengah

Tuple - sintaks

  • Definisikan tuple dengan tanda kurung, dipisahkan koma.
my_tuple = (10, 20, 30, 40)
  • Satu tuple bisa memuat banyak tipe data.
my_mixed_tuple = (10, "Hello", 30, true)
Julia Tingkat Menengah

Tuple - pengindeksan

  • Tuple diindeks dengan bilangan bulat (sama seperti vektor).
my_tuple = (10, 20, 30, 40)
println(my_tuple[1])
10
println(my_tuple[2:3])
(20, 30)
Julia Tingkat Menengah

Tuple - imutabilitas

  • Kita tidak dapat menambah atau menghapus nilai pada tuple setelah dibuat.
  • Kita tidak dapat mengubah nilai di dalam tuple.
my_tuple = (10, 20, 30, 40, 50)
append!(my_tuple, 60)
MethodError: no method matching append!(::NTuple{5, Int64}, ::Int64)
my_tuple = (10, 20, 30, 40, 50)
my_tuple[1] = 15
MethodError: no method matching setindex!(::NTuple{5, Int64}, ::Int64, ::Int64)
Julia Tingkat Menengah

Tuple - imutabilitas

  • Tuple menyimpan jumlah elemennya, karena ini tidak dapat berubah.
  • Hal ini tercermin pada tipe variabel.
my_vector = [10, 20, 30, 40, 50]
my_tuple = (10, 20, 30, 40, 50)

println(typeof(my_vector))
println(typeof(my_tuple))
Vector{Int64}
NTuple{5, Int64}
Julia Tingkat Menengah

Tuple - NamedTuple

  • NamedTuple adalah tuple dengan elemen yang juga bisa diakses lewat nama yang ditetapkan pada nilainya.
  • Tiap nilai di NamedTuple diwakili oleh nama unik.
  • NamedTuple memiliki sifat imut yang sama seperti tuple.
my_named_tuple = (name="Anthony", country="Australia", city="Sydney")
println(my_named_tuple[1])
println(my_named_tuple.name)
Anthony
Anthony
Julia Tingkat Menengah

Ayo berlatih!

Julia Tingkat Menengah

Preparing Video For Download...