Classes
Seperti yang telah dijelaskan dalam pembahasan objek, Class merupakan sebuah blueprint.
Di dalam kelas ini kita mendefinisikan sesuatu yang merupakan attribute ataupun behaviour. Contohnya pada sebuah kelas Kendaraan, atributnya berupa roda, warna, nomor kendaraan, merk, dll. Sedangkan untuk behaviour nya yaitu maju, mundur, belok kanan, belok kiri, berhenti.
Contoh lainnya pada sebuah kelas Hewan atributnya berupa nama, berat, umur, termasuk mamalia atau bukan dll. Sedangkan untuk behaviour-nya bisa makan, tidur, berjalan, dsb.
Setiap kelas memiliki atribut dan behaviour. Dalam Kotlin attributes lebih sering disebut dengan properties, sedangkan behaviour sering disebut functions. Properti dalam sebuah kelas memiliki tipe data.
Contoh, untuk properti berat pada kelas Hewan dapat bertipe Double, nama dapat bertipe String, umur dapat bertipe Int dan indikasi mamalia dapat bertipe Boolean. Jika kelas Hewan kita representasikan dalam bentuk tabel maka akan terlihat seperti:
Animal |
+ name: String + weight: Double + age: Int + isMammal: Boolean |
- eat() - sleep() |
+ merupakan properti
- merupakan fungsi
- merupakan fungsi
Pada pembahasan selanjutnya kita akan mencoba membuat sebuah kelas berdasarkan bentuk tabel di atas. Namun sebelum kita lanjut ke pembahasan berikutnya, mari kita tekankan kembali beberapa hal yang sudah kita pelajari:
- Class: Merupakan sebuah blueprint yang terdapat properti dan fungsi di dalamnya
- Properties: Karakteristik dari sebuah kelas, memiliki tipe data.
- Functions: Kemampuan atau aksi dari sebuah kelas
Membuat Kelas
Untuk mendefinisikan kelas dalam Kotlin, Anda cukup gunakan kata kunci class diikuti dengan nama kelas yang akan dibuat. Mari kita buat contoh kelas pada Kotlin:
- class Animal
Sangat mudah bukan? Sekarang kita tambahkan properti dan fungsi pada kelas tersebut.
- class Animal(val name: String,
- val weight: Double,
- val age: Int,
- val isMammal: Boolean
- ) {
- fun eat(){
- println("$name makan !")
- }
- fun sleep() {
- println("$name tidur !")
- }
- }
Lalu untuk membuat sebuah objek dari suatu kelas, Anda bisa perhatikan struktur kode berikut:
- val nameOfObject = NameOfClass([property1], [property2])
Sama seperti variabel, kita bisa gunakan val atau var, dilanjutkan dengan nama objek yang akan anda buat. Tanda = menunjukan bahwa kita akan menginisialisasi suatu objek, kemudian diikuti dengan nama kelas dan tanda kurung.
Tanda kurung tersebut menunjukan bahwa kita membuat sebuah objek baru. Di dalam tanda kurung kita dapat menambahkan nilai properti sesuai yang dibutuhkan pada primary constructor kelasnya.
Maka jika kita coba membuat objek dari kelas yang sudah kita buat, kodenya akan terlihat seperti ini:
- val dicodingCat = Animal("Dicoding Miaw", 4.2, 2,true)
Mari kita coba buat kode secara keseluruhan dengan ditambahkan fungsi cetak untuk melihat nilai properti dalam objeknya.
- class Animal(val name: String,
- val weight: Double,
- val age: Int,
- val isMammal: Boolean
- ) {
- fun eat(){
- println("$name makan!")
- }
- fun sleep() {
- println("$name tidur!")
- }
- }
- fun main() {
- val dicodingCat = Animal("Dicoding Miaw", 4.2, 2,true)
- println("Nama: ${dicodingCat.name}, Berat: ${dicodingCat.weight}, Umur: ${dicodingCat.age}, mamalia: ${dicodingCat.isMammal}" )
- dicodingCat.eat()
- dicodingCat.sleep()
- }
Dengan menjalankan program tersebut, maka outputnya sebagai berikut:
Nama: Dicoding Miaw, Berat: 4.2, Umur: 2, mamalia: true
Dicoding Miaw makan!
Dicoding Miaw tidur!
Dicoding Miaw makan!
Dicoding Miaw tidur!