Cara Membuat Program Kotlin dengan Menggunakan Gradle
Pada dasarnya semua program aplikasi dapat dikembangkan hanya dengan bantuan editor teks dan alat bantu. Kemudian IDE tersebut untuk mempermudah dan mempercepat proses pengembangan. Dalam artikel ini kita akan belajar bersama cara memprogram dengan Kotlin dari cara paling dasar hingga menggunakan bantuan IDE.
Membuat Program Dengan Menggunakan Gradle
Untuk memprogram dengan Gradle, kita membutuhkan sebuah plugin yaitu Gradle Init Build Plugin. Kita tidak perlu menambahkannya secara manual karena plugin sudah ada di dalam paket instalasi Gradle.
Sebelum membuat project, buat dulu folder baru yang akan digunakan sebagai folder project yang akan kita buat nanti. Setelah selesai silahkan buka terminal atau command prompt kamu dan kita akan langsung mencoba membuat program dengan menjalankan perintah gradle init sebagai berikut :
Untuk membuat folder project di atas bernama kotlin-starter. Kamu dapat menyesuaikan nama sesuai dengan keinginan pribadi kamu. Selanjutnya, setelah kita menjalankan perintah seperti di atas, terminal akan menampilkan daftar jenis project yang dapat kita pilih. Kita dapat memilih jenis project yang ingin kita kembangkan dengan memilih nomor pada daftar. Karena kita akan membuat project dengan tipe aplikasi, masukkan angka 2 dan tekan enter.
Selanjutnya kita akan diminta untuk memilih bahasa yang akan kita gunakan. Karena kita akan membuat project dengan Kotlin, cukup masukkan angka 4 dan tekan enter.
Setelah itu, kamu juga dapat menentukan jenis build script, nama project dan juga package name yang akan digunakan. Selengkapnya dapat kamu lihat pada gambar berikut:
Sejauh ini kita memiliki project Kotlin baru yang disebut kotlin-starter, package name com.dicoding.kotlin dan menggunakan Kotlin DSL sebagai build script-nya. Sebenarnya kita bisa meringkas langkah-langkah tersebut dengan langsung menuliskan perintah seperti berikut ini:
gradle init --type kotlin-application --dsl kotlin --project-name kotlin-starter --package com.dicoding.kotlin
Jika kamu membuka project, maka kamu akan melihat struktur project seperti di bawah ini:
Mari kita pelajari masing-masing file ini satu per satu.
Gradle Wrapper
Pada folder gradle/wrapper/ kita akan menemukan 2 (dua) file yaitu gradle-wrapper.jar dan gradle-wrapper.properties. File JAR Wrapper adalah pustaka yang berisi kode untuk mengunduh distribusi Gradle. Sedangkan gradle-wrapper.properties adalah properti yang dapat kita gunakan untuk mengkonfigurasi behavior dari wrapper runtime seperti mengatur versi Gradle dari project dll. Berikut ini adalah konfigurasi yang terdapat pada file tersebut:
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-6.2.2-bin.zip
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Ada juga file gradlew dan gradlew.bat di folder root, yang merupakan skrip shell dan skrip batch Windows yang digunakan untuk menjalankan build dengan Wrapper.
Build Scripts
Selanjutnya dalam project tersebut juga terdapat 2 (dua) file gradle scripts yaitu settings.gradle.kts dan build.gradle.kts. Kedua file tersebut adalah Gradle Kotlin DSL yang dapat kita gunakan untuk mengonfigurasi konfigurasi Gradle. Gradle mendukung 2 (dua) jenis skrip build, yaitu Groovy dan Kotlin DSL. Namun di artikel ini kita hanya akan fokus menggunakan Kotlin DSL. Beberapa alasan mengapa saya memilih Kotlin DSL adalah:
- Memungkinkan kita untuk memaksimalkan fitur auto-completion di IDE nanti;
- Membuat kita tidak perlu belajar 2 bahasa (Groovy + Kotlin);
- Untuk DSL yang dapat dikonfigurasi, pengembangan Gradle di masa mendatang akan lebih fokus pada penggunaan Kotlin daripada Groovy.
Dalam file settings.gradle.kts kita akan menemukan konfigurasi berikut:
/*
* This file was generated by the Gradle 'init' task.
*
* The settings file is used to specify which projects to include in your build.
*
* Detailed information about configuring a multi-project build in Gradle can be found
* in the user manual at https://docs.gradle.org/6.2.2/userguide/multi_project_builds.html
*/
rootProject.name = "kotlin-starter"
Konfigurasi ini digunakan untuk mengatur nama project kita. Kedepannya, dalam file ini kita bisa menambahkan beberapa konfigurasi seperti pengaturan modul dan lain sebagainya.
Kemudian file build.gradle.kts:
import org.jetbrains.kotlin.gradle.tasks.KotlinCompile
plugins {
kotlin("jvm") version "1.3.61"
}
group = "com.dicoding.kotlin"
version = "1.0-SNAPSHOT"
repositories {
mavenCentral()
}
dependencies {
implementation(kotlin("stdlib-jdk8"))
}
tasks.withType<KotlinCompile> {
kotlinOptions.jvmTarget = "1.8"
}
Di dalam file tersebut terdapat berbagai konfigurasi seperti pengaturan untuk plugin, repositori, dependensi dan lain sebagainya. Biasanya kita akan sering menggunakan file ini ketika ingin menambahkan dependensi atau library baru. Pada project baru kita hanya membutuhkan 1 (satu) library yang sudah otomatis ditambahkan yaitu kotlin-stdlib.
Source (src)
Folder src adalah tempat kita menyimpan berbagai macam sumber daya untuk pengembangan aplikasi. Di dalamnya kamu akan melihat 2 (dua) folder lagi, yaitu main dan test.
Mari kita mulai dengan folder utama terlebih dahulu. Folder ini adalah folder utama tempat kita meletakkan file-file kode dan resource lainnya. Di folder utama ada folder Kotlin, lalu di Kotlin ada nama paket project kita yaitu com.dicoding.kotlin. Dalam nama paket ini kita dapat menambahkan file kode nanti. Saat ini kita memiliki 1 file bernama App.kt:
/*
* This Kotlin source file was generated by the Gradle 'init' task.
*/
package com.dicoding.kotlin
class App {
val greeting: String
get() {
return "Hello world."
}
}
fun main(args: Array<String>) {
println(App().greeting)
}
Berikutnya adalah folder test, yang berisi file kode test aplikasi. Sama dengan folder utama, di test juga ada folder kotlin dan nama paket project kita. Ada file AppTest.kt yang merupakan kelas uji. Berikut kode di dalamnya:
/*
* This Kotlin source file was generated by the Gradle 'init' task.
*/
package com.dicoding.kotlin
import kotlin.test.Test
import kotlin.test.assertNotNull
class AppTest {
@Test fun testAppHasAGreeting() {
val classUnderTest = App()
assertNotNull(classUnderTest.greeting, "app should have a greeting")
}
}
Semua kode di atas dihasilkan secara otomatis saat kita membuat project dengan Gradle.
Menjalankan Program Gradle
Setelah mengetahui struktur project yang dibuat, selanjutnya kita akan menjalankan program tersebut. Metodenya sangat sederhana. Di terminal kita cukup menjalankan 1 (satu) perintah Gradle berikut:
gradle run
Kemudian Gradle akan melakukan proses build pada project tersebut. Ini akan secara otomatis mengeksekusi kode dalam file App.kt. Jika berhasil, maka terminal akan menampilkan pesan seperti di bawah ini:
Jika proses build memakan waktu lama, itu normal karena baru pertama kali dijalankan pada project dimana compiler akan mendownload beberapa library pendukung agar program dapat berjalan dengan baik.
Perintah gradle run diatas juga bisa kamu gunakan pada sistem operasi windows, berikut contoh jika perintah tersebut dijalankan :