Menu
CoddyTech

Ulasan: Aritmetika Dompet

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

challenge icon

Tantangan

Mudah

Mari buat class Wallet yang menggabungkan keterampilan operator overloading yang telah kamu pelajari di bab ini. Wallet-mu akan menyimpan sejumlah uang dan mendukung dua operasi utama: menggabungkan wallet dengan + dan membandingkan wallet dengan < dan >.

Kamu akan mengatur kodemu dalam dua file:

  • Wallet.lua: Definisikan class Wallet dengan field amount yang menunjukkan jumlah uang yang disimpannya. Sertakan constructor :new(amount) dan implementasikan dua metamethod:
    • __add: Menambahkan dua wallet akan membuat wallet baru yang berisi jumlah gabungannya
    • __lt: Membandingkan wallet akan menentukan wallet mana yang menyimpan lebih sedikit uang
  • main.lua: Gunakan require untuk memuat module Wallet-mu, buat instance wallet, dan tunjukkan kedua operasi tersebut berjalan bersama.

Kamu akan menerima tiga input:

  1. Jumlah uang di wallet pertama
  2. Jumlah uang di wallet kedua
  3. Jumlah uang di wallet ketiga

Di file utamamu, buat tiga wallet dengan jumlah yang diberikan. Lalu:

  1. Tambahkan wallet pertama dan kedua untuk membuat wallet gabungan
  2. Cetak jumlah uang di wallet gabungan
  3. Bandingkan wallet gabungan dengan wallet ketiga menggunakan <, lalu cetak hasilnya (true atau false)
  4. Bandingkan wallet gabungan dengan wallet ketiga menggunakan >, lalu cetak hasilnya (true atau false)

Misalnya, jika input-nya adalah 50, 30, dan 100, output-nya adalah:

80
true
false

Wallet pertama (50) ditambah wallet kedua (30) menghasilkan wallet gabungan dengan jumlah 80. Karena 80 lebih kecil dari 100, perbandingan pertama menghasilkan true. Karena 80 tidak lebih besar dari 100, perbandingan kedua menghasilkan false.

Coba sendiri

local Wallet = require('Wallet')

-- Baca input
local amount1 = tonumber(io.read())
local amount2 = tonumber(io.read())
local amount3 = tonumber(io.read())

-- TODO: Buat tiga dompet dengan jumlah yang diberikan

-- TODO: Jumlahkan dompet pertama dan kedua untuk membuat dompet gabungan

-- TODO: Cetak jumlah pada dompet gabungan

-- TODO: Bandingkan dompet gabungan dengan dompet ketiga menggunakan < dan cetak hasilnya

-- TODO: Bandingkan dompet gabungan dengan dompet ketiga menggunakan > dan cetak hasilnya

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online