ID (Indonesia) Translation

Lua - Pemrograman Berorientasi Objek

Pengenalan ke OOP

Hai teman-teman pemula pemrogrammer! Hari ini, kita akan memulai perjalanan menarik ke dunia Pemrograman Berorientasi Objek (OOP) menggunakan Lua. Jangan khawatir jika Anda baru saja memulai pemrograman; saya akan menggイドi Anda di setiap langkah dengan同样的 perhatian dan kesungguhan yang saya gunakan di kelas selama tahun tahun.

Lua - Object Oriented

Pemrograman Berorientasi Objek seperti membangun dengan batu bata LEGO. Setiap batu bata (atau objek) memiliki properti sendiri dan bisa melakukan hal-hal tertentu. Ketika kita menggabungkannya, kita menciptakan struktur menakjubkan (atau program)!

Fitur OOP

Sebelum kita masuk ke Lua, mari kita lihat secara cepat fitur utama OOP:

  1. Enkapsulasi: Hal ini seperti menyimpan mainan Anda di dalam kotak. Kotak (objek) berisi semua hal yang berkaitan (data dan fungsi).
  2. Pewarisan: Bayangkan Anda memiliki mainan robot. Sekarang, Anda mendapat mainan robot baru yang bisa melakukan semua hal yang bisa mainan lama, dan ada beberapa trik baru. Itu adalah pewarisan!
  3. Polimorfisme: Hal ini seperti memiliki remote kontrol yang bekerja untuk berbagai perangkat. Tombol yang sama, tindakan berbeda tergantung apa yang Anda kendalikan.
  4. Abstraksi: Bayangkan menggunakan microwave. Anda tidak perlu tahu bagaimana cara kerjanya dalam; Anda hanya perlu tahu tombol mana yang harus ditekan.

OOP dalam Lua

Sekarang, mari kita lihat bagaimana kita bisa menggunakan konsep OOP ini dalam Lua. Lua tidak memiliki kelas bawaan seperti beberapa bahasa lain, tapi kita bisa menciptakan struktur berorientasi objek menggunakan tabel dan fungsi. Itu seperti kita sedang membangun set LEGO sendiri dari awal!

Membuat Kelas Sederhana

Ayo mulai dengan menciptakan kelas sederhana. Dalam Lua, kita menggunakan tabel untuk merepresentasikan kelas.

local Dog = {}
Dog.__index = Dog

function Dog.new(name, age)
local self = setmetatable({}, Dog)
self.name = name
self.age = age
return self
end

function Dog:bark()
print(self.name .. " mengatakan: Woof!")
end

mari kitauraikan ini:

  1. Kita menciptakan tabel bernama Dog.
  2. Kita menset Dog.__index = Dog. Ini adalah sedikit sihir Lua yang membantu dengan pewarisan.
  3. Kita menciptakan fungsi new yang bertindak sebagai konstraktor. Itu menciptakan anjing baru dengan nama dan umur.
  4. Kita menambahkan metode bark ke kelas Dog.

Membuat Objek

Sekarang kita memiliki kelas Dog, mari kita menciptakan objek Dog:

local myDog = Dog.new("Buddy", 3)

Selamat! Anda baru saja menciptakan objek pertama Anda. myDog sekarang adalah objek Dog dengan nama "Buddy" dan umur 3.

Mengakses Properti

Kita bisa mengakses properti anjing kita seperti ini:

print(myDog.name) -- Keluaran: Buddy
print(myDog.age)  -- Keluaran: 3

Itu begitu sederhana hanya dengan menggunakan notasi titik!

Mengakses Fungsi Anggota

Untuk membuat anjing kita menjerit, kita bisa memanggil metode bark:

myDog:bark() -- Keluaran: Buddy mengatakan: Woof!

Perhatikan tanda titik : ini bukannya titik. Ini adalah cara Lua untuk mengirimkan self ke metode.

Contoh Lengkap

Mari kita gabungkan semuanya:

local Dog = {}
Dog.__index = Dog

function Dog.new(name, age)
local self = setmetatable({}, Dog)
self.name = name
self.age = age
return self
end

function Dog:bark()
print(self.name .. " mengatakan: Woof!")
end

local Labrador = {}
setmetatable(Labrador, {__index = Dog})

function Labrador.new(name, age, color)
local self = Dog.new(name, age)
setmetatable(self, {__index = Labrador})
self.color = color
return self
end

function Labrador:swim()
print(self.name .. " sedang berenang!")
end

function Labrador:bark()
print(self.name .. " mengatakan: Woof woof woof!")
end

local myDog = Dog.new("Buddy", 3)
local myLabrador = Labrador.new("Max", 2, "Kuning")

myDog:bark()      -- Keluaran: Buddy mengatakan: Woof!
myLabrador:bark() -- Keluaran: Max mengatakan: Woof woof woof!
myLabrador:swim() -- Keluaran: Max sedang berenang!

Dan itu adalah! Kita telah menciptakan struktur kelas dasar, implementasi pewarisan, dan bahkan mengganti metode. Anda sudah berada di jalur menjadi ahli OOP Lua!

Ingat, latihan membuat sempurna. Cobalah menciptakan kelas Anda sendiri dan eksperimen dengan properti dan metode yang berbeda. Selamat coding!

Credits: Image by storyset