Menu
CoddyTech

Tabel dengan Fungsi

Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan Lua di Coddy. Pelajaran 1 dari 70.

Dalam Lua, tabel sangat serbaguna. Selain menyimpan data, tabel juga dapat menampung fungsi. Dengan begitu, kamu dapat mengelompokkan operasi yang saling berkaitan, sehingga kodemu tetap teratur dan mudah dikelola.

Untuk menempatkan fungsi di dalam tabel, kamu cukup menetapkannya ke sebuah kunci seperti nilai lainnya:

local myTable = {
    greet = function(name)
        return "Hello, " .. name
    end
}

print(myTable.greet("Alice"))  -- output: Hello, Alice

Kamu juga bisa mendefinisikan fungsi secara terpisah, lalu menambahkannya ke tabel:

local myTable = {}

myTable.greet = function(name)
    return "Hello, " .. name
end

Atau gunakan sintaks singkat yang lebih rapi:

local myTable = {}

function myTable.greet(name)
    return "Hello, " .. name
end

Ketiga pendekatan menghasilkan hasil yang sama. Kamu memanggil fungsi menggunakan notasi titik: myTable.greet("Alice"). Pola menggabungkan fungsi dengan data ini adalah dasar pemrograman berorientasi objek di Lua.

challenge icon

Tantangan

Mudah

Buat tabel bernama calculator yang berisi empat fungsi aritmetika:

  • add(a, b) - mengembalikan jumlah a dan b
  • subtract(a, b) - mengembalikan hasil pengurangan a dengan b
  • multiply(a, b) - mengembalikan hasil perkalian a dan b
  • divide(a, b) - mengembalikan hasil pembagian a dengan b

Kamu akan menerima tiga input:

  1. Nama operasi (salah satu dari: add, subtract, multiply, divide)
  2. Bilangan pertama
  3. Bilangan kedua

Panggil fungsi yang sesuai dari tabel calculator berdasarkan nama operasi, lalu cetak hasilnya.

Coba sendiri

-- Baca input
local operation = io.read()
local num1 = tonumber(io.read())
local num2 = tonumber(io.read())

-- TODO: Buat tabel calculator dengan empat fungsi:
-- add(a, b), subtract(a, b), multiply(a, b), divide(a, b)


-- TODO: Panggil fungsi yang sesuai dari tabel calculator menggunakan nama operasi
-- dan cetak hasilnya
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online