Menu
CoddyTech

Melihat Saldo

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

challenge icon

Tantangan

Mudah

Bank Digital-mu mulai terbentuk dengan baik! Akun dapat menerima setoran dan menangani penarikan dengan pemeriksaan dana yang tepat. Sekarang, mari tambahkan method getter untuk mengambil saldo, lalu gabungkan semuanya dalam skenario perbankan yang realistis.

Kamu akan melanjutkan pekerjaan pada file yang sudah ada:

  • Account.lua: Tambahkan method :getBalance() yang mengembalikan saldo saat ini. Ini mengikuti pola getter yang kamu pelajari sebelumnya: memberikan akses terkontrol ke data internal, bukan mengakses field secara langsung. Pertahankan semua fungsi yang sudah ada, yaitu constructor, method deposit, dan withdraw.
  • main.lua: Buat akun dan jalankan serangkaian operasi perbankan untuk menunjukkan cara kerja setoran, penarikan, dan pemeriksaan saldo bersama-sama dalam skenario nyata.

Kamu akan menerima lima input:

  1. Jumlah setoran awal
  2. Jumlah penarikan pertama
  3. Jumlah setoran kedua
  4. Jumlah penarikan kedua
  5. Jumlah penarikan ketiga

Di file utama, buat akun dan lakukan operasi berikut secara berurutan:

  1. Setorkan jumlah awal, lalu cetak saldo menggunakan :getBalance()
  2. Tarik jumlah pertama, lalu cetak saldo
  3. Setorkan jumlah kedua, lalu cetak saldo
  4. Tarik jumlah kedua, lalu cetak saldo
  5. Coba lakukan penarikan ketiga, lalu cetak saldo

Ingat, penarikan yang gagal akan mencetak Insufficient funds sebelum kamu mencetak saldo.

Misalnya, jika inputnya adalah 200, 50, 100, 180, dan 100, outputnya seharusnya:

200
150
250
70
Insufficient funds
70

Saldo akun dimulai dari 200, turun menjadi 150 setelah penarikan pertama, naik menjadi 250 setelah setoran berikutnya, turun menjadi 70 setelah penarikan 180, dan tetap 70 saat penarikan terakhir sebesar 100 gagal karena dana tidak mencukupi.

Coba sendiri

-- Muat module Account dengan require
local Account = require('Account')

-- Baca kelima input
local initialDeposit = tonumber(io.read())
local withdrawal1 = tonumber(io.read())
local deposit2 = tonumber(io.read())
local withdrawal2 = tonumber(io.read())
local withdrawal3 = tonumber(io.read())

-- Buat satu rekening
local account = Account:new()

-- Setorkan jumlah awal dan tampilkan saldo menggunakan :getBalance()
account:deposit(initialDeposit)
print(account:getBalance())

-- Coba lakukan penarikan pertama dan tampilkan saldo
account:withdraw(withdrawal1)
print(account:getBalance())

-- Setorkan jumlah kedua dan tampilkan saldo
account:deposit(deposit2)
print(account:getBalance())

-- Coba lakukan penarikan kedua dan tampilkan saldo
account:withdraw(withdrawal2)
print(account:getBalance())

-- Coba lakukan penarikan ketiga dan tampilkan saldo
account:withdraw(withdrawal3)
print(account:getBalance())

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online