1. Penjelasan
Pemrograman Berorientasi Objek (OOP) di Dart adalah paradigma pemrograman yang berbasis pada konsep objek. Dart, sebagai bahasa yang modern dan fleksibel, mendukung prinsip-prinsip utama OOP: inheritance (pewarisan), encapsulation (enkapsulasi), dan polymorphism (polimorfisme).
1. Konsep Dasar OOP di Dart
A. Class dan Object
- Class adalah cetak biru untuk membuat objek.
- Object adalah instance dari sebuah class.
class Person {
String name;
int age;
// Constructor
Person(this.name, this.age);
// Method
void introduce() {
print("Hi, my name is $name and I am $age years old.");
}
}
void main() {
// Membuat objek
var person = Person("Alice", 25);
person.introduce();
}
B. Encapsulation
Menyembunyikan detail implementasi dan hanya menyediakan akses melalui properti atau metode.
- Menggunakan access modifier: private dengan awalan _.
class BankAccount {
String _accountNumber;
double _balance;
BankAccount(this._accountNumber, this._balance);
// Getter
double get balance => _balance;
// Setter
void deposit(double amount) {
_balance += amount;
}
}
void main() {
var account = BankAccount("12345", 1000.0);
account.deposit(500.0);
print("Balance: ${account.balance}");
}
C. Inheritance
Mewarisi properti dan metode dari class lain.
class Animal {
void eat() {
print("This animal is eating.");
}
}
class Dog extends Animal {
void bark() {
print("The dog is barking.");
}
}
void main() {
var dog = Dog();
dog.eat(); // Method dari superclass
dog.bark(); // Method dari subclass
}
D. Polymorphism Kemampuan untuk mengambil bentuk yang berbeda
class Animal {
void makeSound() {
print("Animal makes a sound.");
}
}
class Dog extends Animal {
@override
void makeSound() {
print("Dog barks.");
}
}
class Cat extends Animal {
@override
void makeSound() {
print("Cat meows.");
}
}
void main() {
Animal animal;
animal = Dog();
animal.makeSound();
animal = Cat();
animal.makeSound();
}
2. Features Lain di OOP Dart
MIXIN
Digunakan untuk berbagi metode atau properti antar class tanpa menggunakan inheritance.