Pengenalan ke Kamus

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Kamus adalah tabel yang mengaitkan nama atau kunci dengan sebuah nilai alih-alih indeks.

Contoh:

Sintaks kamus Luau
local pet = {
Name = "Bobbie",
Type = "Dog",
}

Gunakan kamus ketika Anda perlu memberi label pada nilai, bukan hanya mencantumkannya dalam urutan seperti yang dilakukan array. Latih penggunaan kamus dalam tutorial ini dengan memanipulasi nilai yang terkait dengan seorang pemain.

Sintaks Kamus

Seperti array, kamus ditugaskan ke variabel dengan kurung kurawal {}. Pasangan kunci-nilai disimpan pada baris terpisah diikuti dengan koma. Kunci dan nilai dapat berupa tipe data apa pun, termasuk string, angka, dan nama variabel.

local playerNames = {
player1 = "Zap",
player2 = "Kel",
}
print(playerNames["player1"])

Untuk merujuk bagian atau objek instans lainnya sebagai kunci, gunakan tanda kurung.

local greenPart = workspace.GreenPart
local redPart = workspace.RedPart
local partList = {
[greenPart] = true,
[redPart] = false,
}
print(partList[redPart])

Membuat Kamus

Salah satu penggunaan sehari-hari dari kamus adalah mengorganisir informasi pemain atau karakter. Langkah-langkah berikut menjelaskan bagaimana informasi karakter musuh teoretis dapat disimpan dan diakses.

  1. Dalam skrip baru, buat kamus bernama enemy.

    local enemy = {
    }
  2. Kunci pertama dalam kamus akan melacak nama musuh dengan variabel bernama Name.

    local enemy = {
    Name
    }
  3. Tetapkan nama musuh ke kunci, diikuti dengan koma.

    local enemy = {
    Name = "Spike",
    }
  4. Tambahkan pasangan kunci-nilai kedua untuk berapa banyak kesehatan yang harus dimiliki musuh. Ingat, kunci harus selalu menggunakan tipe data yang sama, tetapi nilai tidak harus.

    local enemy = {
    Name = "Spike",
    Health = 1000,
    }

Menggunakan Nilai Kamus

Ada dua cara untuk mengakses nilai kamus:

  • tableName["keyName"] (perhatikan, penting, catat tanda kutip)
  • tableName.keyName
local enemy = {
Name = "Spike",
Health = 1000,
}
print("Penjahat " .. enemy["Name"] .. " mendekat!")
print("Penjahat " .. enemy.Name .. " mendekat!")

Gaya mana yang digunakan biasanya tergantung pada tujuan tabel. Untuk tabel yang menyimpan koleksi nilai seperti daftar pemain di server, coder biasanya akan menggunakan tableName["keyName"]. Untuk kamus yang digunakan untuk mendeskripsikan sebuah objek, coder lebih cenderung menggunakan tableName.keyName.

Mengubah Nilai Kamus

Mengubah nilai kunci sama seperti variabel lainnya; gunakan operator sama dengan =.

  1. Di bawah tabel enemy, atur nama musuh ke sesuatu yang lain.

    local enemy = {
    Name = "Spike",
    Health = 1000,
    }
    enemy.Name = "Rana"
    print("Nama musuh adalah " .. enemy.Name)
  2. Uji coba dan periksa jendela Output.

Variabel yang Sudah Ada sebagai Kunci

Kamus dapat berinteraksi dengan variabel yang sudah ada yang dideklarasikan di bagian lain dari skrip. Contoh kode berikut menggunakan variabel untuk menambahkan nama pemain sebagai kunci ketika mereka bergabung dengan permainan dan kemudian mengatur nilai poin mereka menjadi 0.

  1. Di ServerScriptService, buat skrip baru bernama PlayerPoints. Dalam skrip, ambil Layanan Pemain dan buat kamus kosong bernama playerPoints.

    local Players = game:GetService("Players")
    local playerPoints = {
    }
  2. Kode fungsi lokal untuk mengatur poin pemain dengan parameter untuk variabel pemain baru. Hubungkan fungsi ke acara Players.PlayerAdded.

    local playerPoints = {
    }
    local function setPoints(newPlayer)
    end
    Players.PlayerAdded:Connect(setPoints)
  3. Dalam fungsi, tambahkan variabel untuk mendapatkan Name pemain, sebuah properti di setiap objek Player, dan pernyataan cetak untuk pengujian.

    local function setPoints(newPlayer)
    local name = newPlayer.Name
    print("halo " .. name)
    end
  4. Masukkan name ke dalam kamus playerPoints sebagai kunci, dan atur nilai, poin pemain, menjadi 0.

    local function setPoints(newPlayer)
    local name = newPlayer.Name
    print("halo " .. name)
    playerPoints[name] = 0
    end
  5. Gunakan name untuk mencetak nama pemain dan playerPoints[name] untuk mencetak nilai kunci yang cocok dengan variabel.

    local function setPoints(newPlayer)
    local name = newPlayer.Name
    print("halo " .. name)
    playerPoints[name] = 0
    print(name .. " memiliki " .. playerPoints[name] .. " poin.")
    end
  6. Jalankan proyek dan amati outputnya.

Skrip Selesai
local Players = game:GetService("Players")
local playerPoints = {
}
local function setPoints(newPlayer)
local name = newPlayer.Name
print("halo " .. name)
playerPoints[name] = 0
print(name .. " memiliki " .. playerPoints[name] .. " poin.")
end
Players.PlayerAdded:Connect(setPoints)

Tantangan Opsional

Berikut adalah beberapa tantangan yang berlaku untuk menggunakan kamus dengan cara yang berbeda. Lihat apakah Anda dapat membangun kode untuk ini.

  • Buat bagian perangkap yang memberikan kerusakan seiring waktu kepada pemain. Setelah seorang pemain menyentuh perangkap, berikan kerusakan kepada mereka, tunggu, lalu izinkan mereka untuk terkena kerusakan lagi.
  • Buat fungsi yang memeriksa pemain mana dari dua pemain yang memiliki poin terbanyak dengan mengakses sebuah kamus.
  • Buat sebuah cipher, sebuah sistem untuk menukar satu string dengan yang lain untuk membuat kode "rahasia". Misalnya, huruf "A" dapat ditukar dengan "G," atau kata "apel" dapat ditukar dengan "jeruk."

Kamus dan pairs()

pairs() adalah fungsi yang sering digunakan untuk mengiterasi melalui kamus. Contoh terlihat di bawah ini.

local myDictionary = {
["Pemain Biru"] = "Ana",
["Pemain Emas"] = "Binh",
["Pemain Merah"] = "Cate",
}
for key, value in pairs(myDictionary) do
print(key .. " adalah " .. value)
end

pairs() dapat digunakan untuk bekerja dengan kunci elemen kamus, nilai, atau keduanya. Dalam loop for di bawah ini, variabel pertama adalah kunci. Variabel kedua adalah nilai. Kamus yang ingin Anda kerjakan diteruskan ke pairs().

local inventory = {
["Bricks Emas"] = 43,
Wortel = 3,
Torches = 2,
}
print("Anda memiliki:")
for itemName, itemValue in pairs(inventory) do
print(itemValue, itemName)
end

Ketika dieksekusi, kode akan mencetak yang berikut:

Anda memiliki:
43 Bricks Emas
3 Wortel
2 Torches

Ringkasan

Kamus adalah tabel yang menggunakan pasangan kunci-nilai alih-alih nilai terindeks. Kamus dan array dimulai dengan cara yang sama dengan menetapkan kurung kurawal ke sebuah variabel. Jaga entri terpisah dengan koma.

Semua kunci dalam kamus harus menggunakan tipe data yang sama, tetapi nilai dapat mencampur tipe data tanpa masalah.

Cara di mana sebuah kamus diakses dapat menyampaikan tujuannya. Kamus dari properti musuh kemungkinan akan diakses dengan operator titik, sementara daftar nama kemungkinan akan menggunakan tableName[keyName].

Saat menggunakan tanda kurung, berhati-hatilah; nama kunci yang dibuat dalam tabel harus diperlakukan sebagai string: tableName["keyName"]. Namun, saat merujuk objek seperti bagian, tanda kutip tidak diperlukan: tableName[keyName].

Banyak skrip perlu melalui kamus atau array, tetapi Anda mungkin tidak selalu tahu awal dan akhir dari struktur data ini. Misalnya, kamus pemain mungkin sedang berubah, atau pemain mungkin memiliki inventaris array dengan ukuran yang bervariasi.

Dalam situasi ini, Anda dapat menggunakan pairs() dan ipairs() dalam loop for untuk melalui setiap elemen tanpa titik awal dan akhir yang diketahui. Anda juga dapat menggunakan iterasi umum melalui kata kunci in untuk melintasi elemen tanpa perlu pairs() atau ipairs().

©2026 Roblox Corporation. Roblox, logo Roblox, dan Powering Imagination termasuk dalam merek dagang kami yang terdaftar dan tidak terdaftar di AS dan negara lainnya.