Tolong jelaskan mengenai Kelas data dari Kotlin (bahasa pemrograman)

Konstruksi data class Kotlin mendefinisikan kelas yang tujuan utamanya adalah menyimpan data. Konstruksi ini mirip dengan kelas normal kecuali bahwa fungsi kunci equals, toString, dan kode hashCode secara otomatis dihasilkan dari properti kelas. Di Jawa, kelas seperti itu diharapkan menyediakan berbagai macam fungsi standar seperti itu. Kelas data tidak diharuskan untuk mendeklarasikan metode apa pun, meskipun masing-masing harus memiliki setidaknya satu properti. Kelas data sering ditulis tanpa badan, meskipun dimungkinkan untuk memberikan kelas data metode apa pun atau konstruktor sekunder yang valid untuk kelas lain mana pun. Kata kunci data digunakan sebelum kata kunci class untuk mendefinisikan kelas data.// data class with parameters and their optional default values

data class Book(val name: String = "", val price: Int = 0)