Menu
CoddyTech

method yang mengubah state

Termasuk bagian Pemrograman Berorientasi Objek dalam perjalanan JavaScript di Coddy. Pelajaran 15 dari 56.

Method dalam class JavaScript dapat mengubah state (property) suatu object. Ini adalah salah satu fitur utama pemrograman berorientasi object.

Mari buat class BankAccount sederhana:

class BankAccount {
  constructor(owner, balance = 0) {
    this.owner = owner;
    this.balance = balance;
  }
  
  deposit(amount) {
    this.balance += amount;
  }
}

Sekarang mari buat sebuah instance dan ubah state-nya:

const johnsAccount = new BankAccount("John", 100);
console.log(johnsAccount.balance); // Output: 100

johnsAccount.deposit(50);
console.log(johnsAccount.balance); // Output: 150

Dalam contoh ini, method deposit() mengubah state internal (property balance) dari instance BankAccount.

Kita bisa menambahkan lebih banyak method yang mengubah state:

class BankAccount {
  constructor(owner, balance = 0) {
    this.owner = owner;
    this.balance = balance;
  }
  
  deposit(amount) {
    this.balance += amount;
  }
  
  withdraw(amount) {
    if (amount <= this.balance) {
      this.balance -= amount;
    }
  }
  
  transfer(amount, toAccount) {
    if (amount <= this.balance) {
      this.balance -= amount;
      toAccount.balance += amount;
    }
  }
}

Sekarang kita bisa mengelola rekening bank kita dengan berbagai cara.

challenge icon

Tantangan

Kamu diberi sebuah class Thermostat. Tugasmu adalah menambahkan method untuk mengubah keadaan suhunya:

  1. increaseTemp() - menaikkan suhu sebesar 1 derajat
  2. decreaseTemp() - menurunkan suhu sebesar 1 derajat

Coba sendiri

import { Thermostat } from './thermostat.js';

// Kode pengujian, jangan diubah
const livingRoom = new Thermostat("Living Room", 20);

livingRoom.increaseTemp();
livingRoom.increaseTemp();
console.log(livingRoom.currentTemp); // Seharusnya menghasilkan output 22

livingRoom.decreaseTemp();
console.log(livingRoom.currentTemp); // Seharusnya menghasilkan output 21
quiz iconUji dirimu

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

Semua pelajaran di Pemrograman Berorientasi Objek

Latihan sendiri: Compiler JavaScript online