Lua adalah bahasa dinamis, minimalis, dan konsisten. Bahasa pemrograman ini hanya memiliki delapan tipe data bawaan, tetapi hanya empat yang Anda butuhkan di hampir semua skenario pemrograman umum.
Di antaranya:
nil boolean number stringTidak ada int, float, char, atau array terpisah. Tidak ada deklarasi tipe eksplisit. Cukup tulis nilai, dan Lua akan memahami maksud Anda.
Dalam artikel ini, kita akan menjelajahi keempat tipe dasar tersebut, aturan penamaan variabel, serta filosofi “dinamis tapi aman” yang menjadi ciri khas Lua.
nil — Ketidakhadiran Nilainil adalah satu-satunya nilai dari tipe nil. Ia merepresentasikan ketiadaan atau tidak terdefinisi.
x = nil
print(x) --> nil
💡 Fakta penting:
- Variabel yang belum pernah diberi nilai secara otomatis bernilai
nil.nildianggap false dalam konteks boolean (bersamafalse). Semua nilai lain dianggaptrue.
boolean — Logika SederhanaHanya dua nilai: true dan false.
aktif = true
selesai = false
print(aktif, selesai) --> true false
⚠️ Perhatikan:
Stringfalseatau angka0bukanfalsedi Lua! Hanyafalsedannilyang bernilai falsy atau salah.
number — Angka, Titik, dan KecepatanLua menyatukan bilangan bulat dan pecahan dalam satu tipe, yaitu number.
number bisa berupa integer (64-bit) atau float (double-precision). umur = 25 -- integer
pi = 3.14159 -- float
hasil = 10 / 3 -- 3.333... (float)
Operasi matematika standar (+, -, *, /, ^, %) semuanya bekerja langsung.
string — Teks yang FleksibelString didefinisikan dengan tanda kutip tunggal (') atau ganda ("). Lua juga mendukung long bracket [[...]] untuk teks multi baris.
nama = "Lua"
slogan = 'Bahasa ringan'
deskripsi = [[
Lua adalah bahasa scripting
yang cepat, ringan, dan embeddable.
]]
print(nama, slogan)
🔧 Fitur menarik:
- String bersifat immutable (tidak bisa diubah setelah dibuat).
- Operator
..digunakan untuk menggabungkan string:sapa = "Halo, " .. nama
Variabel di Lua sangat fleksibel, tetapi mengikuti konvensi yang jelas, yaitu:
_). _. Nama ≠ nama. if, function, local).✅ Valid:
x, _temp, user_name, MAX_SIZE
❌ Invalid:
2var -- dimulai angka
my-var -- tanda minus tidak diizinkan
end -- kata kunci
snake_case untuk variabel dan fungsi, seperti player_score, calculate_total UPPER_SNAKE_CASE untuk konstanta, seperti MAX_LIVES = 3 _G atau awalan _ kecuali untuk internal/low-levelLua adalah bahasa dinamis, sehingga tipe data ditentukan oleh nilai, bukan oleh variabel.
data = 42 -- number
data = "teks" -- sekarang string
data = true -- sekarang boolean
data = nil -- sekarang tidak ada nilai
Variabel data tidak memiliki tipe tetap. Ia hanyalah wadah yang bisa menampung nilai apa pun kapan saja.
✅ Keuntungan:
- Kode lebih ringkas dan ekspresif
- Prototipe cepat tanpa boilerplate
⚠️ Tantangan:
- Kesalahan tipe hanya terdeteksi saat runtime
- Disiplin penamaan dan pengujian menjadi penting
Namun, justru karena kesederhanaan inilah Lua mudah dipelajari dan diintegrasikan, terutama dalam sistem besar yang membutuhkan logika yang dapat dikonfigurasi.
-- contoh_variabel.lua
aktif = true -- boolean
skor = 100 -- number
pemain = "Aria" -- string
level_terakhir = nil -- belum diselesaikan
print("Pemain:", pemain)
print("Skor:", skor)
print("Aktif?", aktif)
print("Level terakhir:", level_terakhir) -- mencetak "nil"
Jalankan:
lua contoh_variabel.lua
Output:
Pemain: Aria
Skor: 100
Aktif? true
Level terakhir: nil
Lua tidak membebani Anda dengan tipe, deklarasi, atau struktur berlebihan. Sebaliknya, Lua memberi Anda empat blok bangunan dasar yang kuat dan konsisten:
nil untuk ketiadaan boolean untuk keputusan number untuk perhitungan string untuk komunikasi Dan variabel? Mereka hanyalah label yang ringan, dinamis, dan siap berubah sesuai kebutuhan program Anda.
Di bagian berikutnya, kita akan menjelajahi operator dan ekspresi, sebagai cara bagaimana menggabungkan nilai-nilai ini untuk membuat logika yang bermakna.
Sumber belajar lanjutan: