Bagikan

Berkenalan Dengan Lua

Bahasa pemrograman yang cabe rawit, kecil, ringan dan powerful.

  • November 23, 2023

Bahasa pemrograman tidak ada habisnya untuk ditelusuri, tiap-tiapnya punya keunikan dan masalah yang ingin diselesaikan, seperti Python yang ingin mudah dipelajari atau Go untuk membangun software yang efisien namun ngodingnya tetap produktif dan sebagainya.

Kali ini kesempatan Lua untuk bersinar, mungkin dari kamu baru tahu namanya sekarang, padahal umurnya Lua sudah 30 tahun lho. Lua sendiri lahir di Brazil, yang dalam bahasa sana (portugis) Lua artinya Bulan.

Apa itu Lua ?

Lua itu bahasa pemrograman dengan tipe dinamis yang dievaluasi secara interpretasi atau skripting, selain itu juga kemampuan multi paradigma seperti prosedural, object-oriented, fungsional dan data-driven.

Lua bisa dikompilasi ke program biner dengan LuaJIT

Diluar dari fitur bahasa, faktor teknis yang menarik adalah Lua sangat ringan dalam segi ukuran bahkan digunakan untuk bahasa skripting dalam program seperti Lua disispkan kedalam game World of Warcraft, web server Apache HTTP dan alat jaringan NMAP yang dinamai NMAP scripting engine.

Penulis sendiri menggunakan Lua untuk membuat game dengan game engine LOVE2D dan Defold, karena ringan di komputer dan bahasanya simpel (terutama LOVE2D).

Alasan kenapa perlu coba Lua.

  • Cepat (kata websitenya, seharusnya ada benchmark)

  • Mudah disisipkan (Embbedable) baik ditanam sebagai skripting dalam perangkat lunak maupun perangkat keras.

  • Ukuran yang ringan dan portable ke berbagai sistem operasi, cross-platform termasuk Android.

  • Cukup mature sebagai bahasa pemrograman dan sudah digunakan dalam berbagai produksi perangkat lunak.

Syntaks Lua

Biar tidak seperti beli kucing dalam karung, mari kita liat bahasa Lua sebelum kita memasangnya di komputer. Bagi yang pernah menggunakan Python atau Javascript, Lua ibarat campuran dari keduanya.

Kamu bisa coba kode ini tanpa install Lua di Lua live demo.

Variabel

Lua membagi variable menjadi 2 jenis, variabel lokal dan global.

nama = "Kyoni"
local umur = 18

print(nama)
print(umur)

Keyword local hanya membuat variabel tersedia ada lingkup sekitarnya, karena by default variable di Lua bersifat global yang bisa diakses dari mana saja. Sangat disarankan menggunakan keyword local untuk membuat variable.

Branching

Lua memiliki fitur pemilihan dengan ekpresi logika, sepintas mirip dengan Python.

x = 9
if x > 8 then
   print("mendapat angka lebih dari 8")
elseif x > 0 then
   print("mendapat angka lebih dari 0")
else
   print("mendapat angka 0 atau kurang darinya")
end

Lua tidak mempunya pencocokan berbasis nilai, seperti penyataan switch-case di bahasa Javascript dan Python.

Looping

Lua punya pre-check (cek kondisi kemudia jalankan kode) dan post-check(jalankan kode baru cek kondisi) looping.

  • pre-check, pernyataan while-do .
x = 0 
while x <= 5 do
  x = x + 1
end
  • post-check, pernyataan repeat-until .
x = 0
repeat
  x = x + 1
until x >= 5

pernyataan repeat-until memiliki keunikan dalam pengecekan kondisi yang berbeda dari while-do, yang berhenti ketika kondisi until bernilai true, ini bertolak belakang dengan while-do yang berhenti ketika kondisi bernilai false.

For-Loop

Lua punya dua perulangan pencacah : numerical for (pencacah berbasish angka) dan generic for (pencacah berbasis objek atau iterator).

  • numerical for
-- local i = 0, basis awal
-- 10, batas looping
-- 2 step looping, i = i + 2 setiap loop.
for local i = 0,10,2 do
  print(i)
end
  • generic for
bulan = {
  "Januari","Februari", "Maret","April", "Mei","Juni",
  "Juli","Agustus","September","Oktober","November","Desemeber"
}

for indeks,b in ipairs(bulan) do
  print(b)
end

Pernyataan generic for memerlukan fungsi iterator maka dari itu kenapa perlu adanya ipairs atau pairs, saat kita ingin melihat nilai isi dari koleksi.

Fungsi

Membuat fungsi di Lua menggunakan keyword function

function ini_fungsi(ini_parameternya)
  local nilai_return = ini_parameternya
  return nilai_return
end

Kasus Pakai

Apa yang orang lain lakukan dengan Lua, dan mungkin menjadi kasus pakai untuk kamu juga:

Game

Penulis tertarik dengan Lua karena bekenalan dengan dunia pengembangan game. Banyak game engine yang mendukung Lua, salah satunya yang paling terkenal adalah Love 2D dan melahirkan game-game keren.

Selain itu, ada juga Defold yang sedang naik daun karena kemiripan Unity dan Godot.

Web

Cukup disayangkan ekosistem untuk web di Lua terbilang kurang tetapi bukan berarti tidak ada. Ada satu web framework di Lua, yakni Lapis, menurut hemat penulis framework ini serupa dengan Flask di Python.

System Programming

Sifat dari Embbeddable Lua membuatnya jadi pelanggan untuk pemrograman sistem yang butuh fitur skripting untuk kustomisasi tertentu bahkan sistem tertanam dalam perangkat keras elektronik.

Teladan untuk pendekatan ini bisa dilihat di halaman Where Lua is Used.

Installasi

Kamu sudah melihat bagaimana sintaks dan kasus guna Lua. Sekarang saatnya kita menginstallnya:

Windows

Installasi Lua di Window mungkin yang rumit dari sistem operasi lainnya, tapi masih bisa dilakukan.

Ada 2 cara untuk bisa ngoding Lua di Windows:

  1. (Opsi ini disarankan) Install IDE ZeroBrane, Lua sudah tertanam di IDE jadi tidak perlu install, tapi tidak tersedia untuk keseluruhan sistem. Ini sudah menjadi kebanyakan standar untuk Lua ditanamkan ke program, termasuk program editor di Defold.

  2. Download Lua dari LuaBinaries, supaya tidak bingung ini panduan downoladnya:

    • Buka halaman LuaBinaries
    • Klik Download di halaman menu sebelah kiri.
    • Download file (klik tautan file zip) yang Windows x64 Executables dan Windows x64 DLL and Includes (MingW-w64 6 Built).
    • Ekstract semua file yang di download ke C:\lua (kalau tiada foldernya, dibuat baru!).
    • Lalu tambahkan ke Variable PATH di Environment Variable dengan nilai C:\lua.

MacOS, Linux, *BSD dan *nix-like

Installasi Lua cukup menggunakan paket manager yang tersedia seperti apt install lua dan sebagainya (menyesuaikan paket manager yang ada).

Kemudian, jangan lupa menginstall LuaRocks untuk urusan perpaketan.

Penutup

Lua bahasa yang sederhana dan punya fitur yang tidak kalah dengan bahasa pada umumnya. Yang membuat kurang populer karena bahasa ini mempunyai niche yang khusus, pengembangan game dan sistem tertanam.

Terlepas dari itu, tidak ada salahnya menggunakan lua sebagai bahasa pemrograman untuk pemula, meskipun tidak memiliki fitur pertipean seperti C\C++ yang menegaskan pentingnya tipe data eksplisit.

Referensi

  • Lua.org
  • LuaRocks
  • Programming in Lua by Roberto Ierusalimschy, Lua.org, December 2003, ISBN 8590379817.

Kamu menikmati tulisan ini ?

Blog ini tidak dibiayai oleh iklan untuk bayar server dan jajan milkshake. Agar tetap terus beroperasi dan menorehkan lebih banyak tulisan yang (semoga) bermanfaat!

Beri sedikit tips ke Loka Kode untuk bayar server dan beli milkshake.

Tagar

Tulisan serupa