Menu
CoddyTech

Atribut (Anggota Data)

Termasuk bagian Pemrograman Berorientasi Object dalam perjalanan C++ di Coddy. Pelajaran 9 dari 104.

Data member (atribut) menyimpan state object. Data member biasanya dideklarasikan sebagai private dan diakses melalui method getter/setter publik. Ini disebut enkapsulasi.

Anggota data privat

class BankAccount {
private:
    std::string accountName;
    int balance;
};

Getter dan setter publik

class BankAccount {
private:
    std::string accountName;
    int balance;

public:
    void setBalance(int balance) {
        this->balance = balance;
    }
    
    int getBalance() {
        return this->balance;
    }
};

Setter dengan validasi

void BankAccount::setBalance(int balance) {
    if (balance >= 0) {
        this->balance = balance;
    }
}

Penentu akses

class MyClass {
private:    // Hanya dapat diakses di dalam class
    int secret;

public:     // Dapat diakses dari mana saja
    int getSecret() { return secret; }

protected:  // Dapat diakses di dalam class dan subclass
    int shared;
};

Menjadikan anggota data private menyembunyikannya dari kode luar. Getter mengembalikan nilainya, sedangkan setter mengubahnya dengan validasi opsional. Ini melindungi datamu dan mengontrol cara data diakses.

challenge icon

Tantangan

Sedang

Buat BankAccount class dengan anggota data privat dan method akses publik:

  • Anggota privat: accountName (string), balance (int)
  • Setter: setAccountName, setBalance
  • Getter: getAccountName, getBalance
  • deposit(int amount): menambahkan ke saldo jika amount > 0
  • withdraw(int amount): mengembalikan "Success" jika memungkinkan, jika tidak, "Insufficient funds"

Coba sendiri

#include <iostream>
#include "BankAccount.h"

int main() {
    std::string name;
    int initial, depositAmt;
    std::getline(std::cin, name);
    std::cin >> initial >> depositAmt;
    
    BankAccount account;
    account.setAccountName(name);
    account.setBalance(initial);
    
    std::cout << "Account: " << account.getAccountName() << std::endl;
    std::cout << "Balance: " << account.getBalance() << std::endl;
    
    account.deposit(depositAmt);
    std::cout << "After deposit: " << account.getBalance() << std::endl;
    
    std::string result = account.withdraw(2000);
    std::cout << "Withdraw 2000: " << result << std::endl;
    std::cout << "Final Balance: " << account.getBalance() << std::endl;
    return 0;
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Pemrograman Berorientasi Object

Latihan sendiri: Compiler C++ online