Salah satu keindahan Lua terletak pada kesederhanaan eksekusinya. Tidak seperti bahasa lain yang menuntut struktur kaku (misalnya fungsi main() di C/C++ atau blok if __name__ == "__main__" di Python), Lua memperlakukan setiap skrip sebagai urutan perintah langsung yang dieksekusi dari atas ke bawah. Hal ini membuat eksperimen dapat dilakukan dengan cepat, prototipe mudah, dan pembelajaran yang intuitif.
Dalam artikel ini, kita akan menjelajahi dua cara utama menjalankan kode Lua:
.lua → untuk program yang bisa disimpan dan diulang Serta, kita akan memahami mengapa Lua tidak memerlukan fungsi main(), sebuah keputusan desain yang mencerminkan filosofi “tidak lebih dari yang dibutuhkan”.
“Di Lua, setiap baris kode adalah bagian dari program, tanpa ritual, tanpa hambatan.”
REPL adalah lingkungan live coding bawaan Lua. Fitur ini membaca perintah Anda, mengevaluasinya, mencetak hasilnya (jika ada), lalu siap menerima perintah berikutnya.
Buka terminal dan ketik:
lua
Anda akan melihat prompt seperti:
Lua 5.4.6 Copyright (C) 1994-2023 Lua.org, PUC-Rio
>
Sekarang Anda berada di dalam REPL.
> print("Halo dunia!")
Halo dunia!
> x = 10 + 5
> print(x)
15
> function kuadrat(n) return n * n end
> print(kuadrat(4))
16
💡 Tips REPL:
- Ketik
= ekspresisebagai shortcut untukprint(ekspresi). Contoh:> = "Lua itu ringan" Lua itu ringan- Tekan Ctrl+D (Linux/macOS) atau Ctrl+Z + Enter (Windows) untuk keluar.
REPL sangat berguna untuk:
.luaUntuk program yang lebih panjang atau yang ingin Anda simpan, buatlah file dengan ekstensi .lua.
Buat file, misalnya salam.lua:
-- salam.lua
nama = "Pemula Lua"
print("Selamat datang, " .. nama .. "!")
Simpan file tersebut di direktori kerja Anda.
Jalankan dari terminal:
lua salam.lua
Output:
Selamat datang, Pemula Lua!
📌 Catatan:
- Nama file boleh apa saja (tidak harus
main.lua).- Ekstensi
.luabersifat konvensi, Lua tidak memaksakannya, tapi sangat disarankan untuk kejelasan.
main(), Langsung EksekusiFitur ini adalah salah satu ciri paling khas Lua, di mana tidak ada titik masuk untuk menjalankan program secara khusus.
Di banyak bahasa, Anda harus menulis:
// C
int main() { ... }
atau
# Python
if __name__ == "__main__":
...
Lua tidak memerlukan hal seperti itu. Setiap baris dalam file .lua dieksekusi secara sekuensial, seolah-olah Anda mengetikkannya di REPL.
-- hitung.lua
print("Menghitung luas persegi panjang")
panjang = 10
lebar = 5
luas = panjang * lebar
print("Luas:", luas)
-- Fungsi didefinisikan di mana saja
function info()
print("Skrip ini dijalankan langsung!")
end
info() -- dipanggil di tempat
Jalankan:
lua hitung.lua
Semua perintah dijalankan dari atas ke bawah, termasuk definisi variabel, fungsi, dan pemanggilan fungsi.
⚠️ Peringatan Umum:
Jika Anda mendefinisikan fungsi setelah memanggilnya, Lua akan error:sapa() -- ERROR: sapa is nil function sapa() print("Hai!") endPastikan entitas didefinisikan sebelum digunakan, kecuali dalam kasus rekursi mutual yang dikelola dengan
local.
Lua mendukung argumen baris perintah melalui tabel global arg (saat dijalankan dengan - atau sebagai skrip) atau ... dalam fungsi main implisit.
Contoh:
-- echo.lua
for i = 1, #arg do
print("Argumen", i, ":", arg[i])
end
Jalankan:
lua echo.lua halo dunia
Output:
Argumen 1 : halo
Argumen 2 : dunia
Catatan: Dukungan
argtergantung pada cara skrip dijalankan. Untuk portabilitas, banyak developer menggunakan...dalam modul utama.
Lua menghilangkan hambatan antara ide dan eksekusi. Dengan REPL, Anda bisa bereksperimen dalam detik. Dengan file skrip, Anda menyimpan logika untuk dijalankan kapan saja, tanpa boilerplate, tanpa struktur kaku.
Di bagian berikutnya, kita akan menjelajahi tipe data dasar dan variabel, fondasi pertama dari setiap program Lua.
Sumber belajar lanjutan: