Dictionary

Julia Tingkat Menengah

Anthony Markham

Quantitative Developer

Dictionary - pengantar

  • Kumpulan pasangan 'key-value'.
  • Setiap nilai diakses dengan kunci terkait.
  • Tipe data campuran diperbolehkan.
Julia Tingkat Menengah

Dictionary - mengapa berguna?

  • Akses nilai dengan kunci, lebih intuitif
stock = ["AAPL", 131.86, 100000]
println(stock[1])
AAPL
# Definisi dictionary
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(stock["ticker"])
AAPL
Julia Tingkat Menengah

Dictionary - tidak bertipe

  • Gunakan kata kunci Dict untuk membuat dictionary
  • Kunci => nilai
  • Pisahkan pasangan kunci/nilai dengan koma
stock = Dict("ticker" => "AAPL", "price" => 131.86)
Dict{String, Any} dengan 2 entri:
  "ticker" => "AAPL"
  "price"  => 131.86
  • Perhatikan tipe data beragam dan tidak didefinisikan sebelumnya.
Julia Tingkat Menengah

Dictionary - bertipe

  • Dictionary bertipe memaksa kunci atau nilai memiliki tipe data tertentu.
stock_typed = Dict{String, Integer}("ticker" => "AAPL", "price" => 131.86)
MethodError: Cannot `convert` an object of type String to an object of type Integer
stock_typed = Dict{String, Any}("ticker" => "AAPL", "age" => 131.86)
Dict{String, Any} dengan 2 entri:
  "ticker" => "AAPL"
  "age"    => 131.86
Julia Tingkat Menengah

Dictionary - iterasi

  • Iterasi mirip dengan struktur data lain yang sudah dikenal.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
for i in stock
    println(i)
end
Pair{String, Any}("ticker", "AAPL")
Pair{String, Any}("price", 131.86)
Julia Tingkat Menengah

Dictionary - iterasi atas kunci dan nilai

  • keys() dan values() mengembalikan kunci dan nilai dari sebuah dictionary.
for i in keys(stock)
    println(i)
end
ticker
price
Julia Tingkat Menengah

Dictionary - iterasi via tuple unpacking

  • Membuka tuple kunci dan nilai adalah cara lain untuk mengiterasi dictionary.
for (ticker, price) in stock
    println(ticker, " ", price)
end
ticker AAPL
price 131.86
Julia Tingkat Menengah

Dictionary - get()

  • Gunakan get() untuk mengambil nilai suatu kunci.
get(dictionary_name, dictionary_key, default_value)
  • Argumen terakhir adalah nilai bawaan, yaitu nilai yang dikembalikan jika kunci tidak ditemukan.
stock = Dict("ticker" => "AAPL", "price" => 131.86)
println(get(stock, "ticker", "Key not found."))
AAPL
  • Jika kita tidak menentukan nilai bawaan dan kunci tidak ada, akan terjadi error.
Julia Tingkat Menengah

Dictionary - modifikasi

  • Kita dapat menambah kunci, mengubah nilai, dan menghapus kunci.
# Tambah kunci baru
stock["volume"] = 62128300
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 131.86, "volume" => 62128300)
# Ubah nilai yang ada
stock["price"] = 125.27
println(stock)
Dict{String, Any}("ticker" => "AAPL", "price" => 125.27, "volume" => 62128300)
Julia Tingkat Menengah

Ayo berlatih!

Julia Tingkat Menengah

Preparing Video For Download...