Data Classes Pada Kotlin

Data classes adalah deklarasi kelas sederhana yang memungkinkan kompiler akan secara otomatis menghasilkan constructor, toString(), equals(), hashCode(), copy() dan juga fungsi componentN(). Keyword data yang menandakan bahwa kelas tersebut merupakan sebuah data class.Beberapa hal yang perlu diperhatikan dalam membuat sebuah data class adalah:
  • Minimal memiliki satu parameter pada konstruktor utamanya
  • Semua konstruktor utama perlu dideklarasikan sebagai val atau var
  • Modifier dari sebuah data class tidak bisa abstract, open, sealed, atau inner 
Berikut Contoh program untuk memahami perbedaan kelas dengan dan tanpa keyword data :
Bisa diperhatikan, bahwa objek user menghasilkan com.wahanakoding.kotlin.modul5.dataclasses.User@6b71769e dimana com.wahanakoding.kotlin.modul5.dataclasses merupakan nama package tempat kelas User berada. User adalah nama dari kelas itu sendiri, dan @6b71769e adalah memory address dari kelas tersebut. Sedangkan, objek dataUser menghasilkan teks DataUser(name=Fachri, age=16), yaitu nama kelas disertai dengan semua properti di dalamnya dan value dari properti tersebut.

Contoh lain untuk menggambarkan kelebihan dari data classes adalah dalam data classes mampu membandingkan 2 objek berbeda dengan sangat mudah menggunakan equals(). Berikut contoh programnya seperti ini :
Dapat diperhatikan program diatas, untuk kelas mahasiswa dengan objek yang sama tetap bernilai false. Hal ini tentunya berbeda dengan kelas DataMahasiswa yang menghasilkan true ketika ojek sama fan false ketika objek memang berbeda

Lalu bagaimana jika tanpa data classes namun tetap dapat menggunakan method equals() dengan sesuai, yaitu dengan kita override method equls secara manual. Berikut contoh program override dari equals() dan hashcode().
Berikut contoh programm override atau boilerplate code method equal() dan hashcode() supaya hasil sesuai untuk compare.
Menyalin dan Memodifikasi Data Class dapat menggunakan fungsi copy().Berikut Contoh programnya :
Tanpa data class, untuk melakukan tugas seperti program diatas kita diharuskan membuta sebuah instance baru
untuk mengubah nilai dari suatu objek. Dengan demikian kita harus memodifikasi properti yang kita maksud. Tugas ini akan berulang dan membuat kode yang kita tulis, jauh dari paradigma clean code.
untuk mengurangi jumlah kode boilerplate yang Anda tuliskan pada baris code dapat juga memanfaatkan Destructuring Declarations yang mampu memetakan objek menjadi sebuah variabel.Dengan fungsi componentN() yang ada pada data class, kita bisa menguraikan sebuah objek menjadi beberapa properti yang dimilikinya. Sebagai contoh, kita ingin menguraikan objek dataUser:
Di dalam data classes dapat menerapkan sebuah behaviour di dalam data class. Contoh kode seperti berikut :

No comments:

Post a Comment