Soal Latihan: Dasar-Dasar Kotlin

1. Sebelum memulai

Setelah Anda bekerja keras memperoleh pengetahuan tentang dasar-dasar pemrograman Kotlin, sekarang saatnya Anda mempraktikkan semua yang telah Anda pelajari.

Latihan ini akan menguji pemahaman Anda terkait konsep yang telah dipelajari. Latihan bertemakan kasus penggunaan di dunia nyata, yang beberapa di antaranya mungkin pernah Anda temui sebelumnya.

Ikuti petunjuk untuk menemukan solusi atas setiap masalah. Jika mengalami kesulitan, beberapa latihan memiliki petunjuk yang dapat membantu Anda mengatasinya. Kode solusi tersedia di akhir, tetapi sangat disarankan agar Anda menyelesaikan latihan sebelum memeriksa jawaban.

Pertimbangkan solusi sebagai salah satu cara untuk menyelesaikan masalah dan jangan ragu untuk bereksperimen sesuka Anda. Anda dapat menyelesaikan beberapa latihan dengan beberapa cara, dan menggunakan nama yang berbeda untuk fungsi dan variabel.

Selesaikan semua soal latihan tanpa terburu-buru. Durasi waktu akan dicantumkan, tetapi Anda tidak perlu mematuhinya karena hanya digunakan sebagai perkiraan. Sebaiknya manfaatkan waktu semaksimal mungkin untuk menyelesaikan setiap soal latihan dengan cermat.

Sebaiknya Anda menggunakan Kotlin Playground untuk menyelesaikan latihan berikut.

Prasyarat

Yang akan Anda butuhkan

  • Komputer dengan akses internet dan browser web

2. Mencetak pesan

Beri tahu teman Anda apa saja yang telah Anda pelajari di jalur ini.

  • Dapatkah Anda menulis fungsi main() yang mencetak pesan ini di empat baris terpisah?
Use the val keyword when the value doesn't change.
Use the var keyword when the value can change.
When you define a function, you define the parameters that can be passed to it.
When you call a function, you pass arguments for the parameters.

3. Memperbaiki error kompilasi

Program ini mencetak pesan yang akan memberi tahu pengguna bahwa mereka menerima pesan chat dari teman.

fun main() {
    println("New chat message from a friend'}
}
  1. Dapatkah Anda mengetahui akar penyebab error kompilasi dalam program ini dan memperbaikinya?
  2. Apakah kode menggunakan simbol yang sesuai untuk menunjukkan peristiwa membuka dan menutup string serta argumen fungsi?

Petunjuk: Anda dapat menggunakan Kotlin Playground untuk menjalankan kode dan melihat error kompilasi.

Setelah Anda memperbaiki error, program akan dikompilasi tanpa error dan mencetak output ini:

New chat message from a friend

4. Template string

Program ini menginformasikan pengguna tentang obral promosi yang akan datang untuk item tertentu. Elemen ini memiliki template string yang bergantung pada variabel discountPercentage untuk diskon persen dan variabel item untuk item yang dijual. Namun, ada error kompilasi dalam kode.

fun main() {
    val discountPercentage: Int = 0
    val offer: String = ""
    val item = "Google Chromecast"
    discountPercentage = 20
    offer = "Sale - Up to $discountPercentage% discount on $item! Hurry up!"

    println(offer)
}
  1. Dapatkah Anda mengetahui penyebab utama error dan memperbaikinya?
  2. Dapatkah Anda menentukan output program ini sebelum menjalankan kode di Kotlin Playground?

Petunjuk: Dapatkah Anda menetapkan ulang nilai ke variabel hanya baca?

Setelah Anda memperbaiki error, program akan dikompilasi tanpa error dan mencetak output ini:

Sale - Up to 20% discount on Google Chromecast! Hurry up!

5. Penyambungan string

Program ini menampilkan jumlah total tamu di pesta. Ada orang dewasa dan anak-anak di pesta tersebut. Variabel numberOfAdults menyimpan jumlah orang dewasa di pesta dan variabel numberOfKids menyimpan jumlah anak-anak.

fun main() {
    val numberOfAdults = "20"
    val numberOfKids = "30"
    val total = numberOfAdults + numberOfKids
    println("The total party size is: $total")
}

Langkah 1

  • Dapatkah Anda menentukan output program ini sebelum menjalankan kode di Kotlin Playground?

Setelah Anda menentukan output, jalankan kode di Kotlin Playground, lalu periksa apakah output cocok dengan output yang ditampilkan.

Petunjuk: Apa yang terjadi jika Anda menggunakan operator + pada dua string?

Langkah 2

Kode ini berfungsi dan mencetak beberapa output, tetapi output tidak menunjukkan jumlah total tamu yang menghadiri pesta.

  • Dapatkah Anda menemukan masalah dalam kode dan memperbaikinya sehingga program ini dapat mencetak output ini?
The total party size is: 50

6. Pemformatan pesan

Program ini menampilkan total gaji bulan ini yang diterima karyawan. Total gaji dibagi menjadi dua bagian: variabel baseSalary yang merupakan gaji yang diterima karyawan setiap bulan dan variabel bonusAmount yang merupakan bonus tambahan yang diberikan kepada karyawan tersebut.

fun main() {
    val baseSalary = 5000
    val bonusAmount = 1000
    val totalSalary = "$baseSalary + $bonusAmount"
    println("Congratulations for your bonus! You will receive a total of $totalSalary (additional bonus).")
}
  1. Dapatkah Anda mengetahui output kode ini sebelum Anda menjalankannya di Kotlin Playground?
  2. Saat Anda menjalankan kode di Kotlin Playground, apakah kode mencetak output yang Anda harapkan?

7. Mengimplementasikan operasi matematika dasar

Dalam latihan ini, Anda akan menulis program yang melakukan operasi matematika dasar dan mencetak output.

Langkah 1

Fungsi main() ini berisi satu error kompilasi:

fun main() {
    val firstNumber = 10
    val secondNumber = 5

    println("$firstNumber + $secondNumber = $result")
}
  • Dapatkah Anda memperbaiki error tersebut sehingga program bisa mencetak output ini?
10 + 5 = 15

Langkah 2

Kode berfungsi, tetapi logika untuk menambahkan dua angka terletak dalam variabel hasil sehingga kode Anda kurang dinamis untuk digunakan kembali. Sebaliknya, Anda dapat mengekstrak operasi penambahan ke fungsi add() agar kode dapat digunakan kembali. Untuk melakukannya, update kode Anda dengan kode yang tercantum di bawah. Perhatikan bahwa kode kini memperkenalkan val baru yang disebut thirdNumber dan mencetak hasil variabel baru ini dengan firstNumber.

fun main() {
    val firstNumber = 10
    val secondNumber = 5
    val thirdNumber = 8

    val result = add(firstNumber, secondNumber)
    val anotherResult = add(firstNumber, thirdNumber)

    println("$firstNumber + $secondNumber = $result")
    println("$firstNumber + $thirdNumber = $anotherResult")
}

// Define add() function below this line
  • Dapatkah Anda menentukan fungsi add() sehingga program bisa mencetak output ini?
10 + 5 = 15
10 + 8 = 18

Langkah 3

Sekarang Anda memiliki fungsi yang dapat digunakan kembali untuk menambahkan dua angka.

  • Dapatkah Anda menerapkan fungsi subtract() dengan cara yang sama seperti menerapkan fungsi add()? Ubah juga fungsi main() agar menggunakan fungsi subtract() sehingga Anda dapat memverifikasi bahwa fungsi tersebut berfungsi seperti yang diharapkan.

Petunjuk: Pikirkan perbedaan antara penambahan, pengurangan, dan operasi matematika lainnya. Mulai kerjakan kode solusi dari situ.

8. Parameter default

Gmail memiliki fitur yang dapat mengirimkan notifikasi kepada pengguna setiap kali upaya login dilakukan di perangkat baru.

Dalam latihan ini, Anda akan menulis program yang menampilkan pesan kepada pengguna menggunakan template pesan ini:

There's a new sign-in request on operatingSystem for your Google Account emailId.

Anda perlu mengimplementasikan fungsi yang menerima parameter operatingSystem dan parameter emailId, membuat pesan dalam format tertentu, dan menampilkan pesan.

Misalnya, jika fungsi dipanggil dengan "Chrome OS" untuk operatingSystem dan "sample@gmail.com" untuk emailId, fungsi semestinya menampilkan string ini:

There's a new sign-in request on Chrome OS for your Google Account sample@gmail.com.

Langkah 1

  1. Dapatkah Anda mengimplementasikan fungsi displayAlertMessage() dalam program ini supaya bisa mencetak output yang ditampilkan?
fun main() {
    val operatingSystem = "Chrome OS"
    val emailId = "sample@gmail.com"

    println(displayAlertMessage(operatingSystem, emailId))
}

// Define your displayAlertMessage() below this line.
  1. Apakah program Anda bisa mencetak output ini?
There's a new sign-in request on Chrome OS for your Google Account sample@gmail.com.

Langkah 2

Bagus. Anda sudah menampilkan pesan. Namun, dalam beberapa kasus, Anda tidak dapat menentukan sistem operasi pengguna. Dalam kasus tersebut, Anda perlu menentukan nama sistem operasi sebagai Unknown OS. Anda dapat mengoptimalkan kode lebih lanjut sehingga tidak perlu meneruskan argumen Unknown OS setiap kali fungsi diaktifkan.

  1. Dapatkah Anda menemukan cara untuk mengoptimalkan kode dengan informasi ini sehingga kode tersebut bisa mencetak output ini?
There's a new sign-in request on Unknown OS for your Google Account user_one@gmail.com.

There's a new sign-in request on Windows for your Google Account user_two@gmail.com.

There's a new sign-in request on Mac OS for your Google Account user_three@gmail.com.
  1. Untuk mencetak pesan di atas, ganti implementasi fungsi main() dengan yang ini:
fun main() {
    val firstUserEmailId = "user_one@gmail.com"

    // The following line of code assumes that you named your parameter as emailId.
    // If you named it differently, feel free to update the name.
    println(displayAlertMessage(emailId = firstUserEmailId))
    println()

    val secondUserOperatingSystem = "Windows"
    val secondUserEmailId = "user_two@gmail.com"

    println(displayAlertMessage(secondUserOperatingSystem, secondUserEmailId))
    println()

    val thirdUserOperatingSystem = "Mac OS"
    val thirdUserEmailId = "user_three@gmail.com"

    println(displayAlertMessage(thirdUserOperatingSystem, thirdUserEmailId))
    println()
}

9. Pedometer

Pedometer adalah perangkat elektronik untuk menghitung jumlah langkah. Dewasa ini, hampir semua ponsel, smartwatch, dan perlengkapan kebugaran dilengkapi dengan pedometer bawaan. Aplikasi kesehatan dan kebugaran menggunakan pedometer bawaan untuk menghitung jumlah langkah. Fungsi ini menghitung jumlah kalori yang dibakar oleh pengguna berdasarkan jumlah langkah pengguna.

  • Dapatkah Anda mengganti nama fungsi, parameter fungsi, dan variabel dalam program ini berdasarkan praktik terbaik?
fun main() {
    val Steps = 4000
    val caloriesBurned = PEDOMETERstepsTOcalories(Steps);
    println("Walking $Steps steps burns $caloriesBurned calories")
}

fun PEDOMETERstepsTOcalories(NumberOFStepS: Int): Double {
    val CaloriesBURNEDforEachStep = 0.04
    val TotalCALORIESburned = NumberOFStepS * CaloriesBURNEDforEachStep
    return TotalCALORIESburned
}

10. Membandingkan dua angka

Ponsel modern memiliki fitur bawaan yang dapat melacak waktu pemakaian perangkat atau waktu yang Anda habiskan di ponsel setiap hari.

Dalam latihan ini, Anda akan menerapkan fungsi yang membandingkan waktu yang Anda habiskan (dalam menit) di ponsel pada hari ini dengan hari sebelumnya. Fungsi ini menerima dua parameter bilangan bulat dan menampilkan nilai boolean.

Parameter pertama menyimpan jumlah menit yang Anda habiskan hari ini dan parameter kedua menyimpan jumlah menit yang Anda habiskan kemarin. Fungsi ini menampilkan nilai true jika Anda menggunakan ponsel lebih lama pada hari ini dibandingkan dengan kemarin. Jika tidak, metode ini akan menampilkan nilai false.

Misalnya, jika Anda memanggil fungsi dengan argumen bernama ini:

  • timeSpentToday = 300 dan timeSpentYesterday = 250, fungsi ini akan menampilkan nilai true.
  • timeSpentToday = 300 dan timeSpentYesterday = 300, fungsi ini akan menampilkan nilai false.
  • timeSpentToday = 200 dan timeSpentYesterday = 220, fungsi ini akan menampilkan nilai false.

Petunjuk: Operator perbandingan > akan menampilkan nilai true jika nilai sebelum operator lebih besar dari nilai setelahnya. Jika tidak, metode ini akan menampilkan nilai false.

11. Memindahkan kode duplikat ke fungsi

Program ini menampilkan cuaca di berbagai kota. Data tersebut mencakup nama kota, suhu tertinggi dan terendah untuk hari tersebut, serta kemungkinan turunnya hujan.

fun main() {
    println("City: Ankara")
    println("Low temperature: 27, High temperature: 31")
    println("Chance of rain: 82%")
    println()

    println("City: Tokyo")
    println("Low temperature: 32, High temperature: 36")
    println("Chance of rain: 10%")
    println()

    println("City: Cape Town")
    println("Low temperature: 59, High temperature: 64")
    println("Chance of rain: 2%")
    println()

    println("City: Guatemala City")
    println("Low temperature: 50, High temperature: 55")
    println("Chance of rain: 7%")
    println()
}

Ada banyak kesamaan dalam kode pencetak cuaca untuk setiap kota. Misalnya, ada frasa yang diulang beberapa kali, misalnya "City:" dan "Low temperature:". Kode berulang yang mirip dapat menimbulkan risiko error dalam program Anda. Untuk salah satu kota, Anda mungkin salah ketik atau lupa salah satu detail cuaca.

  1. Dapatkah Anda membuat fungsi pencetak detail cuaca untuk satu kota guna mengurangi pengulangan dalam fungsi main(), lalu melakukan hal yang sama untuk kota lainnya?
  2. Dapatkah Anda memperbarui fungsi main() untuk mengaktifkan fungsi yang Anda buat untuk setiap kota dan meneruskan detail cuaca yang sesuai sebagai argumen?

12. Kode solusi

Solusi ini menggunakan fungsi println() untuk mencetak pesan di setiap baris.

fun main() {
    println("Use the val keyword when the value doesn't change.")
    println("Use the var keyword when the value can change.")
    println("When you define a function, you define the parameters that can be passed to it.")
    println("When you call a function, you pass arguments for the parameters.")
}

Memperbaiki error kompilasi

Kode ini berisi dua error kompilasi:

  1. String harus diakhiri dengan tanda kutip ganda, bukan tanda kutip tunggal.
  2. Argumen fungsi harus diakhiri dengan tanda kurung, bukan tanda kurung kurawal.
fun main() {
    println("New chat message from a friend")
}

Template string

Error kompilasi adalah hasil dari penetapan variabel hanya baca discountPercentage dan offer ke nilai baru; penetapan ini tidak diizinkan.

fun main() {
    val discountPercentage = 20
    val item = "Google Chromecast"
    val offer = "Sale  - Up to $discountPercentage% discount off $item! Hurry Up!"

    println(offer)
}

Sebagai solusi alternatif, Anda dapat mendeklarasikan bilangan bulat discountPercentage dan string offer dengan kata kunci var. Namun demikian, nilainya tidak dapat diubah dalam konteks program sehingga Anda dapat tetap menggunakan kata kunci val.

Penyambungan string

Langkah 1

Program ini mencetak output ini:

The total party size is: 2030

Ini pertanyaan yang sulit. Ketika operator + digunakan pada nilai String, operator tersebut akan menghasilkan string gabungan. Bilangan bulat digabungkan dengan tanda kutip ganda sehingga diperlakukan sebagai string, bukan bilangan bulat, oleh dan menjadi output 2030.

Langkah 2

Anda dapat menghapus tanda kutip ganda di sekitar variabel numberOfAdults dan numberOfKids untuk mengonversinya ke variabel Int.

fun main() {
    val numberOfAdults = 20
    val numberOfKids = 30
    val total = numberOfAdults + numberOfKids
    println("The total party size is: $total")
}

Jika Anda ingat, compiler Kotlin dapat menyimpulkan jenis variabel berdasarkan nilai yang telah ditetapkan padanya. Dalam hal ini, compiler akan menyimpulkan bahwa variabel numberOfAdults dan numberOfKids adalah jenis Int.

Pemformatan pesan

Program ini mencetak output ini:

Congratulations for your bonus! You will receive a total of 5000 + 1000 (additional bonus).

"$baseSalary + $bonusAmount" menggunakan sintaksis ekspresi template. Dalam ekspresi template, kode dievaluasi terlebih dahulu, lalu hasilnya digabungkan dalam string.

Dalam pertanyaan, variabel $baseSalary dievaluasi ke nilai 5000 dan variabel $bonusAmount dievaluasi ke nilai 1000. Kemudian, hasilnya digabungkan untuk menghasilkan "5000 + 1000" dan ditetapkan ke variabel result.

Mengimplementasikan operasi matematika dasar

Langkah 1

Tentukan variabel result yang tidak dapat diubah dengan kata kunci val, lalu tetapkan hasil dari operasi penambahan:

fun main() {
    val firstNumber = 10
    val secondNumber = 5

    val result = firstNumber + secondNumber
    println("$firstNumber + $secondNumber = $result")
}

Langkah 2

  1. Buat fungsi add() yang menerima parameter firstNumber dan parameter secondNumber, keduanya dari jenis Int, dan menampilkan nilai Int.
  2. Masukkan kode untuk operasi penambahan di dalam isi fungsi add(), lalu gunakan kata kunci return untuk menampilkan hasil operasi.
fun add(firstNumber: Int, secondNumber: Int): Int {
    return firstNumber + secondNumber
}

Langkah 3

  1. Tentukan fungsi subtract() yang menerima parameter firstNumber dan parameter secondNumber, keduanya dari jenis Int, dan menampilkan nilai Int.
  2. Masukkan kode untuk operasi pengurangan di dalam isi fungsi subtract(), lalu gunakan kata kunci return untuk menampilkan hasil operasi.
fun subtract(firstNumber: Int, secondNumber: Int): Int {
    return firstNumber - secondNumber
}
  1. Ubah fungsi main() untuk menggunakan fungsi subtract() yang baru. Contoh solusi dapat terlihat seperti ini:
fun main() {
    val firstNumber = 10
    val secondNumber = 5
    val thirdNumber = 8

    val result = add(firstNumber, secondNumber)
    val anotherResult = subtract(firstNumber, thirdNumber)

    println("$firstNumber + $secondNumber = $result")
    println("$firstNumber - $thirdNumber = $anotherResult")
}

fun add(firstNumber: Int, secondNumber: Int): Int {
    return firstNumber + secondNumber
}

fun subtract(firstNumber: Int, secondNumber: Int): Int {
    return firstNumber - secondNumber
}

Parameter default

Langkah 1

  1. Buat fungsi displayAlertMessage() yang menerima parameter operatingSystem dan parameter emailId, keduanya dari jenis String, dan menampilkan nilai String.
  2. Dalam isi fungsi, gunakan ekspresi template untuk memperbarui pesan dan menampilkannya.
fun displayAlertMessage(operatingSystem: String, emailId: String): String {
    return "There is a new sign-in request on $operatingSystem for your Google Account $emailId."
}

Langkah 2

  • Tetapkan nilai "Unknown OS" ke parameter operatingSystem.
fun displayAlertMessage(
    operatingSystem: String = "Unknown OS",
    emailId: String
): String {
    return "There is a new sign-in request on $operatingSystem for your Google Account $emailId."
}

Pedometer

Nama fungsi dan nama variabel harus mengikuti konvensi camel case.

Jika nama berisi beberapa kata, huruf kecil di huruf pertama dari kata pertama, menggunakan huruf besar pada huruf pertama dari kata berikutnya, dan menghapus spasi di antara kata tersebut.

Contoh nama fungsi meliputi:

  • calculateTip
  • displayMessage
  • takePhoto

Contoh nama variabel meliputi:

  • numberOfEmails
  • cityName
  • bookPublicationDate

Untuk mempelajari nama lebih lanjut, lihat Aturan penamaan.

Hindari penggunaan kata kunci Kotlin sebagai nama fungsi karena kata tersebut sudah memiliki arti tertentu dalam bahasa Kotlin.

Kode solusi Anda akan terlihat seperti cuplikan kode ini:

fun main() {
    val steps = 4000
    val caloriesBurned = pedometerStepsToCalories(steps);
    println("Walking $steps steps burns $caloriesBurned calories")
}

fun pedometerStepsToCalories(numberOfSteps: Int): Double {
    val caloriesBurnedForEachStep = 0.04
    val totalCaloriesBurned = numberOfSteps * caloriesBurnedForEachStep
    return totalCaloriesBurned
}

Membandingkan dua angka

  • Buat fungsi compareTime() yang menerima parameter timeSpentToday dan parameter timeSpentYesterday, keduanya dari jenis Int, dan menampilkan nilai Boolean.

Solusi ini bergantung pada operator perbandingan >. Operator akan bernilai Boolean sehingga fungsi compareTime() hanya menampilkan hasil timeSpentToday > timeSpentYesterday.

Misalnya, jika Anda meneruskan argumen 300 ke parameter timeSpentToday dan argumen 250 ke parameter timeSpentYesterday, isi fungsi akan bernilai 300 > 250 yang menampilkan nilai true, karena 300 lebih besar dari 250.

fun main() {
    println("Have I spent more time using my phone today: ${compareTime(300, 250)}")
    println("Have I spent more time using my phone today: ${compareTime(300, 300)}")
    println("Have I spent more time using my phone today: ${compareTime(200, 220)}")
}

fun compareTime(timeSpentToday: Int, timeSpentYesterday: Int): Boolean {
    return timeSpentToday > timeSpentYesterday
}
Have I spent more time using my phone today: true
Have I spent more time using my phone today: false
Have I spent more time using my phone today: false

Memindahkan kode duplikat ke fungsi

  1. Buat fungsi yang akan mencetak detail cuaca untuk kota Jakarta setelah fungsi main().

Untuk nama fungsi, Anda dapat menggunakan printWeatherForCity() atau yang serupa.

  1. Aktifkan fungsi dari fungsi main().

Program tersebut akan mencetak detail cuaca untuk Jakarta.

fun main() {
    printWeatherForCity()
}

fun printWeatherForCity() {
    println("City: Ankara")
    println("Low temperature: 27, High temperature: 31")
    println("Chance of rain: 82%")
    println()
}

Sekarang Anda dapat membuat fungsi lain yang lebih dinamis sehingga dapat mencetak detail cuaca untuk kota lain.

  1. Ganti bagian khusus Jakarta dari pernyataan println() dengan variabel.

Jangan lupa gunakan konvensi camel case untuk nama variabel dan simbol $ sebelum variabel sehingga nilai variabel tersebut yang digunakan, bukan nama variabel. Ini adalah template string yang telah Anda pelajari di codelab sebelumnya.

fun printWeatherForCity() {
    println("City: $cityName")
    println("Low temperature: $lowTemp, High temperature: $highTemp")
    println("Chance of rain: $chanceOfRain%")
    println()
}
  1. Ubah definisi fungsi sehingga variabel tersebut merupakan parameter yang harus diteruskan ke fungsi saat dipanggil, lalu tentukan jenis data untuk setiap parameter.

Parameter cityName adalah jenis String, sedangkan parameter lowTemp, highTemp, dan chanceOfRain adalah jenis Int.

Tidak ada nilai return yang diperlukan dalam definisi fungsi karena pesan dicetak ke output.

fun printWeatherForCity(cityName: String, lowTemp: Int, highTemp: Int, chanceOfRain: Int) {
    println("City: $cityName")
    println("Low temperature: $lowTemp, High temperature: $highTemp")
    println("Chance of rain: $chanceOfRain%")
    println()
}
  1. Perbarui fungsi main() untuk mengaktifkan fungsi printWeatherForCity() dan masukkan detail cuaca untuk Jakarta.

Nama kotanya "Ankara", suhunya rendahnya 27, suhu tertingginya 31, dan peluang turunnya hujan 82.

fun main() {
    printWeatherForCity("Ankara", 27, 31, 82)
}

fun printWeatherForCity(cityName: String, lowTemp: Int, highTemp: Int, chanceOfRain: Int) {
    println("City: $cityName")
    println("Low temperature: $lowTemp, High temperature: $highTemp")
    println("Chance of rain: $chanceOfRain%")
    println()
}
  1. Jalankan program untuk memastikan bahwa output menampilkan detail cuaca untuk Jakarta.
  2. Aktifkan fungsi printWeatherForCity() dengan detail cuaca untuk kota lain.
fun main() {
    printWeatherForCity("Ankara", 27, 31, 82)
    printWeatherForCity("Tokyo", 32, 36, 10)
    printWeatherForCity("Cape Town", 59, 64, 2)
    printWeatherForCity("Guatemala City", 50, 55, 7)
}

fun printWeatherForCity(cityName: String, lowTemp: Int, highTemp: Int, chanceOfRain: Int) {
    println("City: $cityName")
    println("Low temperature: $lowTemp, High temperature: $highTemp")
    println("Chance of rain: $chanceOfRain%")
    println()
}
  1. Jalankan program.

Tindakan ini akan mencetak output yang sama seperti program asli, tetapi sekarang kode Anda lebih ringkas dan tidak berisi pengulangan yang tidak perlu! Semua kode untuk mencetak detail cuaca kota dipusatkan di satu tempat: fungsi printWeatherForCity(). Jika ingin mengubah tampilan detail cuaca, Anda dapat mengubahnya di satu tempat yang berlaku untuk semua kota.

13. Latihan Tambahan

Untuk latihan lain terkait bahasa Kotlin, lihat jalur Dasar-Dasar Kotlin di JetBrains Academy. Untuk membuka topik tertentu, buka peta pengetahuan guna melihat daftar topik yang dibahas dalam jalur.