Advertisement
  1. Code
  2. Kotlin

Kotlin dari awal: Variabel, Tipe data dasar dan Array

Scroll to top
Read Time: 9 min
This post is part of a series called Kotlin From Scratch.
Kotlin From Scratch: Nullability, Loops, and Conditions

() 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 +.


Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.