() translation by (you can also view the original English article)
Kotlin adalah bahasa pemrograman modern yang mengkompilasi Java ke bytecode. Bahasa yang bebas dan open source, dan menjanjikan untuk membuat coding untuk Android bahkan lebih menyenangkan.
Kotlin 100% dioperasikan dengan Java. Dengan kata lain, itu dapat digunakan bersama dengan Java dalam proyek yang sama. Jadi Anda dapat refactor bagian dari kode Java untuk Kotlin dan itu tidak akan berpengaruh. Selain itu, ini ringkas, ekspresif, dan memiliki tool yang bagus. Kotlin dapat digunakan pada back-end (sisi server), tapi lebih banyak perhatian sekarang sebagai bahasa pengembangan aplikasi Android. Kotlin sekarang didukung oleh Google sebagai bahasa kelas satu untuk pengembangan Android , sehingga popularitas Kotlin menjadi meledak!
Dalam tutorial ini pertama dalam seri Kotlin dari awal, Anda akan belajar tentang dasar-dasar dari bahasa kotlin: komentar, variabel, jtipe data dasar, array, dan tipe inference.
Prasyarat
Untuk mengikuti bersama dengan saya, Anda memerlukan plugin Kotlin pada Android Studio. Sebagai alternatif, Anda bisa menggunakan online playground atau IntelliJ IDEA Community Edition.
1. Variabel
Dalam Kotlin, menggunakan val
untuk menyatakan kata kunci yang konstan atau var
untuk mendeklarasikan variabel. Anda dapat menentukan jenis seperti String
atau Int
setelah nama variabel. Dalam contoh di bawah ini, kami menyatakan firstName
konstan dari tipe data String
dengan kata kunci val
.
1 |
val firstName: String = "Chike" |
Tetapi Anda akan segera menyadari bahwa dalam Kotlin, hal ini sering dapat menghilangkan tipe dari deklarasi dan kompilator tidak akan mengeluh.
1 |
val lastName = "Mgbemena" // will still compile |
Pada kode di atas, Anda akan mengamati bahwa kami tidak secara eksplisit menyatakan tipe data String
. Kode di atas akan tetap bekerja karena kompilator secara implisit telah disimpulkan tipe menggunakan jenis kesimpulan. Kita akan kembali ke hal ini!
Perbedaan antara val
dan var
adalah immutable atau read-only (nilai tidak dapat berubah), sedangkan yang terakhir ini bisa berubah (nilainya dapat berubah).
1 |
val dateOfBirth = "29th March, 1709" |
2 |
dateOfBirth = "25th December, 1600" // cannot be changed |
3 |
|
4 |
var car = "Toyota Matrix" |
5 |
car = "Mercedes-Maybach" // can be changed |
Perhatikan bahwa untuk sebuah variabel dinyatakan dengan kata kunci var
yang memiliki jenis disimpulkan oleh kompilator, menetapkan nilai lain dari tipe yang berbeda tidak akan bekerja. Dengan kata lain, nilai dari variabel dapat berubah, tetapi jenis tidak! Sebagai contoh:
1 |
var age = 12 |
2 |
age = "12 years old" // Error: type mismatch |
Sangat disarankan bahwa Anda mulai dengan membuat variabel Anda abadi dengan menyatakan mereka dengan kata kunci val
, sehingga tidak dipusingkan dengan banyak state. Hal ini membuat kode Anda lebih aman bagi multithreading, memastikan variabel Anda tidak dapat diubah oleh thread lain tiba-tiba.
Hal lain yang harus Anda ketahui tentang kata kunci val
adalah bahwa Anda dapat mendeklarasikan dengan tipe hanya dan menetapkan nilai kemudian. Tetapi Anda hanya dapat menetapkan nilai sekali.
1 |
val carName: String |
2 |
carName = "Toyota Matrix" // will compile |
Di Java, mungkin untuk menyatakan beberapa variabel dari jenis yang sama pada satu baris, tetapi ini tidak berfungsi di Kotlin. Dalam Kotlin, Semua Deklarasi variabel harus pada garis mereka sendiri.
1 |
val carName = "BMW", streetName = "Oke street" // this won't compile |
2 |
|
3 |
// this will compile
|
4 |
var carName = "BMW" |
5 |
var streetName = "Oke street" |
2. Tipe Inference atau pengurangan
Kotlin adalah bahasa yang kuat yang mendukung jenis kesimpulan atau pengurangan. Ini adalah mekanisme yang digunakan oleh kompilator untuk mengetahui jenis dari konteks. Java tidak memiliki jenis kesimpulan mekanisme, yang berarti Anda harus secara eksplisit menyatakan jenis setiap fungsi atau variabel. Ketik kesimpulan yang membantu mengurangi kode boilerplate yang harus anda tulis.
1 |
val country = "Nigeria" // type is inferred by compiler |
2 |
val code = 234 |
Kode di atas akan mengkompilasi meskipun kita tidak secara eksplisit menyatakan jenis variabel. Kompilator cukup pintar untuk tahu bahwa negara adalah jenis String
, karena nilai, "Nigeria", adalah sebuah string.
3. Tipe Dasar
Di Java, kita memiliki dua jenis jenis — primitif (misalnya int, long, boolean, byte, char, dll) dan referensi jenis (misalnya array, String
). Jawa menggunakan pembungkus (seperti java.lang.Integer) untuk membuat tipe primitif yang berperilaku seperti objek. Tetapi dalam Kotlin, tidak ada perbedaan seperti itu. Sebaliknya, semua jenis adalah objek.
Nomor
Jenis integer yang tersedia di Kotlin adalah:
-
Long
-64 bit -
Int
-32 bit -
Short
— 16 bit -
Byte
— 8 bit
Jenis floating-point adalah:
-
Double
-64 bit -
Float
-32 bit
1 |
val myInt = 55 |
2 |
val myLong = 40L |
3 |
val myFloat = 34.43F |
4 |
val myDouble = 45.78 |
5 |
val myHexadecimal = 0x0F |
6 |
val myBinary = 0b010101 |
Anda dapat mengamati bahwa kita membuat literal Long
dengan menambahkan akhiran L
, dan untuk Float
kami menambahkan akhiran F
atau f
. Angka juga bisa ditulis dalam notasi heksadesimal menggunakan 0x
atau 0X
awalan dan dalam biner menggunakan prefiks 0b
atau 0B
. Perhatikan bahwa dalam semua kasus ini, Kotlin dapat menggunakan jenis kesimpulan untuk mengetahui jenis kita inginkan sebagai gantinya.
1 |
val myLong = 19L |
2 |
val myLongAgain: Long = 40 |
Untuk mengkonversi beberapa dari satu jenis yang lain, Anda harus secara eksplisit memanggil fungsi konversi yang sesuai. Dengan kata lain, ada tidak ada konversi implisit antara jenis nomor.
1 |
val myNumber = 400 |
2 |
val myNumberAgain: Long = myNumber // throws Error: Type mismatch |
Setiap jenis memiliki fungsi pembantu yang mengkonversi dari satu jenis lain: toByte()
, toInt()
, toLong()
, toFloat()
, toDouble()
, toChar()
, toShort()
.
1 |
val myInt = 987 |
2 |
val myLong = myInt.toLong() |
Pada kode di atas, kami mengkonversi dari integer ke long. Kami juga dapat melakukan sebaliknya dengan menggunakan metode toInt()
pada variable long. Catatan bahwa ini akan memotong nilai agar sesuai dengan ukuran yang lebih kecil dari tipe Int
jika perlu — jadi hati-hati ketika mengkonversi dari jenis lebih besar lebih kecil!
Anda juga dapat mengkonversi String
ke dalam jenis number.
1 |
val stringNumber = "101" |
2 |
val intValue = stringNumber.toInt() |
Pada kode diatas, kita dikonversi variable stringNumber
ke dalam tipe Int
dengan memanggil metode toInt()
variabel. Kita dapat menulis ini lebih ringkas dengan sebaliknya memanggil metode langsung pada string:
1 |
val intValue = "101".toInt() |
Tipe Boolean
Boolean
tipe data di Kotlin adalah sama seperti di Java. Berniali true atau false. Operasi kesenjangan (||
), konjungsi (&&
), dan penyangkalan (!
) dapat dilakukan pada jenis boolean, seperti Java.
1 |
val myTrueBoolean = true |
2 |
val myFalseBoolean = false |
3 |
|
4 |
val x = 1 |
5 |
val y = 3 |
6 |
val w = 4 |
7 |
val z = 6 |
8 |
|
9 |
val n = x < z && z > w // n is true |
String
String dapat dibuat dengan baik tanda kutip ganda atau triple kutipan. Selain itu, Untuk escape karakter dapat digunakan dengan tanda kutip ganda.
1 |
val myString = "This is a String" |
2 |
val escapeString = "This is a string with new line \n" |
Untuk membuat sebuah string yang mencakup beberapa baris dalam file sumber, kita menggunakan tiga kutipan:
1 |
val multipleStringLines = """ |
2 |
This is first line
|
3 |
This is second line
|
4 |
This is third line """
|
Kotlin juga mendukung interpolasi string atau string template. Ini adalah cara yang lebih mudah untuk membangun dinamis string daripada rangkaian, yang adalah apa yang kita gunakan di Java. Menggunakan template string, kita dapat menyisipkan variabel dan string ke string.
1 |
val accountBalance = 200 |
2 |
val bankMessage = "Your account balance is $accountBalance" // Your account balance is 200 |
Pada kode diatas, kami menciptakan sebuah string literal dan di dalamnya, kita disebut ke variabel dengan menggunakan karakter $
di depan nama variabel. Perhatikan bahwa jika variabel tidak benar atau tidak ada, kode tidak akan mengkompilasi.
Bagaimana jika Anda perlu menggunakan $
dalam string? Anda hanya melarikan diri dengan \ $
! Juga, Anda dapat memanggil metode dari String
interpolated secara langsung; Anda harus menambahkan kurung kurawal ${}
untuk membungkus itu.
1 |
val name = "Chike" |
2 |
val message = "The first letter in my name is ${name.first()}" // The first letter in my name is C |
Hal keren lainnya yang dapat Anda lakukan adalah untuk melakukan beberapa logika dalam kurung kurawal ketika membuat String
literal.
1 |
val age = 40 |
2 |
val anotherMessage = "You are ${if (age > 60) "old" else "young"}" // You are young |
Array
Dalam Kotlin, ada dua cara utama untuk menciptakan array: menggunakan arrayOf()
fungsi pembantu atau constructor Array()
.
Fungsi arrayOf()
Sebagai contoh, mari kita membuat sebuah array dengan beberapa unsur-unsur yang menggunakan arrayOf()
.
1 |
val myArray = arrayOf(4, 5, 7, 3) |
Sekarang, untuk mengakses salah satu elemen, kita dapat menggunakan indeks: myArray[2]
. Catatan bahwa kita bisa lulus dalam nilai-nilai dari berbagai jenis ke arrayOf()
sebagai argumen dan akan masih bekerja-ini akan menjadi sebuah array dari campuran.
1 |
val myArray = arrayOf(4, 5, 7, 3, "Chike", false) |
Untuk menegakkan bahwa semua nilai array memiliki tipe yang sama, misalnya Int
, kami menyatakan jenis oleh dengan cara memanggil arrayOf<Int>()
atau intArrayOf()
.
1 |
val myArray3 = arrayOf<Int>(4, 5, 7, 3, "Chike", false) // will not compile |
2 |
val myArray4 = intArrayOf(4, 5, 7, 3, "Chike", false) // will not compile |
Kita juga memiliki fungsi utilitas lain untuk membuat arrays dari jenis lainnya seperti charArrayOf()
, booleanArrayOf()
, longArrayOf()
, shortArrayOf()
, byteArrayOf()
, dan seterusnya. Di belakang layar, menggunakan fungsi-fungsi ini akan menciptakan sebuah array tipe primitif Java mereka masing-masing. Dengan kata lain, intArrayOf() akan mengkompilasi untuk tipe primitif int [Jawa yang biasa], byteArrayOf() akan byte [], longArrayOf() akan menjadi panjang [], dan sebagainya.
Array()
Constructor
Sekarang mari kita lihat cara membuat sebuah array dengan Array()
. Konstruktor kelas ini memerlukan ukuran dan fungsi lambda. Kita akan mempelajari lebih lanjut tentang fungsi lambda nanti dalam seri ini, tetapi untuk sekarang, hanya mengerti bahwa itu adalah cara sederhana, inline menyatakan fungsi anonim. Dalam kasus ini, pekerjaan fungsi lambda adalah untuk menginisialisasi array dengan elemen.
1 |
val numbersArray = Array(5, { i -> i * 2 }) |
Pada kode di atas, kami melewati 5 sebagai ukuran array dalam argumen pertama. Argumen kedua mengambil dalam fungsi lambda, yang mengambil indeks dari elemen array dan kemudian mengembalikan nilai yang akan disisipkan di indeks dalam array. Jadi dalam contoh di atas, kami menciptakan sebuah array dengan elemen 0, 2, 4, 6, dan 8.
4. komentar
Yang satu ini mudah. Di Kotlin, komentar yang sama seperti di Java. Kita dapat menggunakan blok atau baris komentar:
1 |
/*
|
2 |
hello, this is a block comment
|
3 |
with multiple lines.
|
4 |
This is another line.
|
5 |
This is another one again
|
6 |
*/
|
7 |
|
8 |
// this is a single line comment
|
Kesimpulan
Dalam tutorial ini, Anda belajar dasar-dasar Kotlin bahasa pemrograman: variabel, tipe dasar, jenis kesimpulan, array, dan komentar. Dalam tutorial berikutnya dalam seri Kotlin dari awal, Anda akan belajar tentang loop, rentang, kondisi, koleksi dan paket di Kotlin. Sampai jumpa lagi!
Untuk mempelajari lebih lanjut tentang bahasa Kotlin, saya sarankan mengunjungi dokumentasi Kotlin. Atau memeriksa beberapa dari kami Kotlin tutorial lain di sini di Envato Tuts +.
- Android SDKQuick Tip: Menulis kode yang bersih dengan Kotlin SAM konversiAshraff Hathibelagal
- Android StudioCoding fungsional Android Apps di Kotlin: persiapanJessica Thornsby
- Android SDKJava vs Kotlin: harus Anda menggunakan Kotlin untuk Android pengembangan?Jessica Thornsby