OOP (Object Oriented Programming) Enumerated Types, Mixins, Extension Methods Pada Bahasa Pemrograman DART

Pendahuluan

Bahasa pemrograman merupakan sekumpulan kata yang di wujudkan dalam sebuah perintah atau intruksi yang terdiri dari banyak baris yang bisa di mengerti oleh komputer. Bahasa pemrograman merupakan hal yang penting yang harus di kuasai oleh seorang programmer karna dalam membuat dan membangun aplikasi tentunya kita membutuhkan bahasa pemrograman. ada banyak bahasa pemrograman di dunia ini, pilihlah bahasa pemrograman yang sesuai dengan kebutuhan. Jika anda ingin membuat sebuah website anda bisa memilih bahasa pemrograman Html, Css, javaScript, DLL. dan jika anda ingin membuat sebuah aplikasi mobile anda bisa memilih bahasa pemrograman Java, Kotlin, Dart dan masih banyak lagi. Pada dasarnya bahasa pemrograman merupakan pondasi bagi seorang programmer, dan pada kesempatan kali ini kita akan mempelajari Object Oriented Programming atau yang biasa di singkat menjadi OOP pada bahasa pemrograman Dart. yap seperti yang kita bahas tadi bahwa bahasa pemrograman Dart adalah salah satu bahasa yang digunakan untuk membuat aplikasi mobile. sebelum kita membahas Object Oriented Programming pada dart mari kita kenalan dulu dengan Dart nya.

Apa Itu Dart

Dart merupakan bahasa pemrograman yang di kembangkan oleh google untuk kebutuhan umum dan Dart adalah bahasa pemrograman yang gratis atau open source. Dart bisa kita gunakan untuk membuat aplikasi android, front-end web, IoT, backend (CLI), game dan lain-lain.

Bahasa pemrograman Dart bisa anda pelajari dengan mudah. Untuk anda yang baru akan mempelajari bahasa pemrograman tentunya Dart bisa menjadi first languge anda, atau untuk anda yang sebelumnya sudah mempejari bahasa pemrograman seperti Javascript atau C tentunya anda tidak akan membutuhkan waktu lama untuk bisa mempelajari bahasa pemrograman dart ini.

dan seperti bahasa pemrograman lain dart juga mendukung pemrograman berorientasi objek. apa itu pemrograman berorientasi objek? mari kita bahasa lebih lanjut.

Object Oriented Programming (OOP)

Object oriented programming atau pemrograman berorientasi objek merupakan paradigma pemrograman yang berfokus pada konsep objek. OOP pada dart memiliki banyak fitur yang dapat anda gunakan untuk menciptakan dan mengelola objek, menerapkan konsep pewarisan, polimorfisme, enkapsulasi, dan masih banyak lagi. Tapi yang akan kita bahas dalam artikel kali ini adalah Enumerated Types, Mixins dan Extension Methods. tidak usah risau tentang istilah tadi karna pada artikel ini kita akan menpelajarinya secara jelas dan detail.

Enumerated Types

Enumerated Types atau yang biasa di sebut enum adalah sebuah tipe data khusus dalam pemrograman yang digunakan untuk menyimpan nilai-nilai tetap (konstan) yang terkait. Biasanya kita memberikan label nama pada setiap nilai tersebut agar lebih mudah dimengerti dan dibaca dalam kode. Dalam dart, kita memiliki kata kunci ‘enum’ untuk mendefiniskan Enumerated Type.

Enum memberikan kejelasan dan eksplisit dalam menyusun kode, karena nilai-nilai yang digunakan dalam enum terbatas dan sudah ditentukan sebelumnya.

Cara Membuat Enumerated Type di Dart :

enum Status {
  pending,
  processing,
  shipped,
  delivered,
  cancelled,
}

Dalam contoh di atas, kita mendefinisikan sebuah Enumerated Type dengan nama Status, dan mempunyai lima nilai konstan: pending, processing, shipped, delivered, dan cancelled.

Menggunakan Enum dalam OOP Dart

Setelah kita mendefinisikan Enumerated Type, kita bisa menggunakannya dalam kode program kita.

Berikut adalah contoh penggunaan Enum dalam OOP Dart:
enum Status {
  pending,
  processing,
  shipped,
  delivered,
  cancelled,
}

class Order {
  int id;
  String customer;
  Status status;

  Order(this.id, this.customer, this.status);
}

void main() {
  Order order1 = Order(1, "Maikel Door", Status.processing);
  Order order2 = Order(2, "Jerumis Trunk", Status.delivered);

  print("Order 1 status: ${order1.status}");
  print("Order 2 status: ${order2.status}");
}

Dalam contoh di atas, kita memiliki kelas Order yang memiliki tiga properti: id, customer, dan status yang bertipe Status (enum yang telah kita definisikan sebelumnya). Kita membuat dua objek Order, masing-masing memiliki nilai status yang berbeda. Kemudian, kita mencetak status pesanan untuk kedua objek tersebut.

Keuntungan Penggunaan Enumerated Type dalam OOP Dart

Penggunaan Enumerated Type memiliki beberapa keuntungan:

  1. Kejelasan: Enum memberikan nama (label) yang jelas pada setiap nilai konstan, sehingga memudahkan dalam membaca dan memahami kode.
  2. Penghindaran Kesalahan: Dengan Enum, kita memastikan bahwa nilai yang digunakan dalam program adalah nilai yang valid dan telah ditentukan sebelumnya.
  3. Pemeliharaan Kode yang Lebih Mudah: Jika ada perubahan atau penambahan nilai baru, cukup dilakukan pada definisi Enum tanpa perlu mencari dan mengubah nilai secara manual dalam kode program.
  4. Code Editor Dukungan: Editor kode mendukung penautan otomatis (autocomplete) ketika menggunakan Enum, sehingga mengurangi risiko kesalahan pengetikan.

Mixins

Mixins adalah cara untuk membagikan kode antara kelas-kelas dalam Dart, sehingga kita dapat menerapkan fungsionalitas yang sama ke dalam banyak kelas tanpa harus membuat hierarki kelas yang dalam. Dalam OOP, pewarisan (inheritance) digunakan untuk berbagi fungsionalitas antara kelas-kelas, tetapi pewarisan memiliki batasan bahwa satu kelas hanya dapat mewarisi dari satu kelas lainnya. Dengan mixins, kita dapat mengatasi batasan tersebut dan membagikan kode ke beberapa kelas secara fleksibel.

Cara Menggunakan Mixins dalam Dart

Untuk menggunakan mixins dalam Dart, kita perlu mendefinisikan mixin terlebih dahulu dengan kata kunci mixin dan memberikan implementasi fungsionalitas yang ingin kita bagikan. Setelah itu, kita dapat menerapkan mixin ke kelas menggunakan kata kunci with. Berikut adalah contoh sintaks penggunaan mixins:

// Definisi mixin
mixin LoggingMixin {
  void log(String message) {
    print("Log: $message");
  }
}

// Penerapan mixin
class MyClass with LoggingMixin {
  // Kelas MyClass memiliki fungsi log dari LoggingMixin
}

Dalam contoh di atas, kita mendefinisikan mixin LoggingMixin yang memiliki fungsi log. Kemudian, kita menerapkan mixin tersebut ke kelas MyClass dengan menggunakan kata kunci with. Dengan demikian, kelas MyClass akan memiliki fungsionalitas log yang berasal dari mixin LoggingMixin.

Keuntungan Menggunakan Mixins dalam OOP Dart :

  1. Reusabilitas Kode: Mixins memungkinkan kita untuk memisahkan dan membagikan fungsionalitas yang dapat digunakan kembali ke banyak kelas tanpa perlu menulis kode yang sama berulang-ulang.
  2. Fleksibilitas: Dengan mixins, kita dapat menggabungkan fungsionalitas dari beberapa mixins ke dalam kelas-kelas yang berbeda, memberikan fleksibilitas dalam mengatur kode dan menghindari pembuatan hierarki kelas yang rumit.
  3. Penggantian Perilaku: Mixins memungkinkan kita untuk menggantikan perilaku kelas dengan menggunakan mixin lain, sehingga kita dapat mengubah atau menyesuaikan fungsionalitas kelas dengan mudah.

Extension Methods

Extension Methods adalah cara untuk menambahkan fungsionalitas tambahan ke kelas yang sudah ada tanpa harus mengubah kode asli dari kelas tersebut. Dalam bahasa lain, kita dapat “memperluas” kelas dengan fungsi baru tanpa harus mewarisi dari kelas tersebut. Extension Methods memungkinkan kita untuk menambahkan fungsi tambahan ke tipe data yang ada, termasuk tipe data bawaan atau kelas yang sudah didefinisikan sebelumnya.

Cara Menggunakan Extension Methods dalam Dart

Untuk menggunakan Extension Methods dalam Dart, kita perlu mendefinisikan ekstensi dengan kata kunci extension, memberikan nama untuk ekstensi, dan menentukan tipe data yang ingin kita perluas. Kemudian, kita menambahkan fungsi yang ingin kita tambahkan ke tipe data tersebut. Berikut adalah contoh sintaks penggunaan Extension Methods:

// Definisi ekstensi
extension MyStringExtension on String {
  String capitalize() {
    return this[0].toUpperCase() + this.substring(1);
  }
}

// Penggunaan ekstensi
void main() {
  String myString = "hello";
  print(myString.capitalize()); // Output: "Hello"
}

Dalam contoh di atas, kita mendefinisikan ekstensi MyStringExtension untuk tipe data String. Ekstensi ini menambahkan fungsi capitalize() yang mengubah huruf pertama dari string menjadi huruf kapital.

Keuntungan Menggunakan Extension Methods dalam OOP Dart :

  1. Tidak Mengganggu Kode Asli: Extension Methods memungkinkan kita untuk menambahkan fungsionalitas tambahan tanpa harus merubah kode asli dari kelas tersebut. Ini menghindari potensi efek samping atau perubahan yang tidak diinginkan pada kode yang sudah ada.
  2. Pemisahan Kode: Extension Methods memungkinkan kita untuk memisahkan kode fungsionalitas tambahan ke dalam ekstensi terpisah, sehingga meningkatkan keterbacaan dan pemeliharaan kode.
  3. Penambahan Fungsionalitas Tanpa Pewarisan: Dengan Extension Methods, kita dapat menambahkan fungsi tambahan ke tipe data yang tidak kita miliki atau tidak bisa kita ubah, tanpa harus mewarisi dari kelas tersebut.

Kesimpulan

Artikel ini membahas tentang dasar-dasar bahasa pemrograman Dart, pengenalan Dart sebagai bahasa pemrograman yang dikembangkan oleh Google, serta kegunaannya untuk berbagai jenis aplikasi seperti Android, frontend web, IoT, dan lain-lain. Bahasa pemrograman Dart mendukung pemrograman berorientasi objek (OOP) dengan berbagai fitur, termasuk Enumerated Types, Mixins, dan Extension Methods. Enumerated Types adalah tipe data khusus untuk menyimpan nilai tetap dengan label nama, meningkatkan kejelasan dan penghindaran kesalahan dalam kode. Mixins membagikan kode antara kelas-kelas tanpa hierarki yang kompleks, meningkatkan fleksibilitas dan reusabilitas kode. Extension Methods memperluas fungsionalitas kelas tanpa merubah kode asli, meningkatkan fleksibilitas dan pemisahan kode. Dengan menguasai konsep-konsep OOP ini, para pengembang dapat membangun aplikasi yang lebih efisien dan mudah dipelihara dengan bahasa pemrograman Dart.

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

Penulis : Syahril Sobirin