Destructuring Declaration adalah proses memetakan objek menjadi sebuah variabel. Ini bisa dengan mudah kita lakukan pada data class. 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:
1. fun main(){ 2. val dataUser = DataUser("nrohmen", 17) 3. 4. val name = dataUser.component1() 5. val age = dataUser.component2() 6. 7. println("My name is $name, I am $age years old") 8. }
Maka jika kode di atas dijalankan, konsol akan menampilkan teks berikut:
My name is nrohmen, I am 17 years old
Fungsi component1() dan component2() dihasilkan sesuai dengan jumlah properti yang ada pada data class tersebut. Maka jika sebuah data class memiliki sejumlah N properti, maka secara otomatis componentN() akan dihasilkan.
Kita juga dapat membuat beberapa variabel dari objek secara langsung dengan kode seperti berikut:
1. fun main(){ 2. val dataUser = DataUser("nrohmen", 17) 3. val (name, age) = dataUser 4. 5. println("My name is $name, I am $age years old") 6. }
Jika dijalankan, seharusnya konsol akan menampilkan hasil yang sama seperti kode sebelumnya.
Kesimpulannya, seperti aspek - aspek lain dari Kotlin, data class bertujuan untuk mengurangi jumlah kode boilerplate yang Anda tuliskan. Dan perlu diketahui bahwa data class tidak hanya sekedar untuk mengelola properti yang ada di dalamnya. Ketika mempunyai data yang sangat kompleks, kita juga bisa menerapkan sebuah behaviour di dalam data class. Contoh sederhananya, kita bisa membuat fungsi di dalam data class seperti berikut:
1. data class DataUser(val name : String, val age : Int){ 2. fun intro(){ 3. println("My name is $name, I am $age years old") 4. } 5. }
Dan langsung mengaksesnya dari fungsi main():
1. fun main(){ 2. val dataUser = DataUser("nrohmen", 23) 3. dataUser.intro() 4. }