Dart type systems - Generic

The Ngoding

Kita masuk pada pembahasan pertama tentang dart type system, yaitu generic. Pada video video sebelumnya saya selalu bilang Batasan ya, sekarang kita ganti dengan sebutan generic type OK. Hal ini aku lakukan agar teman teman tidak terkontaminasi dengan penyebutannya yang keren ya hahahah.

Ok, sekali lagi saya ingetin ya teman teman, jangan pelajari materi ini sebelum memahami OOP pada module sebelumnya. Karena materi ini akan memanfaatkan konsep OOP yang sudah kita pelajari sebelumnya.

Oke kita lanjutkan, apa itu generic type ?

Contoh Generic Type

Generic type adalah sebuah tipe data yang dapat digunakan untuk menampung data dengan tipe data yang berbeda. Sebagai contoh, kita punya sebuah list yang berisi data dengan tipe data yang berbeda, seperti ini :

    void main(){
      List a = [1,2,3,4,5];
      List b = ['a','b','c','d','e'];
      List c = [1,'a',2,'b',3,'c'];
    }

Kita bisa lihat bahwa list a, b, dan c memiliki tipe data yang berbeda. lho genericnya dimana ?

Secara default list di dart memiliki tipe data dynamic, jadi kita bisa memasukkan data dengan tipe data yang berbeda. Jika kita ingin membuat list dengan tipe data yang berbeda, kita bisa menggunakan generic type.

    void main(){
      List<int> a = [1,2,3,4,5];
      List<String> b = ['a','b','c','d','e'];
      List<dynamic> c = [1,'a',2,'b',3,'c'];
    }

Kita bisa lihat bahwa pada list a dan b, kita menggunakan generic type int dan String. Sedangkan pada list c, kita menggunakan tipe data dynamic.

lambang <type data> adalah lambang generic type, kita bisa menggunakan generic type untuk membuat tipe data yang berbeda.

Membuat Class Generic Sendiri

Sebagaimana kita sudah tahu, class di dart adalah sebuah blueprint untuk membuat object. Jika kita ingin membuat class generic, kita bisa menggunakan generic type.

    class Generic<T>{
      T data;
      Generic(this.data);
    }

Kita bisa lihat bahwa pada class generic, kita menggunakan generic type T. T adalah sebuah placeholder yang akan diganti dengan tipe data yang kita inginkan. Jika kita ingin membuat class generic dengan tipe data int, kita bisa menggunakan generic type int.

    class GenericInt{
      int data;
      GenericInt(this.data);
    }

Kita bisa lihat bahwa pada class generic int, kita menggunakan tipe data int. Jika kita ingin membuat class generic dengan tipe data string, kita bisa menggunakan generic type string.

    class GenericString{
      String data;
      GenericString(this.data);
    }

Kita bisa lihat bahwa pada class generic string, kita menggunakan tipe data string. Jika kita ingin membuat class generic dengan tipe data dynamic, kita bisa menggunakan generic type dynamic.

    class GenericDynamic{
      dynamic data;
      GenericDynamic(this.data);
    }

Kita mempunyai 4 contoh codigan, dimana masing masing memiliki input parameter pada constructornya dengan tipe data yang berbeda beda. Codingan pertama dan codigan ke 4 lah yang dapat menampung semua type yang kita mau, akan tetapi ada perbedaan besar pada keduanya yaitu dynamic dan T.

Dengan T kita tidak perlu lagi mengkonversi atau mengecek tipe data, sedangkan dengan generyc kita harus mengecek type datanya sudah benar atau tidak.

{{< youtube id="69kC0FOvth8" autoplay="true" color="white" yt_start="12" yt_end="24">}}


✨”Jika Kamu tidak sanggup menahan lelahnya belajar maka kamu harus sanggup menahan perihnya kebodohan” ✨Imam Syafi'i

Video

The Ngoding

13 Alasan Jetpack Compose Lebih Baik untuk Pengembangan Aplikasi Android

Cong Fandi

Jetpack Compose - Surface

Cong Fandi

Jetpack Compose - CutCornerShape

Cong Fandi

Jetpack Compose - RoundedCornerShape

Cong Fandi

Jetpack Compose - CircleShape

Cong Fandi

Jetpack Compose - ConstraintSet

Cong Fandi

Jetpack Compose - BadgeBox

Cong Fandi

Video

The Ngoding

Categories

Tags