Menu
CoddyTech

method Penarikan

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

challenge icon

Tantangan

Mudah

Bank Digital-mu sedang berkembang! Sekarang akun bisa menerima setoran, tetapi bank sungguhan juga harus memungkinkan nasabah menarik uang. Mari tambahkan method :withdraw(amount) dengan pemeriksaan keamanan yang penting.

Tidak seperti setoran, penarikan bisa gagal. Jika nasabah mencoba menarik uang melebihi jumlah yang dimilikinya, bank tidak boleh mengizinkannya. Method withdraw-mu perlu memeriksa apakah dana mencukupi sebelum mengurangi jumlahnya.

Kamu akan terus bekerja dengan dua file berikut:

  • Account.lua: Tambahkan method :withdraw(amount) ke class Account yang sudah ada. Jika saldo akun cukup, kurangi jumlahnya dan kembalikan true. Jika dananya tidak cukup, cetak Insufficient funds dan kembalikan false tanpa mengubah saldo.
  • main.lua: Buat akun, lakukan setoran agar akun memiliki dana, lalu coba beberapa penarikan untuk melihat transaksi yang berhasil dan gagal.

Kamu akan menerima empat input:

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

Di file utama, buat akun, setorkan jumlah awal, lalu coba setiap penarikan secara berurutan. Setelah setiap percobaan penarikan, cetak saldo saat ini di baris baru. Ingat, penarikan yang gagal juga akan mencetak Insufficient funds sebelum kamu mencetak saldo.

Misalnya, jika inputnya adalah 100, 30, 50, dan 40, outputnya adalah:

70
20
Insufficient funds
20

Akun memiliki saldo 100 setelah setoran. Penarikan pertama sebesar 30 berhasil (saldo: 70), penarikan kedua sebesar 50 berhasil (saldo: 20), tetapi penarikan ketiga sebesar 40 gagal karena hanya tersisa 20, sehingga saldo tetap 20.

Coba sendiri

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

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

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

-- Setorkan jumlah awal
account:deposit(initialDeposit)

-- Coba lakukan penarikan pertama dan cetak saldo
-- TODO: panggil account:withdraw(withdrawal1) di sini
print(account.balance)

-- Coba lakukan penarikan kedua dan cetak saldo
-- TODO: panggil account:withdraw(withdrawal2) di sini
print(account.balance)

-- Coba lakukan penarikan ketiga dan cetak saldo
-- TODO: panggil account:withdraw(withdrawal3) di sini
print(account.balance)

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online