Membuat dan menggunakan variabel di Kotlin

1. Sebelum memulai

Di aplikasi yang Anda gunakan di ponsel, perhatikan bahwa beberapa bagian aplikasi tetap sama, sementara bagian lainnya berubah (atau bervariasi).

Misalnya, nama kategori dalam aplikasi Setelan tetap sama – Jaringan & internet, Perangkat terhubung, Aplikasi, dan lainnya.

Screenshot aplikasi Setelan ini menunjukkan berbagai opsi menu untuk mengubah setelan pada perangkat. Item menu yang ditampilkan di layar adalah: Jaringan & internet, Perangkat terhubung, Aplikasi, Notifikasi, Baterai, Penyimpanan, Suara & getaran, serta Layar.

Di sisi lain, jika Anda melihat aplikasi berita, artikel tersebut akan sering berubah. Nama artikel, sumber, waktu diposting, dan gambar berubah.

Bagaimana Anda menulis kode sehingga konten berubah seiring waktu? Anda tidak bisa menulis ulang kode di aplikasi setiap kali ada artikel baru untuk diposting yang terjadi setiap hari, setiap jam, dan setiap menit.

Dalam codelab ini, Anda akan mempelajari cara menulis kode yang menggunakan variabel sehingga bagian tertentu dari program Anda dapat berubah tanpa harus menulis kumpulan petunjuk baru. Anda akan menggunakan Kotlin Playground seperti yang telah Anda lakukan di codelab sebelumnya.

Yang akan Anda build

  • Program singkat di Kotlin yang menggunakan variabel.

Yang akan Anda pelajari

  • Cara menentukan variabel dan memperbarui nilainya.
  • Cara memilih jenis data yang sesuai untuk variabel dari jenis data dasar di Kotlin.
  • Cara menambahkan komentar ke kode.

Yang akan Anda butuhkan

  • Komputer dengan akses internet dan browser web.

2. Variabel dan jenis data

Dalam pemrograman komputer, ada konsep variabel yang merupakan penampung untuk satu bagian data. Anda dapat membayangkannya sebagai kotak yang berisi nilai. Kotak ini memiliki label yang merupakan nama variabel. Dengan merujuk ke kotak menurut namanya, Anda akan memiliki akses ke nilai di dalamnya.

Diagram ini menunjukkan cara variabel menyimpan data seperti kotak yang dapat menyimpan sesuatu. Ada kotak yang bertuliskan nama. Di luar kotak, ada label yang bertuliskan nilai. Ada panah yang mengarah dari nilai ke dalam kotak, yang artinya nilai masuk ke dalam kotak.

Mengapa nilai harus disimpan dalam kotak dan merujuk ke kotaknya menurut namanya jika nilai tersebut dapat digunakan secara langsung? Masalahnya adalah saat kode Anda menggunakan nilai secara langsung di semua petunjuk, program hanya akan berfungsi untuk kasus spesifik tersebut.

Berikut analogi yang dapat memudahkan Anda memahami mengapa variabel itu penting. Berikut adalah surat untuk seseorang yang baru-baru ini Anda temui.

Lauren yang terhormat,

Senang bisa bertemu dengan Anda hari ini di kantor. Kami menantikan kehadiran Anda pada Jumat.

Semoga hari Anda menyenangkan!

Surat ini bagus, tetapi hanya berlaku untuk situasi tertentu yang Anda alami bersama Lauren. Bagaimana jika Anda menulis surat yang sama berulang kali, tetapi dengan sedikit variasi untuk orang yang berbeda? Akan lebih efisien untuk membuat template satu surat dengan mengosongkan bagian-bagian yang dapat berubah.

____ yang terhormat,

Senang bisa bertemu dengan Anda hari ini di _____. Kami menantikan kehadiran Anda pada ____ .

Semoga hari Anda menyenangkan!

Anda juga dapat menentukan jenis informasi yang ditampilkan di setiap ruang kosong. Cara ini memastikan template surat akan digunakan seperti yang Anda harapkan.

{ name } yang terhormat ,

Senang bisa bertemu dengan Anda hari ini di { lokasi } . Kami menantikan kehadiran Anda pada { tanggal } .

Semoga hari Anda menyenangkan!

Secara konsep, hal ini serupa dengan pembuatan aplikasi. Anda memiliki placeholder untuk beberapa data, sementara bagian lain aplikasi tetap sama.

Ilustrasi ini menunjukkan contoh aplikasi Berita. Konten layar diawali dengan pesan selamat datang dan nama dibiarkan sebagai placeholder untuk nama pengguna yang sebenarnya. Lalu ada beberapa teks yang bertuliskan "Berita terbaru untuk Anda". Teks ini tidak akan berubah apa pun artikel yang dimuat di aplikasi. Kemudian ada baris untuk setiap artikel baru dengan placeholder untuk gambar, nama, tanggal, dan sumber artikel. Di bagian bawah daftar artikel terdapat tombol yang bertuliskan "Lihat artikel lainnya".

Dalam ilustrasi aplikasi berita di atas, teks "Selamat Datang", judul "Berita terbaru untuk Anda", dan teks tombol "Lihat artikel lainnya" akan selalu sama. Sebaliknya, nama pengguna dan konten setiap artikel akan berubah, sehingga berpeluang besar menggunakan variabel untuk menyimpan setiap bagian informasi.

Ilustrasi ini menampilkan 3 kotak berturut-turut. Kotak pertama disebut nama. Ada label di sebelahnya yang bertuliskan "Alex". Terdapat tanda panah dari "Alex" ke dalam kotak yang berarti nilai "Alex" disimpan dalam kotak yang disebut nama. Kotak kedua disebut article1Name. Di sebelahnya ada label yang bertuliskan "Film baru yang akan tayang". Terdapat tanda panah dari string ke kotak kedua. Ini berarti nilai "Film baru yang akan tayang" disimpan dalam kotak yang disebut article1Name. Kotak ketiga disebut article1Date. Di sampingnya terdapat label yang bertuliskan "9 Juni". Terdapat tanda panah dari "9 Juni" ke kotak ketiga. Artinya nilai "9 Juni" disimpan di kotak yang disebut article1Date.

Sebaiknya Anda tidak menulis kode (atau petunjuk) di aplikasi berita hanya untuk pengguna yang bernama Alex, atau untuk artikel berita yang selalu memiliki judul dan tanggal publikasi yang sama. Sebagai gantinya, Anda menginginkan aplikasi yang lebih fleksibel. Jadi, Anda harus menulis kode dengan merujuk ke nama variabel seperti name, article1Name, article1Date, dan seterusnya. Kode Anda akan menjadi cukup umum untuk berbagai kasus penggunaan dengan nama dan detail artikel yang berbeda.

Aplikasi contoh dengan variabel

Mari lihat contoh aplikasi untuk mengetahui lokasi penggunaan variabel.

Screenshot aplikasi Google Maps ini menampilkan detail lokasi Googleplex. Ini adalah kampus perusahaan dan digambarkan sebagai kantor pusat global Google. Lokasi ini memiliki rating 4,2 bintang dari 9.831 ulasan. Alamatnya di 1600 Amphitheatre Pkwy, Mountain View, CA 94043. Layar ini menyediakan opsi bagi pengguna untuk menyimpan lokasi ini dalam daftar.

Pada aplikasi peta, Anda mungkin menemukan layar detail untuk setiap lokasi, seperti restoran atau tempat usaha. Screenshot di atas dari aplikasi Google Maps menunjukkan detail dari kantor pusat perusahaan Google, yang disebut Googleplex. Manakah data yang menurut Anda disimpan sebagai variabel dalam aplikasi?

  • Nama lokasi
  • Rating bintang lokasi
  • Jumlah ulasan lokasi
  • Apakah pengguna menyimpan (atau membuat bookmark) lokasi ini
  • Alamat lokasi
  • Deskripsi lokasi

Ubah data yang disimpan dalam variabel tersebut dan Anda memiliki aplikasi peta yang cukup fleksibel untuk menampilkan detail lokasi lain.

Jenis data

Saat menentukan aspek aplikasi yang dapat berupa variabel, sangat disarankan untuk menentukan jenis data yang dapat disimpan dalam variabel tersebut. Di Kotlin, ada beberapa jenis data dasar umum. Tabel di bawah menampilkan jenis data yang berbeda di setiap baris. Untuk setiap jenis data, terdapat deskripsi jenis data yang dapat ditampung dan contoh nilai.

Jenis data Kotlin

Jenis data yang dapat dimuat

Contoh nilai literal

String

Teks

"Add contact"
"Search"
"Sign in"

Int

Seluruh bilangan bulat

32
1293490
-59281

Double

Angka desimal

2.0
501.0292
-31723.99999

Float

Angka desimal (yang kurang akurat daripada Double). Memiliki f atau F di akhir angka.

5.0f
-1630.209f
1.2940278F

Boolean

true atau false. Gunakan jenis data ini jika hanya ada dua kemungkinan nilai. Perhatikan bahwa true dan false adalah kata kunci di Kotlin.

true
false

Setelah mengetahui beberapa jenis data Kotlin umum, jenis data manakah yang sesuai untuk setiap variabel yang diidentifikasi di halaman detail lokasi yang Anda lihat sebelumnya?

Screenshot aplikasi Google Maps ini menampilkan detail lokasi Googleplex. Ini adalah kampus perusahaan dan digambarkan sebagai kantor pusat global Google. Lokasi ini memiliki rating 4,2 bintang dari 9.831 ulasan. Alamatnya di 1600 Amphitheatre Pkwy, Mountain View, CA 94043. Layar ini menyediakan opsi bagi pengguna untuk menyimpan lokasi ini dalam daftar.

  • Nama lokasi adalah teks sehingga dapat disimpan dalam variabel yang jenis datanya adalah String.
  • Rating bintang lokasi adalah angka desimal (seperti 4,2 bintang) sehingga dapat disimpan sebagai Double.
  • Jumlah ulasan lokasi adalah bilangan bulat sehingga harus disimpan sebagai Int.
  • Entah pengguna yang menyimpan lokasi ini hanya memiliki dua kemungkinan nilai (disimpan atau tidak disimpan) sehingga lokasi tersebut disimpan sebagai Boolean dengan true dan false dapat mewakili setiap status.
  • Alamat lokasi adalah teks sehingga harus berupa String.
  • Deskripsi lokasi juga merupakan teks sehingga harus berupa String.

Pelajari dua skenario lainnya di bawah ini. Mengidentifikasi penggunaan variabel dan jenis datanya dalam aplikasi berikut.

  1. Terdapat layar detail video di aplikasi untuk menonton video, seperti aplikasi YouTube. Di mana variabel mungkin digunakan? Apa jenis data dari variabel tersebut?

Screenshot ini menampilkan video yang sedang diputar di aplikasi YouTube. Nama video ini adalah "Developer Android telah mencapai 1 juta subscriber!" Foto tersebut diposting di channel YouTube Developer Android. Ada 6.900 penayangan dan 541 suka di video yang memiliki 68 komentar.

Tidak ada satu jawaban yang benar, tetapi dalam aplikasi menonton video, variabel dapat digunakan untuk bagian data berikut:

  • Nama video (String)
  • Nama channel (String)
  • Jumlah penayangan video (Int)
  • Jumlah suka pada video (Int)
  • Jumlah komentar di video (Int)
  1. Di aplikasi email seperti Gmail, layar kotak masuk mencantumkan pesan email terbaru yang diterima. Di mana variabel mungkin digunakan? Apa jenis data dari variabel tersebut?

Screenshot aplikasi Gmail ini menampilkan daftar pesan di kotak masuk pengguna. Saat ini ada 1 pesan di kotak masuk dari pengirim bernama Meriana. Subjek email berjudul "Akhir pekan ini". Terdapat opsi untuk membintangi email.

Sekali lagi, tidak ada jawaban yang benar. Di aplikasi email, variabel dapat digunakan untuk bagian data berikut:

  • Nama pengirim (String)
  • Subjek email (String)
  • Apakah email dibintangi (Boolean) atau tidak
  • Jumlah email baru di kotak masuk (Int)

Coba

  1. Buka aplikasi favorit di ponsel.
  2. Identifikasi lokasi penggunaan variabel di aplikasi pada layar tertentu tersebut.
  3. Tebak jenis data variabel tersebut.
  4. Bagikan jawaban Anda di media sosial dengan screenshot aplikasi, penjelasan terkait penggunaan variabel, dan hashtag #AndroidBasics.

Semua berjalan lancar sejauh ini di codelab! Lanjutkan ke bagian berikutnya untuk mempelajari lebih lanjut cara menggunakan variabel dan jenis data dalam kode Anda.

3. Menentukan dan menggunakan variabel

Menentukan vs. menggunakan variabel

Anda harus menetapkan variabel terlebih dahulu di kode sebelum dapat menggunakan variabel tersebut. Caranya mirip dengan yang telah Anda pelajari di codelab terakhir tentang menentukan fungsi sebelum memanggilnya.

Saat menentukan variabel, Anda harus menetapkan nama untuk mengidentifikasi variabel secara unik. Anda juga harus menentukan jenis data yang dapat disimpan dengan menetapkan jenis data. Terakhir, Anda dapat memberikan nilai awal yang akan disimpan dalam variabel, tetapi ini bersifat opsional.

Setelah menentukan variabel, Anda dapat menggunakan variabel tersebut dalam program. Untuk menggunakan variabel, ketik nama variabel dalam kode Anda sehingga compiler Kotlin tahu bahwa Anda ingin menggunakan nilai variabel pada titik tersebut dalam kode.

Misalnya, tentukan variabel untuk jumlah pesan yang belum dibaca di kotak masuk pengguna. Variabel dapat bernama count. Simpan nilai seperti angka 2 di dalam variabel yang mewakili 2 pesan yang belum dibaca di kotak masuk pengguna. (Anda dapat memilih angka berbeda untuk disimpan dalam variabel, tetapi untuk contoh ini, gunakan angka 2.)

Ada kotak yang bertuliskan jumlahnya. Di luar kotak, ada label yang bertuliskan 2. Ada panah yang mengarah dari nilai ke dalam kotak, yang artinya nilai masuk ke dalam kotak.

Setiap kali kode Anda harus mengakses jumlah pesan yang belum dibaca, ketik count di kode Anda. Saat menjalankan petunjuk, compiler Kotlin melihat nama variabel dalam kode Anda dan menggunakan nilai variabel sebagai gantinya.

Secara teknis, ada kosakata yang lebih tepat untuk menggambarkan proses ini.

Ekspresi adalah unit kecil kode yang memiliki nilai. Ekspresi dapat terdiri dari variabel, panggilan fungsi, dan lainnya. Dalam kasus di bawah ini, ekspresi terdiri dari satu variabel: variabel count. Nilai ekspresi adalah 2.

Diagram ini menunjukkan ekspresi di samping nilainya. Ada label ekspresi, dan di bawahnya tertulis: jumlah. Di sebelah kanannya, ada label nilai, dan di bawahnya tertulis: 2.

Evaluasi berarti menentukan nilai ekspresi. Dalam hal ini, ekspresi bernilai 2. Compiler mengevaluasi ekspresi dalam kode dan menggunakan nilai-nilai tersebut saat mengeksekusi petunjuk dalam program.

Diagram ini dimaksudkan untuk menunjukkan bahwa jumlah ekspresi bernilai 2.  Nama variabel jumlah (count) muncul di samping nilainya 2. Variabel jumlah dilingkari, dan ada panah yang mengarah dari variabel jumlah ke nilai 2. Panah tersebut diberi label dengan frasa "dievaluasi menjadi".

Untuk mengamati perilaku ini di Kotlin Playground, jalankan program di bagian berikutnya.

Contoh

  1. Buka Kotlin Playground di browser web.
  2. Ganti kode yang ada di Kotlin Playground dengan program berikut.

Program ini membuat variabel yang disebut count dengan nilai awal 2 dan menggunakannya dengan mencetak nilai variabel count ke output. Jangan khawatir jika Anda belum memahami semua aspek sintaksis kode. Aspek ini akan dijelaskan secara lebih detail di bagian mendatang.

fun main() {
    val count: Int = 2
    println(count)
}
  1. Jalankan program dan output-nya akan seperti berikut:
2

Deklarasi variabel

Dalam program yang Anda jalankan, baris kode kedua bertuliskan:

val count: Int = 2

Pernyataan ini membuat variabel bilangan bulat yang disebut count yang menyimpan angka 2.

Ada kotak yang bertuliskan jumlahnya. Di luar kotak, ada label yang bertuliskan 2. Ada panah yang mengarah dari nilai ke dalam kotak, yang artinya nilai masuk ke dalam kotak.

Diperlukan waktu hingga Anda dapat memahami sintaksis (atau format) sintaksis untuk mendeklarasikan variabel dalam Kotlin. Diagram di bawah menunjukkan lokasi setiap detail lokasi variabel, serta lokasi spasi dan simbol.

Diagram ini menunjukkan sintaksis untuk mendeklarasikan variabel di Kotlin. Deklarasi variabel dimulai dengan kata val lalu diikuti dengan spasi. Di sebelah kanannya terdapat nama kotak berlabel. Di sebelah kanan kotak nama terdapat simbol titik dua. Setelah tanda titik dua, ada spasi, lalu kotak yang berlabel jenis data. Di sebelah kanannya, ada spasi, simbol tanda sama dengan, lalu spasi lainnya. Di sebelah kanannya terdapat kotak yang diberi nilai awal.

Dalam konteks contoh variabel count, Anda dapat melihat bahwa deklarasi variabel dimulai dengan kata val. Nama variabelnya adalah count. Jenis data adalah Int, dan nilai awalnya adalah 2.

Diagram ini menunjukkan baris kode yang bertuliskan: val count: Int = 2 Ada panah yang mengarah ke bagian kode yang menjelaskan hal itu. Ada label nama yang mengarah ke kata count dalam kode. Ada label jenis data yang mengarah ke kata Int dalam kode. Ada label nilai awal yang mengarah ke angka 2 dalam kode.

Setiap bagian deklarasi variabel dijelaskan secara lebih detail di bawah.

Kata kunci untuk menentukan variabel baru

Untuk menentukan variabel baru, mulailah dengan kata kunci Kotlin val (yang merupakan singkatan dari nilai). Kemudian, compiler Kotlin mengetahui bahwa deklarasi variabel ada dalam pernyataan ini.

Nama variabel

Sama seperti ketika memberi nama fungsi, Anda juga harus menamai variabel. Dalam deklarasi variabel, nama variabel mengikuti kata kunci val.

Diagram ini menunjukkan sintaksis untuk mendeklarasikan variabel di Kotlin. Deklarasi variabel dimulai dengan kata val lalu diikuti dengan spasi. Di sebelah kanannya terdapat nama kotak berlabel. Kotak nama ditandai dengan batas hijau dan latar belakang hijau untuk menarik perhatian ke bagian deklarasi variabel ini. Di sebelah kanan kotak nama terdapat simbol titik dua. Setelah tanda titik dua, ada spasi, lalu kotak yang berlabel jenis data. Di sebelah kanannya, ada spasi, simbol tanda sama dengan, lalu spasi lainnya. Di sebelah kanannya terdapat kotak yang diberi nilai awal.

Anda dapat memilih nama variabel yang diinginkan, tetapi sebagai praktik terbaik, hindari penggunaan kata kunci Kotlin sebagai nama variabel.

Sebaiknya pilih nama yang menjelaskan data yang disimpan variabel sehingga kode Anda lebih mudah dibaca.

Nama variabel harus mengikuti konvensi kasus camel, seperti yang saat Anda mempelajari nama fungsi. Kata pertama nama variabel harus ditulis dalam huruf kecil. Jika terdapat beberapa kata dalam nama, tidak ada spasi di antara kata tersebut, dan semua kata lainnya harus diawali dengan huruf kapital.

Contoh nama variabel:

  • numberOfEmails
  • cityName
  • bookPublicationDate

Untuk contoh kode yang ditampilkan sebelumnya, count adalah nama variabel.

val count: Int = 2

Jenis data variabel

Setelah nama variabel, tambahkan titik dua, spasi, lalu jenis data variabel. Seperti yang telah disebutkan, String, Int, Double, Float,, dan Boolean adalah beberapa jenis data Kotlin dasar. Anda akan mempelajari jenis data lainnya dalam kursus ini nanti. Jangan lupa untuk mengeja jenis data persis seperti yang ditampilkan dan awali setiap huruf dengan huruf kapital.

Diagram ini menunjukkan sintaksis untuk mendeklarasikan variabel di Kotlin. Deklarasi variabel dimulai dengan kata val lalu diikuti dengan spasi. Di sebelah kanannya terdapat nama kotak berlabel. Di sebelah kanan kotak nama terdapat simbol titik dua. Setelah tanda titik dua, ada spasi, lalu kotak yang berlabel jenis data. Kotak jenis data ditandai dengan batas hijau dan latar belakang hijau untuk menarik perhatian ke bagian deklarasi variabel ini. Di sebelah kanan kotak jenis data, terdapat spasi, simbol tanda sama dengan, lalu spasi lainnya. Di sebelah kanannya terdapat kotak yang diberi nilai awal.

Untuk contoh variabel count, Int adalah jenis data dari variabel tersebut.

val count: Int = 2

Operator penetapan

Dalam deklarasi variabel, simbol tanda sama dengan (=) mengikuti jenis data. Simbol tanda sama dengan disebut sebagai operator penetapan. Operator penetapan menetapkan nilai ke variabel. Dengan kata lain, nilai di sisi kanan tanda sama dengan disimpan dalam variabel di sisi kiri tanda sama dengan.

Diagram ini menunjukkan baris kode yang bertuliskan: jumlah val: Int = 2 Ada panah yang mengarah dari 2 (di sisi kanan tanda sama dengan) yang mengarah ke kata count (di sisi kiri tanda sama dengan). Hal ini menunjukkan bahwa nilai 2 disimpan ke dalam variabel jumlah.

Nilai awal variabel

Nilai variabel adalah data sebenarnya yang disimpan di variabel.

Diagram ini menunjukkan sintaksis untuk mendeklarasikan variabel di Kotlin. Deklarasi variabel dimulai dengan kata val lalu diikuti dengan spasi. Di sebelah kanannya terdapat nama kotak berlabel. Di sebelah kanan kotak nama terdapat simbol titik dua. Setelah tanda titik dua, ada spasi, lalu kotak yang berlabel jenis data. Di sebelah kanan kotak jenis data, terdapat spasi, simbol tanda sama dengan, lalu spasi lainnya. Di sebelah kanannya terdapat kotak yang diberi nilai awal. Kotak nilai awal ditandai dengan batas hijau dan latar belakang hijau untuk menarik perhatian ke bagian deklarasi variabel ini.

Untuk contoh variabel count, angka 2 adalah nilai awal dari variabel tersebut.

val count: Int = 2

Anda mungkin juga mendengar frasa: "variabel count diinisialisasi ke 2". Ini berarti 2 adalah nilai pertama yang disimpan dalam variabel saat variabel dideklarasikan.

Nilai awal akan berbeda, bergantung pada jenis data yang dideklarasikan untuk variabel.

Lihat tabel di bawah yang mungkin tidak asing lagi bagi Anda di codelab ini. Kolom ketiga menunjukkan contoh nilai yang dapat disimpan dalam variabel dari setiap jenis yang sesuai. Nilai ini disebut literal karena bersifat tetap atau konstan (nilai selalu sama). Misalnya, bilangan bulat 32 selalu memiliki nilai 32. Sebaliknya, variabel bukan literal karena nilainya dapat berubah. Anda mungkin mendengar nilai literal ini yang dirujuk berdasarkan jenisnya: literal string, literal integer, literal boolean, dll.

Jenis data Kotlin

Jenis data yang dapat dimuat

Contoh nilai literal

String

Teks

"Add contact"
"Search"
"Sign in"

Int

Seluruh bilangan bulat

32
1293490
-59281

Double

Angka desimal

2.0
501.0292
-31723.99999

Float

Angka desimal (yang kurang akurat daripada Double). Memiliki f atau F di akhir angka.

5.0f
-1630.209f
1.2940278F

Boolean

true atau false. Gunakan jenis data ini jika hanya ada dua kemungkinan nilai. Perhatikan bahwa true dan false adalah kata kunci di Kotlin.

true
false

Anda sangat disarankan untuk memberikan nilai yang sesuai dan valid sesuai dengan jenis data variabel. Misalnya, Anda tidak dapat menyimpan string literal seperti "Hello" di dalam variabel jenis Int karena compiler Kotlin akan mengalami error.

Menggunakan variabel

Di bawah ini adalah program asli yang Anda jalankan di Kotlin Playground. Sejauh ini, Anda sudah mengetahui bahwa baris kedua kode menciptakan variabel bilangan bulat baru yang disebut count dengan nilai 2.

fun main() {
    val count: Int = 2
    println(count)
}

Sekarang, lihat baris kode ketiga. Anda mencetak variabel count ke output:

println(count)

Perhatikan bahwa tidak ada tanda kutip pada kata count. Kata tersebut adalah nama variabel, bukan literal string. (Anda akan menemukan tanda kutip pada kata jika merupakan string literal.) Saat Anda menjalankan program, compiler Kotlin mengevaluasi ekspresi di dalam tanda kurung, yaitu count, untuk instruksi println(). Karena ekspresi ini bernilai 2, metode println() akan dipanggil dengan 2 sebagai input: println(2).

Oleh karena itu, output program ini adalah:

2

Angka itu sendiri tidak terlalu berguna dalam output. Akan lebih membantu jika pesan yang lebih detail dicetak di output untuk menjelaskan elemen yang diwakili oleh 2.

Template string

Pesan yang lebih bermanfaat untuk ditampilkan dalam output adalah:

You have 2 unread messages.

Ikuti langkah-langkah di bawah ini sehingga program akan menampilkan pesan yang lebih bermanfaat.

  1. Update program Anda di Kotlin Playground menggunakan kode di bawah ini. Untuk panggilan println(), teruskan literal string yang berisi nama variabel count. Jangan lupa untuk memberikan tanda kutip pada teks. Perhatikan bahwa cara ini tidak akan memberikan hasil yang Anda harapkan. Anda akan memperbaiki masalah ini di langkah berikutnya.
fun main() {
    val count: Int = 2
    println("You have count unread messages.")
}
  1. Jalankan program dan output-nya akan menampilkan:
You have count unread messages.

Kalimat itu tidak masuk akal! Anda ingin nilai variabel count ditampilkan dalam pesan, bukan nama variabel.

  1. Untuk memperbaiki program, tambahkan simbol tanda dolar $ sebelum variabel count: "You have $count unread messages." Ini adalah template string karena berisi ekspresi template $count. Ekspresi template adalah ekspresi yang dievaluasi menjadi nilai, yang kemudian diganti menjadi string. Dalam hal ini, ekspresi template $count bernilai 2, dan 2 diganti menjadi string tempat ekspresi tersebut berada.
fun main() {
    val count: Int = 2
    println("You have $count unread messages.")
}
  1. Saat Anda menjalankan program, output akan cocok dengan sasaran yang diinginkan:
You have 2 unread messages.

Kalimat tersebut lebih masuk akal bagi pengguna!

  1. Sekarang, ubah nilai awal variabel count menjadi literal bilangan bulat yang berbeda. Misalnya, Anda dapat memilih angka 10. Jangan ubah kode lainnya dalam program.
fun main() {
    val count: Int = 10
    println("You have $count unread messages.")
}
  1. Jalankan program. Perhatikan bahwa output berubah dan Anda bahkan tidak perlu mengubah pernyataan println() dalam program Anda.
You have 10 unread messages.

Anda dapat melihat seberapa bermanfaatnya template string. Anda hanya menulis template string sekali dalam kode ("You have $count unread messages."). Jika Anda mengubah nilai awal variabel count, pernyataan println() akan tetap berfungsi. Kode Anda kini lebih fleksibel.

Untuk lebih menekankan hal ini, bandingkan kedua program di bawah. Program pertama di bawah menggunakan literal string dengan jumlah yang tepat dari pesan yang belum dibaca langsung dalam string. Program ini hanya berfungsi jika pengguna Anda memiliki 10 pesan yang belum dibaca.

fun main() {
    println("You have 10 unread messages.")
}

Dengan menggunakan variabel dan template string dalam program kedua di bawah, kode Anda dapat beradaptasi dengan lebih banyak skenario. Program kedua ini lebih fleksibel.

fun main() {
    val count: Int = 10
    println("You have $count unread messages.")
}

Inferensi jenis

Berikut adalah tips yang memungkinkan Anda menulis lebih sedikit kode saat mendeklarasikan variabel.

Inferensi jenis adalah jika compiler Kotlin dapat menyimpulkan (atau menentukan) jenis data yang seharusnya digunakan oleh suatu variabel, tanpa jenis yang ditulis secara eksplisit dalam kode. Ini berarti Anda dapat menghilangkan jenis data dalam deklarasi variabel jika memberikan nilai awal untuk variabel. Compiler Kotlin melihat jenis data dari nilai awal, dan mengasumsikan bahwa Anda ingin variabel menyimpan data dari jenis tersebut.

Berikut adalah sintaksis untuk deklarasi variabel yang menggunakan inferensi jenis:

Diagram ini menunjukkan sintaksis untuk mendeklarasikan variabel dalam Kotlin menggunakan inferensi jenis. Deklarasi variabel dimulai dengan kata val lalu diikuti dengan spasi. Di sebelah kanannya terdapat nama kotak berlabel. Di sebelah kanan kotak nama, terdapat spasi, simbol tanda sama dengan, lalu spasi lainnya. Di sebelah kanannya terdapat kotak yang diberi nilai awal.

Kembali ke contoh jumlah, program pada awalnya berisi baris kode ini:

val count: Int = 2

Namun, baris kode ini juga dapat ditulis sebagai berikut. Perhatikan bahwa simbol titik dua (:) dan jenis data Int dihilangkan. Sintaksis yang diupdate memiliki lebih sedikit kata yang akan diketik, dan mencapai hasil yang sama dari pembuatan variabel Int yang disebut count dengan nilai 2.

val count = 2

Compiler Kotlin mengetahui bahwa Anda ingin menyimpan 2 (keseluruhan bilangan bulat) ke dalam variabel count sehingga dapat menyimpulkan bahwa variabel count adalah jenis Int. Mudah, bukan? Ini adalah salah satu contoh cara menulis kode Kotlin menjadi lebih ringkas.

Meskipun contoh ini hanya membahas variabel jenis Int, konsep inferensi jenis berlaku untuk semua jenis data di Kotlin.

Operasi matematika dasar dengan bilangan bulat

Apa perbedaan antara variabel Int dengan nilai 2 dan variabel String dengan nilai "2"? Saat keduanya dicetak ke output, keduanya akan terlihat sama.

Keuntungan menyimpan keseluruhan bilangan bulat sebagai Int (bukan String) adalah Anda dapat melakukan operasi matematika dengan variabel Int, seperti penambahan, pengurangan, pembagian, dan perkalian (lihat lainnya operator). Misalnya, dua variabel bilangan bulat dapat ditambahkan bersamaan untuk mendapatkan jumlahnya. Tentu saja ada kasus yang menyimpan bilangan bulat sebagai String, tetapi tujuan bagian ini adalah menunjukkan berbagai operasi yang dapat Anda lakukan dengan variabel Int.

  1. Kembali ke Kotlin Playground, lalu hapus semua kode di editor kode.
  2. Buat program baru tempat Anda menentukan variabel bilangan bulat untuk jumlah email yang belum dibaca di kotak masuk, dan menginisialisasinya ke nilai seperti 5. Anda dapat memilih nomor lain jika menginginkannya. Tentukan variabel bilangan bulat kedua untuk jumlah email yang telah dibaca dalam kotak masuk. Lakukan inisialisasi ke nilai seperti 100. Anda dapat memilih nomor lain jika menginginkannya. Lalu cetak jumlah total pesan di kotak masuk dengan menjumlahkan dua bilangan bulat.
fun main() {
    val unreadCount = 5
    val readCount = 100
    println("You have ${unreadCount + readCount} total messages in your inbox.")
}
  1. Jalankan program dan program akan menampilkan jumlah total pesan di kotak masuk:
You have 105 total messages in your inbox.

Untuk template string, Anda telah mempelajari bahwa Anda dapat menempatkan simbol $ sebelum satu nama variabel. Namun, jika memiliki ekspresi yang lebih kompleks, Anda harus menyertakan ekspresi dalam tanda kurung kurawal dengan simbol $ sebelum kurung kurawal: ${unreadCount + readCount}. Ekspresi dalam tanda kurung kurawal, unreadCount + readCount, bernilai 105. Kemudian, nilai 105 diganti dalam literal string.

Diagram ini menunjukkan ekspresi di samping nilainya. Ada label ekspresi, dan di bawahnya tertulis: belum dibaca + readCount. Di sebelah kanannya, ada label nilai, dan di bawahnya tertulis: 105.

  1. Untuk mempelajari topik ini lebih lanjut, buat variabel dengan nama dan nilai awal yang berbeda, serta gunakan ekspresi template untuk mencetak pesan ke output.

Misalnya, ubah program Anda untuk mencetaknya:

100 photos
10 photos deleted
90 photos left

Berikut adalah satu cara menulis program, meskipun ada cara lain yang benar untuk menulis program juga.

fun main() {
    val numberOfPhotos = 100
    val photosDeleted = 10
    println("$numberOfPhotos photos")
    println("$photosDeleted photos deleted")
    println("${numberOfPhotos - photosDeleted} photos left")
}

4. Memperbarui variabel

Saat aplikasi berjalan, nilai variabel mungkin perlu diperbarui. Misalnya, di aplikasi belanja, saat pengguna menambahkan item ke keranjang belanja, total keranjang akan bertambah.

Mari sederhanakan kasus penggunaan belanja ini menjadi program sederhana. Logika ini ditulis di bawah menggunakan bahasa manusia, bukan Kotlin. Logika ini disebut kode semu karena menjelaskan poin-poin penting tentang rencana cara penulisan kode, tetapi tidak berisi semua detail kode.

Di fungsi utama program:

  • Buat variabel bilangan bulat cartTotal yang dimulai pada nilai 0.
  • Pengguna menambahkan sweter seharga $20 ke keranjang belanja.
  • Perbarui variabel cartTotal menjadi 20 dan ini adalah biaya saat ini untuk item yang ada di keranjang belanja mereka.
  • Cetak total biaya item di keranjang, yang merupakan variabel cartTotal, ke output.

Untuk menyederhanakan kode lebih lanjut, Anda tidak perlu menulis kode saat pengguna menambahkan item ke keranjang belanja. (Anda belum mempelajari cara program merespons input pengguna. Penjelasan ini akan tersedia pada unit berikutnya.) Oleh karena itu, fokuskan pada bagian yang Anda gunakan untuk membuat, memperbarui, dan mencetak variabel cartTotal.

  1. Ganti kode yang ada di Kotlin Playground dengan program di bawah ini. Di baris 2 program, lakukan inisialisasi variabel cartTotal ke nilai 0. Anda sudah memberikan nilai awal sehingga tidak lagi perlu menentukan jenis data Int karena inferensi jenis. Di baris 3 program, Anda mencoba memperbarui variabel cartTotal menjadi 20 dengan operator penetapan (=). Di baris 4 program, Anda mencetak variabel cartTotal menggunakan template string.
fun main() {
    val cartTotal = 0
    cartTotal = 20
    println("Total: $cartTotal")
}
  1. Jalankan program, dan Anda akan mengalami error kompilasi.
  2. Perhatikan bahwa error ini menunjukkan val tidak dapat ditetapkan ulang. Error ini terjadi di baris ketiga program saat mencoba mengubah nilai cartTotal variabel ke 20.. Halamanval cartTotal tidak dapat ditetapkan ulang ke nilai lain (20) setelah nilai awal ditetapkan (0).
Val cannot be reassigned

Jika Anda perlu memperbarui nilai variabel, deklarasikan variabel dengan kata kunci Kotlin var, bukan val.

  • Kata kunci val - Gunakan jika Anda tidak ingin nilai variabel dapat berubah.
  • Kata kunci var - Gunakan jika Anda ingin nilai variabel dapat berubah.

Dengan val, variabelnya bersifat hanya baca sehingga Anda hanya dapat membaca, atau mengakses nilai variabel tersebut. Anda tidak lagi dapat mengedit atau mengubah nilai setelah ditetapkan. Dengan var, variabelnya adalah dapat berubah yang berarti nilai dapat diubah atau diubah. Nilai dapat berubah.

Untuk mengingat perbedaannya, anggap val sebagai nilai tetap dan var sebagai variabel. Di Kotlin, sebaiknya gunakan kata kunci val daripada kata kunci var jika memungkinkan.

  1. Perbarui deklarasi variabel untuk cartTotal di baris 2 program untuk menggunakan var, bukan val. Tampilan kode akan terlihat seperti berikut:
fun main() {
    var cartTotal = 0
    cartTotal = 20
    println("Total: $cartTotal")
}
  1. Perhatikan sintaksis kode di baris 3 program yang memperbarui variabel.
cartTotal = 20

Gunakan operator penetapan (=) untuk menetapkan nilai baru (20) ke variabel yang ada (cartTotal). Anda tidak perlu menggunakan kata kunci var lagi karena variabel sudah ditentukan.

Diagram ini menunjukkan baris kode yang bertuliskan: cartTotal = 20 Ada panah yang mengarah dari 20 (di sisi kanan tanda sama dengan) ke dalam kata cartTotal (di sisi kiri tanda sama dengan). Hal ini menunjukkan bahwa nilai 20 disimpan ke dalam variabel cartTotal.

Dengan menggunakan analogi kotak, gambar nilai 20 yang disimpan dalam kotak berlabel cartTotal.

Ada kotak yang bertuliskan cartTotal di dalamnya. Di luar kotak, ada label yang bertuliskan 20. Ada panah yang mengarah dari nilai ke dalam kotak, yang artinya nilai masuk ke dalam kotak.

Berikut adalah diagram sintaksis umum untuk memperbarui variabel yang telah dideklarasikan pada baris kode sebelumnya. Mulai pernyataan dengan nama variabel yang ingin Anda perbarui. Tambahkan spasi, tanda sama dengan, diikuti dengan spasi lain. Kemudian, tuliskan nilai yang telah diperbarui untuk variabel tersebut.

Diagram ini menunjukkan sintaksis untuk memperbarui variabel di Kotlin. Baris kode dimulai dengan nama kotak berlabel. Di sebelah kanan kotak nama, terdapat spasi, simbol tanda sama dengan, lalu spasi lainnya. Di sebelah kanannya terdapat kotak yang berlabel nilai yang diperbarui.

  1. Jalankan program Anda dan kode akan berhasil dikompilasi. Tindakan tadi akan mencetak output ini :
Total: 20
  1. Untuk melihat perubahan nilai variabel selama program berjalan, cetak variabel cartTotal ke output setelah mendeklarasikan variabel awalnya. Lihat perubahan kode di bawah ini. Baris 3 memiliki pernyataan println() baru. Juga ada baris kosong yang ditambahkan di baris 4 kode. Baris kosong tidak memengaruhi cara compiler memahami kode. Tambahkan baris kosong yang akan mempermudah pembacaan kode Anda dengan memisahkan blok kode yang terkait.
fun main() {
    var cartTotal = 0
    println("Total: $cartTotal")

    cartTotal = 20
    println("Total: $cartTotal")
}
  1. Jalankan lagi program, dan output-nya akan seperti berikut:
Total: 0
Total: 20

Anda dapat melihat bahwa total keranjang belanja awal adalah 0. Setelah itu, file akan diperbarui menjadi 20. Anda telah berhasil memperbarui variabel. Hal ini bisa terjadi karena Anda telah mengubah cartTotal dari variabel hanya baca (dengan val) menjadi variabel yang dapat berubah (dengan var).

Ingat bahwa Anda hanya boleh menggunakan var untuk mendeklarasikan variabel jika mengharapkan perubahan nilai. Jika tidak, Anda harus menggunakan val secara default untuk mendeklarasikan variabel. Praktik ini akan membuat kode Anda lebih aman. Penggunaan val memastikan bahwa variabel tidak akan diperbarui dalam program jika Anda tidak menginginkannya. Setelah nilai ditetapkan, val akan selalu memiliki nilai tersebut.

Operator penambahan dan pengurangan

Sekarang Anda tahu bahwa variabel harus dideklarasikan sebagai var agar nilainya dapat diperbarui. Terapkan pengetahuan ini ke contoh pesan email yang mungkin sudah tidak asing lagi di bawah ini.

  1. Ganti kode di playground Kotlin Playground dengan program ini:
fun main() {
    val count: Int = 10
    println("You have $count unread messages.")
}
  1. Jalankan program. Dan, akan muncul tulisan:
You have 10 unread messages.
  1. Ganti kata kunci val dengan kata kunci var untuk membuat variabel count menjadi variabel yang dapat diubah. Seharusnya tidak ada perubahan pada output saat Anda menjalankan program.
fun main() {
    var count: Int = 10
    println("You have $count unread messages.")
}
  1. Namun, kini Anda dapat memperbarui count menjadi nilai lain. Misalnya, jika satu email baru masuk ke kotak masuk pengguna, Anda dapat meningkatkan count sebanyak 1. (Anda tidak perlu menulis kode untuk email yang masuk. Mendapatkan data dari internet adalah topik yang lebih rumit untuk unit yang jauh lebih baru.) Untuk saat ini, fokuskan pada variabel count yang meningkat sebanyak 1 dengan baris kode ini:
count = count + 1

Ekspresi di sebelah kanan tanda sama dengan adalah count + 1 dan bernilai 11. Hal ini dikarenakan nilai count saat ini adalah 10 (yang ada di baris 2 program) dan 10 + 1 sama dengan 11. Kemudian dengan operator penetapan, nilai 11 akan ditetapkan atau disimpan di variabel count.

Diagram ini menunjukkan baris kode yang bertuliskan: jumlah = jumlah + 1. Terdapat lingkaran di sekitar ekspresi: jumlah +1. Terdapat panah yang mengarah dari ekspresi yang dilingkari (di sisi kanan tanda sama dengan) ke dalam kata count (di sisi kiri tanda sama dengan). Hal ini menunjukkan bahwa nilai ekspresi jumlah + 1 disimpan ke dalam variabel jumlah.

Tambahkan baris kode ini ke program Anda di bagian bawah fungsi main(). Kode Anda akan terlihat seperti berikut:

fun main() {
    var count = 10
    println("You have $count unread messages.")
    count = count + 1
}

Jika Anda menjalankan program sekarang, output-nya tidak akan berubah karena Anda belum menambahkan kode apa pun untuk menggunakan variabel count setelah memperbaruinya.

  1. Tambahkan pernyataan cetak lainnya yang akan mencetak jumlah pesan yang belum dibaca setelah variabel diperbarui.
fun main() {
    var count = 10
    println("You have $count unread messages.")
    count = count + 1
    println("You have $count unread messages.")
}
  1. Jalankan program. Pesan kedua akan menampilkan count dari 11 pesan yang telah diperbarui.
You have 10 unread messages.
You have 11 unread messages.
  1. Sederhananya, jika ingin meningkatkan variabel sebanyak 1, Anda dapat menggunakan operator penambahan (++) yang terdiri dari dua simbol plus. Dengan menggunakan simbol ini langsung setelah nama variabel, Anda memberi tahu compiler bahwa Anda ingin menambahkan 1 ke nilai variabel saat ini, lalu menyimpan nilai baru dalam variabel. Dua baris kode berikut sama, tetapi tidak perlu banyak mengetik karena menggunakan operator penambahan ++.
count = count + 1
count++

Buat perubahan ini pada kode, lalu jalankan program. Tidak boleh ada spasi antara nama variabel dan operator penambahan.

fun main() {
    var count = 10
    println("You have $count unread messages.")
    count++
    println("You have $count unread messages.")
}
  1. Jalankan program. Output-nya sama, tetapi sekarang Anda mempelajari operator baru!
You have 10 unread messages.
You have 11 unread messages.
  1. Sekarang, ubah baris 4 program untuk menggunakan operator pengurangan (--) setelah nama variabel count. Operator pengurangan terdiri dari dua simbol minus. Dengan menempatkan operator pengurangan setelah nama variabel, Anda memberi tahu compiler bahwa Anda ingin mengurangi nilai variabel sebanyak 1 dan menyimpan nilai baru ke dalam variabel.
fun main() {
    var count = 10
    println("You have $count unread messages.")
    count--
    println("You have $count unread messages.")
}
  1. Jalankan program. Tulisan yang akan muncul pada output:
You have 10 unread messages.
You have 9 unread messages.

Di bagian ini, Anda telah mempelajari cara memperbarui variabel yang dapat berubah menggunakan operator penambahan (++) dan operator pengurangan (--). Atau lebih spesifiknya lagi, count++ sama dengan count = count + 1 dan count-- sama dengan count = count - 1.

5. Mempelajari jenis data lainnya

Sebelumnya di codelab, Anda telah diperkenalkan dengan beberapa jenis data dasar umum: String, Int, Double, dan Boolean. Anda baru saja menggunakan jenis data Int, dan sekarang Anda akan menjelajahi jenis data lain.

Jenis data Kotlin

Jenis data yang dapat dimuat

String

Teks

Int

Seluruh bilangan bulat

Double

Angka desimal

Boolean

true atau false (hanya dua kemungkinan nilai)

Coba program ini di Kotlin Playground untuk melihat output-nya.

Ganda

Jika Anda memerlukan variabel dengan nilai desimal, gunakan variabel Double. Untuk mempelajari rentang yang valid, lihat tabel ini dan lihat digit desimal yang dapat disimpan misalnya.

Bayangkan Anda sedang menavigasi ke suatu tujuan, dan perjalanan Anda dibagi menjadi tiga bagian terpisah karena Anda harus berhenti di sepanjang perjalanan. Program ini menampilkan total jarak yang tersisa untuk mencapai tujuan Anda.

  1. Masukkan kode ini di Kotlin Playground. Bisakah Anda memahami apa yang terjadi pada setiap baris kode?
fun main() {
    val trip1: Double = 3.20
    val trip2: Double = 4.10
    val trip3: Double = 1.72
    val totalTripLength: Double = 0.0
    println("$totalTripLength miles left to destination")
}

Tiga variabel bernama trip1, trip2, dan trip3 dideklarasikan untuk mewakili jarak setiap bagian perjalanan. Semuanya adalah variabel Double karena menyimpan nilai desimal. Gunakan val untuk mendeklarasikan setiap variabel karena nilainya tidak berubah selama program dijalankan. Program ini juga membuat variabel keempat bernama totalTripLength yang saat ini diinisialisasi ke 0.0. Baris terakhir program mencetak pesan berisi nilai totalTripLength.

  1. Perbaiki kode sehingga variabel totalTripLength menampilkan jumlah dari ketiga jarak perjalanan.
val totalTripLength: Double = trip1 + trip2 + trip3

Ekspresi di sebelah kanan tanda sama dengan bernilai 9.02 karena 3.20 + 4.10 + 1.72 sama dengan 9.02. Nilai 9.02 akan disimpan ke dalam variabel totalTripLength.

Diagram ini menunjukkan baris kode yang bertuliskan: val totalTripLength: Double = trip1 + trip2 + trip3. Ada lingkaran di sekitar ekspresi: trip1 + trip2 + trip3. Ada tanda panah yang mengarah dari ekspresi yang dilingkari (di sisi kanan tanda sama dengan) ke dalam kata totalTripLength (di sisi kiri tanda sama dengan). Hal ini menunjukkan bahwa nilai ekspresi trip1 + trip2 + trip3 disimpan ke dalam variabel totalTripLength.

Seluruh program akan terlihat seperti kode di bawah ini:

fun main() {
    val trip1: Double = 3.20
    val trip2: Double = 4.10
    val trip3: Double = 1.72
    val totalTripLength: Double = trip1 + trip2 + trip3
    println("$totalTripLength miles left to destination")
}
  1. Jalankan program. Tulisan yang akan muncul adalah:
9.02 miles left to destination
  1. Perbaiki kode Anda untuk menghapus jenis data Double yang tidak perlu dari deklarasi variabel karena inferensi jenis. Compiler Kotlin dapat menyimpulkan bahwa variabel tersebut adalah jenis data Double berdasarkan angka desimal yang diberikan sebagai nilai awal.
fun main() {
    val trip1 = 3.20
    val trip2 = 4.10
    val trip3 = 1.72
    val totalTripLength = trip1 + trip2 + trip3
    println("$totalTripLength miles left to destination")
}
  1. Jalankan lagi kode untuk memastikan kode Anda masih dikompilasi. Output harus sama, tetapi sekarang kode Anda lebih sederhana!

String

Jika Anda memerlukan variabel yang dapat menyimpan teks, gunakan variabel String. Jangan lupa menggunakan tanda kutip pada nilai literal String, seperti "Hello Kotlin", sedangkan nilai literal Int dan Double tidak memiliki tanda kutip.

  1. Salin dan tempel program ini ke Kotlin Playground.
fun main() {
    val nextMeeting = "Next meeting is:"
    val date = "January 1"
    val reminder = nextMeeting + date
    println(reminder)
}

Perhatikan bahwa ada dua variabel String yang dideklarasikan, yaitu variabel nextMeeting dan variabel date. Kemudian, variabel String ketiga yang disebut reminder dideklarasikan, dan disetel sama dengan variabel nextMeeting ditambah variabel date.

Dengan simbol +, Anda dapat menambahkan dua string bersama-sama yang disebut penyambungan. Kedua string digabungkan, satu per satu. Hasil ekspresi, nextMeeting + date adalah "Next meeting is:January 1" seperti yang ditunjukkan pada diagram di bawah.

Diagram ini dimaksudkan untuk menunjukkan bahwa ekspresi, nextMeeting + date bernilai "Next meeting is:January 1".  Ekspresi tersebut, nextMeeting + date, dilingkari, dan ada tanda panah yang mengarah dari ekspresi tersebut ke nilai "Next meeting is:January 1". Panah tersebut diberi label dengan frasa "dievaluasi menjadi".

Selanjutnya, nilai "Next meeting is:January 1" disimpan ke dalam variabel reminder menggunakan operator penetapan di baris 4 program.

  1. Jalankan program Anda. Tulisan yang akan muncul adalah:
Next meeting is:January 1

Saat Anda menggabungkan dua string, tidak ada ruang tambahan yang akan ditambahkan di antara string tersebut. Jika menginginkan spasi setelah titik dua dalam string yang dihasilkan, Anda harus menambahkan spasi ke satu string atau string lainnya.

  1. Perbarui variabel nextMeeting agar mendapatkan spasi lebih di akhir string sebelum tanda kutip penutup. (Atau, Anda dapat menambahkan spasi tambahan ke awal variabel date). Program Anda akan terlihat seperti berikut:
fun main() {
    val nextMeeting = "Next meeting is: "
    val date = "January 1"
    val reminder = nextMeeting + date
    println(reminder)
}
  1. Jalankan lagi program Anda dan sekarang akan ada spasi setelah titik dua dalam pesan output.
Next meeting is: January 1
  1. Ubah kode sehingga Anda menyambungkan - atau menambahkan - potongan teks lain ke ekspresi yang disimpan dalam variabel reminder.

Gunakan simbol + untuk menambahkan literal string "at work" ke akhir string reminder.

  1. Jalankan program.

Tulisan yang akan muncul pada output:

Next meeting is: January 1 at work

Kode di bawah menunjukkan salah satu cara untuk menerapkan perilaku tersebut.

fun main() {
    val nextMeeting = "Next meeting is: "
    val date = "January 1"
    val reminder = nextMeeting + date + " at work"
    println(reminder)
}

Perhatikan bahwa tidak ada tanda kutip pada nextMeeting dan date karena keduanya adalah nama variabel string yang ada (dengan nilai masing-masing adalah teks dengan tanda kutip). Sebaliknya, "at work" literal tidak ditentukan sebelumnya dalam variabel apa pun. Jadi, gunakan tanda kutip pada teks ini agar compiler dapat mengetahui bahwa ini adalah string yang harus disambungkan ke string lain.

Secara teknis, Anda dapat memperoleh output yang sama dengan mendeklarasikan satu variabel String dengan teks lengkap, bukan menggunakan variabel terpisah. Namun, tujuan dari latihan ini adalah menunjukkan cara mendeklarasikan dan memanipulasi variabel String, terutama cara menyambungkan string terpisah.

  1. Saat membaca kode yang berisi string, Anda mungkin menemukan urutan escape. Urutan escape adalah karakter yang diawali dengan simbol garis miring terbalik (\) atau disebut juga konversi garis miring terbalik.

Contohnya adalah melihat \" dalam literal string seperti dalam contoh di bawah. Salin dan tempel kode ini ke Kotlin Playground.

fun main() {
    println("Say \"hello\"")
}

Anda telah mempelajari sebelumnya untuk menggunakan tanda petik ganda di sekitar literal string. Namun, bagaimana jika Anda ingin menggunakan simbol " dalam string? Selanjutnya, Anda perlu menambahkan simbol garis miring terbalik sebelum tanda petik ganda sebagai \" dalam string. Perlu diingat bahwa harus tetap ada tanda petik ganda di seluruh string.

  1. Jalankan program untuk melihat output. Tulisan yang akan muncul:
Say "hello"

Pada output, ada tanda petik yang ditampilkan di sekitar hello karena kita menambahkan \" sebelum dan sesudah hello dalam pernyataan println().

Untuk urutan escape lainnya yang didukung di Kotlin, lihat halaman dokumentasi tentang urutan escape. Misalnya, jika Anda ingin baris baru dalam string, gunakan simbol \ sebelum karakter n seperti di \n.

Sekarang Anda telah mempelajari cara menggabungkan string dan juga meng-escape urutan dalam string. Pindah ke jenis data terakhir yang dicakup codelab ini.

Boolean

Jenis data Boolean berguna jika variabel Anda hanya memiliki dua kemungkinan nilai yang diwakili oleh true atau false.

Contohnya adalah variabel yang menunjukkan apakah mode pesawat perangkat aktif atau nonaktif, atau apakah notifikasi aplikasi diaktifkan atau dinonaktifkan.

  1. Masukkan kode ini di Kotlin Playground. Di baris 2 program ini, Anda mendeklarasikan variabel Boolean yang disebut notificationsEnabled dan melakukan inisialisasi ke true. Secara teknis, Anda dapat menghilangkan : Boolean dalam deklarasi sehingga dapat menghapusnya jika ingin. Di baris 3 program, Anda akan mencetak nilai variabel notificationsEnabled.
fun main() {
    val notificationsEnabled: Boolean = true
    println(notificationsEnabled)
}

Jalankan program, dan program akan mencetaknya:

true
  1. Ubah nilai awal Boolean menjadi nilai salah di baris 2 program.
fun main() {
    val notificationsEnabled: Boolean = false
    println(notificationsEnabled)
}

Jalankan program, dan program akan mencetaknya:

false
  1. Jenis data lain dapat disambungkan menjadi Strings. Misalnya, Anda dapat menyambungkan Booleans menjadi Strings. Gunakan simbol + untuk menyambungkan (atau menambahkan) nilai variabel boolean notificationsEnabled ke bagian akhir string "Are notifications enabled? ".
fun main() {
    val notificationsEnabled: Boolean = false
    println("Are notifications enabled? " + notificationsEnabled)
}

Jalankan program untuk melihat hasil penyambungan. Program akan mencetak output ini:

Are notifications enabled? false

Anda dapat melihat bahwa variabel Boolean dapat disetel ke nilai true atau false. Dengan variabel Boolean, Anda dapat membuat kode skenario yang lebih menarik dan memungkinkan Anda menjalankan beberapa kumpulan petunjuk saat variabel Boolean memiliki nilai true. Atau, Anda akan melewati petunjuk tersebut jika Boolean memiliki nilai yang salah. Anda akan mempelajari Booleans lebih lanjut di codelab selanjutnya.

6. Konvensi coding

Di codelab sebelumnya, Anda telah diperkenalkan dengan panduan gaya Kotlin untuk menulis kode Android secara konsisten seperti yang direkomendasikan oleh Google dan diikuti oleh developer profesional lainnya.

Berikut adalah beberapa konvensi pembuatan format dan coding lainnya yang dapat Anda ikuti berdasarkan topik baru yang telah Anda pelajari:

  • Nama variabel harus dalam camel case dan dimulai dengan huruf kecil.
  • Dalam deklarasi variabel, harus ada spasi setelah titik dua saat Anda menentukan jenis data.

Diagram ini menunjukkan baris kode yang menyatakan: val discount: Double = .20 Ada panah yang mengarah ke spasi di antara simbol titik dua dan jenis data Ganda, dengan label yang bertuliskan spasi.

  • Harus ada spasi sebelum dan sesudah operator seperti penetapan (=), penambahan (+), pengurangan (-), perkalian (*), pembagian (/), dan lainnya.

Diagram ini menunjukkan baris kode yang mengatakan: var pet = "bird" Ada panah yang mengarah ke spasi sebelum dan sesudah simbol tanda sama dengan, dengan label yang bertuliskan spasi.

Diagram ini menunjukkan baris kode yang bertuliskan: val sum = 1 + 2 Ada panah yang mengarah ke spasi sebelum dan sesudah simbol plus, dengan label yang bertuliskan spasi.

  • Saat menulis program yang lebih kompleks, ada rekomendasi batas sebesar 100 karakter per baris. Batas ini untuk memastikan Anda dapat membaca semua kode dalam program dengan mudah di layar komputer, tanpa perlu menggulir secara horizontal saat membaca kode.

7. Memberi komentar di kode Anda

Saat melakukan coding, praktik lain yang baik untuk diikuti adalah menambahkan komentar yang menjelaskan tujuan kode tersebut. Komentar dapat membantu orang yang membaca kode Anda agar dapat mengikutinya dengan lebih mudah. Dua simbol garis miring, atau //, menunjukkan bahwa teks setelahnya di baris lainnya dianggap sebagai komentar sehingga tidak ditafsirkan sebagai kode. Menambahkan spasi setelah dua simbol garis miring ke depan merupakan hal yang biasa.

// This is a comment.

Komentar juga dapat dimulai di tengah baris kode. Dalam contoh ini, height = 1 merupakan pernyataan coding normal. Semuanya setelah //, atau Assume the height is 1 to start with, ditafsirkan sebagai komentar dan tidak dianggap sebagai bagian dari kode.

height = 1 // Assume the height is 1 to start with.

Jika Anda ingin mendeskripsikan kode secara lebih detail dengan komentar panjang yang melebihi 100 karakter dalam satu baris, gunakan komentar banyak baris. Mulai komentar banyak baris dengan garis miring (/) dan simbol tanda bintang (*) sebagai /*. Tambahkan tanda bintang di awal setiap baris baru komentar. Kemudian, akhiri komentar dengan simbol tanda bintang dan garis miring */.

/*
 * This is a very long comment that can
 * take up multiple lines.
 */

Program ini berisi komentar satu baris dan banyak baris yang menjelaskan hal yang terjadi:

/**
 * This program displays the number of messages
 * in the user's inbox.
 */
fun main() {
    // Create a variable for the number of unread messages.
    var count = 10
    println("You have $count unread messages.")

    // Decrease the number of messages by 1.
    count--
    println("You have $count unread messages.")
}

Seperti yang sudah disebutkan sebelumnya, Anda dapat menambahkan baris kosong ke kode untuk mengelompokkan pernyataan terkait sehingga kode menjadi lebih mudah dibaca.

  1. Tambahkan beberapa komentar ke cuplikan kode sebelumnya yang Anda gunakan.
  2. Jalankan program untuk memastikan bahwa perilaku tidak berubah karena komentar tidak akan memengaruhi output.

8. Kesimpulan

Bagus! Anda telah mempelajari variabel di Kotlin, alasan pentingnya variabel dalam pemrograman, serta cara membuat, memperbarui, dan menggunakannya. Anda telah bereksperimen dengan berbagai jenis data dasar di Kotlin, seperti jenis data Int, Double, String, dan Boolean. Anda juga telah mempelajari perbedaan antara kata kunci val dan var.

Semua konsep ini adalah elemen penting dalam perjalanan Anda untuk menjadi seorang developer.

Sampai jumpa di codelab berikutnya.

Ringkasan

  • Variabel adalah penampung untuk satu bagian data.
  • Anda harus mendeklarasikan variabel terlebih dahulu sebelum menggunakannya.
  • Gunakan kata kunci val untuk menentukan variabel yang bersifat hanya baca jika tempat nilai tidak dapat berubah setelah ditetapkan.
  • Gunakan kata kunci var untuk menentukan variabel yang dapat diubah atau diubah.
  • Di Kotlin, sebaiknya gunakan val daripada var jika memungkinkan.
  • Untuk mendeklarasikan variabel, mulai dengan kata kunci val atau var. Kemudian, tentukan nama variabel, jenis data, dan nilai awal. Misalnya: val count: Int = 2.
  • Dengan inferensi jenis, hilangkan jenis data dalam deklarasi variabel jika nilai awal diberikan.
  • Beberapa jenis data Kotlin dasar yang umum mencakup: Int, String, Boolean, Float, dan Double.
  • Gunakan operator penetapan (=) untuk menetapkan nilai ke variabel selama deklarasi variabel atau memperbarui variabel.
  • Anda hanya dapat memperbarui variabel yang telah dideklarasikan sebagai variabel yang dapat diubah (dengan var).
  • Gunakan operator penambahan (++) atau operator pengurangan (--) untuk menambah atau mengurangi nilai variabel bilangan bulat masing-masing sebesar 1.
  • Gunakan simbol + untuk menyambungkan string menjadi satu. Anda juga dapat menyambungkan variabel dari jenis data lain seperti Int dan Boolean ke Strings.

Pelajari lebih lanjut