Menu
CoddyTech

Mendapatkan Saldo

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan C di Coddy. Pelajaran 26 dari 61.

challenge icon

Tantangan

Mudah

Rekening Bank-mu hampir selesai! Kamu sudah membangun kemampuan untuk membuat rekening, menyetor dana, dan menarik uang, tetapi masih ada satu bagian penting yang belum ada. Saat ini, kode eksternal tidak dapat melihat saldo terkini. Mari kita perbaiki dengan menambahkan fungsi getter.

Getter adalah cara yang tepat untuk mengekspos data tersembunyi dalam module yang dienkapsulasi. Alih-alih membuat field saldo menjadi public (yang akan merusak enkapsulasi), kamu menyediakan fungsi hanya-baca yang mengembalikan nilai tersebut. Ini menjaga data tetap terlindungi sekaligus memungkinkan akses yang terkendali.

Kamu akan melanjutkan pekerjaan dengan tiga file:

  • account.h: Tambahkan prototype fungsi baru: get_balance. Fungsi ini menerima const Account * (karena hanya membaca data, tidak pernah mengubahnya) dan mengembalikan double yang mewakili saldo terkini. Pertahankan semua deklarasi yang sudah ada.
  • account.c: Implementasikan fungsi get_balance. Fungsi ini hanya mengembalikan field saldo tersembunyi dari rekening. Perhatikan bahwa fungsi ini dapat mengakses data internal karena didefinisikan di file yang sama dengan struct: kode eksternal tetap tidak dapat mengintip isinya secara langsung.
  • main.c: Sekarang kamu akhirnya bisa melihat apa yang terjadi di dalam rekeningmu! Buat rekening, lakukan beberapa transaksi, dan gunakan getter baru untuk menampilkan saldo pada setiap tahap.

Kamu akan menerima empat input: ID rekening (bilangan bulat), jumlah setoran, jumlah penarikan, dan jumlah setoran kedua.

Di file utama, buat rekening dan cetak saldo awalnya (seharusnya 0.00). Setorkan jumlah pertama dan cetak saldo baru. Tarik jumlah yang ditentukan dan cetak saldo lagi. Terakhir, lakukan setoran kedua dan cetak saldo akhir. Lalu hancurkan rekening tersebut.

Cetak output dengan format ini:

Account 1001 created
Balance: 0.00
Balance: 500.00
Balance: 200.00
Balance: 350.00
Account destroyed

Di sini, 1001 adalah ID rekening, dan saldo mencerminkan: saldo awal (0.00), setelah menyetor 500.00, setelah menarik 300.00, dan setelah menyetor 150.00 lagi. Format semua nilai saldo dengan dua angka desimal menggunakan %.2f.

Dengan getter ini, module Rekening Bank-mu kini menyediakan akses yang lengkap dan terkendali ke data rekening: pengguna dapat melihat saldo, tetapi hanya dapat mengubahnya melalui fungsi setoran dan penarikanmu yang sudah divalidasi.

Coba sendiri

#include <stdio.h>
#include "account.h"

int main() {
    int account_id;
    scanf("%d", &account_id);
    
    double deposit1;
    scanf("%lf", &deposit1);
    
    double withdraw_amount;
    scanf("%lf", &withdraw_amount);
    
    double deposit2;
    scanf("%lf", &deposit2);
    
    Account* account = create_account(account_id);
    printf("Account %d created\n", account_id);
    
    // TODO: Cetak saldo awal menggunakan get_balance
    
    deposit(account, deposit1);
    // TODO: Cetak saldo setelah setoran pertama
    
    withdraw(account, withdraw_amount);
    // TODO: Cetak saldo setelah penarikan
    
    deposit(account, deposit2);
    // TODO: Cetak saldo setelah setoran kedua
    
    destroy_account(account);
    printf("Account destroyed\n");
    
    return 0;
}

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler C online