3 Konsep Utama yang Sering Digunakan Pada OOP dalam Bahasa DART

Dart adalah bahasa pemrograman modern yang dikembangkan oleh Google, khususnya untuk pengembangan aplikasi mobile, web, dan server. Dart adalah bahasa yang menggunakan paradigma berorientasi objek (OOP), yang memungkinkan pengguna untuk membuat kode yang terstruktur, mudah dipahami, dan mudah untuk dipelihara. Dalam bahasa Dart, ada tiga konsep utama yang sering digunakan dalam pemrograman berorientasi objek, yaitu Constructor, Cascade Notation, dan Inheritance. Mari kita bahas masing-masing konsep secara rinci:

Constructor:

Definisi dan Fungsi Constructor: Constructor adalah sebuah method khusus dalam sebuah kelas yang berfungsi untuk membuat dan menginisialisasi objek dari kelas tersebut. Saat sebuah objek dibuat, constructor digunakan untuk mengalokasikan memori untuk objek, dan dapat melakukan inisialisasi nilai-nilai awal ke dalam objek tersebut. Dart mendukung beberapa jenis constructor, termasuk default constructor, named constructor, dan parameterized constructor.

Penggunaan Constructor: Untuk membuat objek dari sebuah kelas, kita perlu memanggil constructor kelas tersebut dengan menggunakan sintaks new NamaKelas() atau hanya NamaKelas() jika default constructor tersedia. Jika menggunakan parameterized constructor, kita dapat menyertakan nilai-parameter dalam tanda kurung untuk menginisialisasi nilai-nilai pada objek.

Contoh Penggunaan Constructor:

dartCopy codeclass Person {
  String name;
  int age;

  // Default Constructor
  Person() {
    name = 'John Doe';
    age = 30;
  }

  // Parameterized Constructor
  Person.withData(String name, int age) {
    this.name = name;
    this.age = age;
  }
}

void main() {
  // Membuat objek menggunakan default constructor
  var person1 = Person();
  print('Name: ${person1.name}, Age: ${person1.age}');

  // Membuat objek menggunakan parameterized constructor
  var person2 = Person.withData('Alice', 25);
  print('Name: ${person2.name}, Age: ${person2.age}');
}

Cascade Notation:

Definisi dan Fungsi Cascade Notation: Cascade Notation (atau kadang disebut dengan cascade operator ..) adalah fitur yang memungkinkan kita untuk memanggil beberapa method pada objek yang sama secara berurutan, tanpa harus menyimpan objek dalam variabel terlebih dahulu. Fitur ini sangat berguna untuk memodifikasi objek secara efisien dan singkat.

Penggunaan Cascade Notation: Untuk menggunakan cascade notation, kita gunakan operator .. setelah membuat objek. Setelah itu, kita bisa memanggil method-method pada objek yang sama dengan menggunakan tanda kurung () seperti biasa. Setiap method yang dipanggil dengan cascade notation harus mengembalikan objek tersebut, sehingga kita dapat terus memanggil method berikutnya.

Contoh Penggunaan Cascade Notation:

dartCopy codeclass Person {
  String name;
  int age;

  void setName(String name) {
    this.name = name;
  }

  void setAge(int age) {
    this.age = age;
  }

  void printInfo() {
    print('Name: $name, Age: $age');
  }
}

void main() {
  var person = Person()
    ..setName('John Doe')
    ..setAge(30)
    ..printInfo();
}

Inheritance:

Definisi dan Fungsi Inheritance: Inheritance adalah konsep dalam pemrograman berorientasi objek yang memungkinkan kita untuk membuat kelas baru (kelas turunan atau subclass) yang mewarisi sifat-sifat dan perilaku dari kelas yang sudah ada (kelas induk atau superclass). Dengan inheritance, kita dapat menggunakan kembali kode yang sudah ada, menerapkan hierarki kelas, dan membagi kode menjadi bagian-bagian yang lebih kecil dan terorganisir.

Penggunaan Inheritance: Untuk menggunakan inheritance, kita gunakan kata kunci extends diikuti dengan nama kelas induk saat mendefinisikan kelas turunan. Kelas turunan akan memiliki semua anggota (properties dan methods) dari kelas induk, dan kita juga dapat menambahkan anggota tambahan atau mengganti perilaku anggota yang sudah ada dalam kelas turunan.

Contoh Penggunaan Inheritance:

dartCopy codeclass Animal {
  String name;

  Animal(this.name);

  void eat() {
    print('$name is eating.');
  }
}

class Cat extends Animal {
  int lives;

  Cat(String name, this.lives) : super(name);

  void meow() {
    print('$name is meowing.');
  }

  @override
  void eat() {
    print('$name is eating quietly.');
  }
}

void main() {
  var cat = Cat('Whiskers', 9);
  cat.eat(); // Output: Whiskers is eating quietly.
  cat.meow(); // Output: Whiskers is meowing.
}

Referensi:

Tertarik mengikuti training di ID-Networkers? Kami menyediakan berbagai pilihan training yang bisa kamu ikuti, klik disini untuk info lengkapnya.

Penulis : Muhammad Dzafif Fawwaz Ghazy