Seri Bahasa Pemrograman Lua #3: Menjalankan Kode Lua dengan REPL dan File Skrip

Seri Bahasa Pemrograman Lua #3: Menjalankan Kode Lua dengan REPL dan File Skrip

Pemrograman Lua

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:

  1. Mode interaktif (REPL) → untuk eksperimen instan
  2. File skrip .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.”

1. Mode Interaktif: REPL (Read-Eval-Print Loop)

REPL adalah lingkungan live coding bawaan Lua. Fitur ini membaca perintah Anda, mengevaluasinya, mencetak hasilnya (jika ada), lalu siap menerima perintah berikutnya.

Cara Mengakses REPL

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.

Contoh Penggunaan 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 = ekspresi sebagai shortcut untuk print(ekspresi). Contoh:
    > = "Lua itu ringan"
    Lua itu ringan
  • Tekan Ctrl+D (Linux/macOS) atau Ctrl+Z + Enter (Windows) untuk keluar.

REPL sangat berguna untuk:

  • Menguji fungsi kecil
  • Memahami perilaku operator
  • Debugging cepat tanpa membuat file

2. Menjalankan File Skrip .lua

Untuk program yang lebih panjang atau yang ingin Anda simpan, buatlah file dengan ekstensi .lua.

Langkah-Langkah Dasar
  1. Buat file, misalnya salam.lua:

    -- salam.lua
    nama = "Pemula Lua"
    print("Selamat datang, " .. nama .. "!")
  2. Simpan file tersebut di direktori kerja Anda.

  3. Jalankan dari terminal:

    lua salam.lua

Output:

Selamat datang, Pemula Lua!

📌 Catatan:

  • Nama file boleh apa saja (tidak harus main.lua).
  • Ekstensi .lua bersifat konvensi, Lua tidak memaksakannya, tapi sangat disarankan untuk kejelasan.

3. Struktur Dasar Skrip Tanpa main(), Langsung Eksekusi

Fitur 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.

Contoh Skrip Lengkap
-- 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.

Implikasi Desain Ini
  • Sederhana, sehingga tidak perlu mempelajari konsep “titik masuk”.
  • Fleksibel, di mana file Lua bisa berupa modul (dipanggil oleh skrip lain) atau program mandiri.
  • Konsisten, perilaku REPL dan file skrip identik satu sama lainnya.

⚠️ Peringatan Umum:
Jika Anda mendefinisikan fungsi setelah memanggilnya, Lua akan error:

sapa()  -- ERROR: sapa is nil
function sapa() print("Hai!") end

Pastikan entitas didefinisikan sebelum digunakan, kecuali dalam kasus rekursi mutual yang dikelola dengan local.

Tambahan: Menjalankan Skrip dengan Argumen

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 arg tergantung pada cara skrip dijalankan. Untuk portabilitas, banyak developer menggunakan ... dalam modul utama.

Kesimpulan

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:

Tambah komentar

Previous Post Next Post