Menu
CoddyTech

class Circle

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

challenge icon

Tantangan

Mudah

Mari lanjutkan membangun Shape Manager dengan menambahkan class Circle bersama Rectangle yang kamu buat pada pelajaran sebelumnya.

Kamu akan menggunakan empat file agar shape-mu tetap teratur:

  • Shape.lua: class Shape dasar dengan :new(name) dan :getName().
  • Rectangle.lua: class Rectangle dari tantangan sebelumnya dengan :getArea().
  • Circle.lua: Buat class Circle yang mewarisi Shape. Konstruktor harus menerima radius, memanggil konstruktor induk dengan nama "Circle", dan menyimpan radius tersebut. Tambahkan method :getArea() yang menghitung luas lingkaran menggunakan rumus πr². Gunakan math.pi untuk nilai π.
  • main.lua: Gunakan require untuk kedua module Rectangle dan Circle. Baca tiga nilai dari input: lebar rectangle, tinggi rectangle, dan radius circle. Buat satu instance untuk setiap shape dan cetak empat baris: nama rectangle, luas rectangle, nama circle, dan luas circle.

Sekarang kedua shape memiliki antarmuka yang sama melalui pewarisan: masing-masing memiliki method :getName() dari Shape dan implementasi :getArea() sendiri. Antarmuka umum ini akan berguna dalam pelajaran berikutnya.

Input: Tiga baris: lebar (angka), tinggi (angka), dan radius (angka).

Output: Empat baris: nama rectangle, luas rectangle, nama circle, luas circle.

Coba sendiri

-- Muat module Rectangle
local Rectangle = require('Rectangle')

-- Muat module Circle
-- TODO: Muat module Circle di sini

-- Baca lebar dan tinggi dari input
local width = tonumber(io.read())
local height = tonumber(io.read())

-- TODO: Baca jari-jari dari input

-- Buat instance Rectangle baru dengan dimensi yang diberikan
local rect = Rectangle:new(width, height)

-- TODO: Buat instance Circle baru dengan jari-jari yang diberikan

-- Cetak nama dan luas persegi panjang
print(rect:getName())
print(rect:getArea())

-- TODO: Cetak nama dan luas lingkaran

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online