Menu
CoddyTech

Uji Bank Terakhir

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

challenge icon

Tantangan

Mudah

Selamat karena kamu telah membangun sistem Bank Digital yang lengkap! Class Account-mu kini menangani penyetoran, penarikan, pemeriksaan saldo, identifikasi rekening, dan transfer antar-rekening. Mari uji semuanya dengan skenario perbankan realistis yang melibatkan beberapa rekening.

Dalam tantangan terakhir ini, kamu akan menyimulasikan sebuah bank kecil dengan tiga nasabah yang melakukan berbagai transaksi. Ini akan memastikan semua method-mu bekerja dengan benar bersama-sama dan setiap rekening benar-benar mempertahankan statusnya secara terpisah.

Dua file milikmu:

  • Account.lua: Class Account lengkap dengan semua fungsi yang telah kamu bangun sepanjang proyek ini (constructor dengan ID, deposit, withdraw, getBalance, __tostring, dan transfer).
  • main.lua: Skrip simulasi yang membuat beberapa rekening dan menjalankan serangkaian transaksi di antara rekening-rekening tersebut.

Kamu akan menerima enam input:

  1. ID Rekening 1
  2. ID Rekening 2
  3. ID Rekening 3
  4. Setoran awal untuk Rekening 1
  5. Setoran awal untuk Rekening 2
  6. Setoran awal untuk Rekening 3

Di file utama, simulasikan kegiatan perbankan berikut:

  1. Buat tiga rekening dengan ID yang diberikan
  2. Setorkan jumlah awal ke rekening masing-masing
  3. Rekening 1 mentransfer 100 ke Rekening 2
  4. Rekening 2 mentransfer 150 ke Rekening 3
  5. Rekening 3 mentransfer 50 ke Rekening 1
  6. Rekening 1 mencoba mentransfer 1000 ke Rekening 3 (ini seharusnya gagal)
  7. Cetak ketiga rekening secara berurutan (Rekening 1, lalu 2, kemudian 3)

Misalnya, jika inputnya adalah A001, A002, A003, 500, 300, dan 200, outputnya seharusnya:

Insufficient funds
Account [A001]: Balance = 450
Account [A002]: Balance = 250
Account [A003]: Balance = 300

Mari telusuri alurnya: Rekening 1 mulai dengan 500, mentransfer 100 ke Rekening 2 (sekarang 400), lalu menerima 50 dari Rekening 3 (sekarang 450). Rekening 2 mulai dengan 300, menerima 100 (sekarang 400), lalu mentransfer 150 ke Rekening 3 (sekarang 250). Rekening 3 mulai dengan 200, menerima 150 (sekarang 350), lalu mentransfer 50 ke Rekening 1 (sekarang 300). Transfer terakhir sebesar 1000 gagal karena Rekening 1 hanya memiliki 450.

Coba sendiri

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

-- Baca keenam input
local id1 = io.read()
local id2 = io.read()
local id3 = io.read()
local initialDeposit1 = tonumber(io.read())
local initialDeposit2 = tonumber(io.read())
local initialDeposit3 = tonumber(io.read())

-- Buat tiga akun dengan ID
-- TODO: buat account1, account2, account3 menggunakan Account:new()

-- Setorkan jumlah awal ke masing-masing akun
-- TODO: setorkan initialDeposit1 ke account1, initialDeposit2 ke account2, initialDeposit3 ke account3

-- Account 1 mentransfer 100 ke Account 2
-- TODO: account1:transfer(account2, 100)

-- Account 2 mentransfer 150 ke Account 3
-- TODO: account2:transfer(account3, 150)

-- Account 3 mentransfer 50 ke Account 1
-- TODO: account3:transfer(account1, 50)

-- Account 1 mencoba mentransfer 1000 ke Account 3 (ini seharusnya gagal)
-- TODO: account1:transfer(account3, 1000)

-- Cetak ketiga akun secara berurutan
-- TODO: cetak account1, account2, account3

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler Lua online