Fitur Extension Methods pada Dart – getsolutionit.com
Fitur Extension Methods pada Dart

Extension Methods

Pada versi 2.7 Dart mengenalkan fitur baru yaitu extension methods. Tujuan dari fitur ini adalah supaya kita bisa membuat fungsionalitas tambahan dari library yang sudah ada.

Ketika Anda menggunakan library, baik itu library bawaan Dart atau pun library milik orang lain, ada kemungkinan library tersebut kurang lengkap sehingga kita perlu menambahkan beberapa fungsionalitas. 
Namun akan jadi PR kita untuk mengubah library yang sudah ada. Dengan extension method, kita dapat membuat fungsi atau method tambahan lalu menggunakannya sesuai dengan kebutuhan aplikasi kita.
Contoh sederhananya, kita memiliki variabel list integer.


  1. var unsortedNumbers = [2, 5, 3, 1, 4



Kita memiliki kebutuhan untuk mengurutkan nilai di dalam list tersebut namun List pada Dart tidak memiliki fungsi untuk mengurutkannya (Dart memiliki fungsi sort() namun bersifat mentransformasi list dan tidak mengembalikan nilai). Kita bisa membuat extension method dari objek List dengan sintaks seperti berikut:
  1. /* extension <extension name> on <type> {
  2.   (<member definition>)*
  3. } */
  4.  
  5. extension Sorting on List<int> {
  6.   List<int> sortAsc() {
  7.     var list = this
  8.     var length = this.length
  9.  
  10.  
  11.     for (int i = 0 i < length - 1 i++) {
  12.       int min = i
  13.       for (int j = i + 1 j < length j++) {
  14.         if (list[j] < list[min]) {
  15.           min = j
  16.         }
  17.       }
  18.  
  19.  
  20.       int tmp = list[min
  21.       list[min] = list[i
  22.       list[i] = tmp
  23.     }
  24.  
  25.  
  26.     return list
  27.   }
  28. }


Pada extension method di atas kita telah membuat method atau fungsi untuk mengurutkan data di dalam list menggunakan selection sort algorithm. Selanjutnya kita bisa memanggil method ini dari objek list.


  1. void main() {

  2.   var unsortedNumbers = [2, 5, 3, 1, 4

  3.   print(unsortedNumbers

  4.   var sortedNumbers = unsortedNumbers.sortAsc

  5.   print(sortedNumbers

  6.  

  7.  

  8.   /*

  9.   Output: [2, 5, 3, 1, 4]

  10.           [1, 2, 3, 4, 5]

  11.    */

  12. }



Kita juga bisa menggunakan kembali extension method ini di beberapa berkas yang berbeda sebagai library.



  1. import 'extension.dart'

  2.  

  3. void main() {

  4.   var unsortedNumbers = [2, 5, 3, 1, 4

  5.   print(unsortedNumbers

  6.   var sortedNumbers = unsortedNumbers.sortAsc

  7.   print(sortedNumbers

  8. }






  1. extension Sorting on List<int> {

  2.   List<int> sortAsc() {

  3.     var list = this

  4.     var length = this.length

  5.  

  6.     for (int i = 0 i < length - 1 i++) {

  7.       int min = i

  8.       for (int j = i + 1 j < length j++) {

  9.         if (list[j] < list[min]) {

  10.           min = j

  11.         }

  12.       }

  13.  

  14.       int tmp = list[min

  15.       list[min] = list[i

  16.       list[i] = tmp

  17.     }

  18.  

  19.     return list

  20.   }

  21. }

  22.  

  23. extension NumberParsing on String {

  24.   int parseInt() {

  25.     return int.parse(this

  26.   }

  27. }





Dijual Akun Youtube Sultan
Akun Sudah Memiliki 100-800.000 Subscribes & Sudah Monetisasi
Details
Dijual Akun FB, IG, LINKEDIN & Tiktok Mewah

Akun Sudah Memiliki 100-800.000 Followers

Details
Dijual Akun Twitter Mewah
Akun Sudah Memiliki 100-800.000 Followers
Details
Tools AI & Softwher
Tools AI & Beragam Softwher Serta Beragam Source Code Web Perimum
Details
.
Berikut List Produk Kami :

Dapatkan Produk Virtual Kmisini dengan harga pelajar, kualitas profesional ahli. 




Produk Yang Kami Jual Semua Berkualitas Premium & 100% Aman

Read More
Berikut List Layanan Kami :

Dapatkan layanan kami di sini dengan harga pelajar, kualitas profesional ahli. 




Jadikan Kami Tim Anda dalam Mengembangkan Bisnis Luar Biasa Anda.

Read More
Jasa Kelola Konten
Facebook, Instagram, Twitter, dan Linkedin
Details
Jasa Editing Video
Jasa mengelola Konten youtube dan tiktok
Details
Jasa Iklan Untuk Google
Website, Youtube, Gmail & Google Maps
Details
Jasa Website
Jasa Pembuatan website profesional
Details
Jasa SEO
Jasa SEO Website (search engine optimization)
Details
Jasa Tools AI
Setup & Pembuatan Tools
Details
Jasa Akun Terverifikasi
Centang Hijau / Biru All Media Sosial
Details
Jasa Pembuatan Project
IoT, Robotika, Elektronika dan Otomasi
Details
jasa sistem informasi
jasa pembuatan sistem informasi
Details
Jasa Pembuatan Aplikasi
Aplikasi Android, iOS dan Dekstop
Details
Jasa Google Maps
Jasa Pembuatan Titik Google Maps & Tambah Ulasan Positif
Details
Cyber Security
Jasa Cyber Security- Keamanan Semua Sistem
Details