Seri Bahasa Pemrograman Lua #4: Tipe Data Dasar dan Variabel

Seri Bahasa Pemrograman Lua #4: Tipe Data Dasar dan Variabel

Pemrograman Lua

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
  • string

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

1. Empat Tipe Data Utama

nil — Ketidakhadiran Nilai

nil 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.
  • nil dianggap false dalam konteks boolean (bersama false). Semua nilai lain dianggap true.
boolean — Logika Sederhana

Hanya dua nilai: true dan false.

aktif = true
selesai = false
print(aktif, selesai)  --> true false

⚠️ Perhatikan:
String false atau angka 0 bukan false di Lua! Hanya false dan nil yang bernilai falsy atau salah.

number — Angka, Titik, dan Kecepatan

Lua menyatukan bilangan bulat dan pecahan dalam satu tipe, yaitu number.

  • Di Lua 5.3+, number bisa berupa integer (64-bit) atau float (double-precision).
  • Lua secara otomatis memilih representasi yang paling efisien.
umur = 25        -- integer
pi = 3.14159     -- float
hasil = 10 / 3   -- 3.333... (float)

Operasi matematika standar (+, -, *, /, ^, %) semuanya bekerja langsung.

string — Teks yang Fleksibel

String 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

2. Penamaan Variabel dan Aturan Penulisan

Variabel di Lua sangat fleksibel, tetapi mengikuti konvensi yang jelas, yaitu:

Aturan Sintaksis
  • Nama variabel harus dimulai dengan huruf atau garis bawah (_).
  • Boleh mengandung huruf, angka, atau _.
  • Case-sensitive: Namanama.
  • Kata kunci tidak boleh digunakan (misalnya if, function, local).

✅ Valid:

x, _temp, user_name, MAX_SIZE

❌ Invalid:

2var      -- dimulai angka
my-var    -- tanda minus tidak diizinkan
end       -- kata kunci
Konvensi Gaya (Style Guide Ringan)
  • Gunakan snake_case untuk variabel dan fungsi, seperti player_score, calculate_total
  • Gunakan UPPER_SNAKE_CASE untuk konstanta, seperti MAX_LIVES = 3
  • Hindari _G atau awalan _ kecuali untuk internal/low-level

3. Dinamis vs Statis: Tidak Perlu Deklarasi Tipe

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

4. Contoh Praktis: Menggabungkan Semua Konsep

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

Kesimpulan

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:

Tambah komentar

Previous Post