Pada dasarnya semua program aplikasi bisa dikembangan hanya dengan bantuan text editor dan build tools. Lalu adanya IDE adalah untuk mempermudah dan mempercepat proses pengembangan. Pada modul ini kita akan mempelajari bersama bagaimana membuat program dengan Kotlin dari cara yang paling dasar hingga memanfaatkan bantuan IDE.
Membuat Program Dengan Gradle
Untuk membuat program dengan Gradle, kita akan membutuhkan sebuah plugin yaitu Gradle Init Build Plugin. Kita tidak perlu menambahkannya secara manual karena plugin tersebut merupakan bawaan dari paket instalasi Gradle.
Sebelum membuat project, terlebih dahulu buat folder baru yang akan digunakan sebagai folder project yang nantinya akan kita buat. Setelah selesai, silakan buka terminal atau command prompt Anda dan kita akan langsung coba membuat sebuah program dengan menjalankan perintah gradle init seperti berikut:
Untuk pembuatan folder project di atas diberi nama kotlin-starter. Anda bisa menyesuaikan namanya dengan keinginan masing-masing. Lanjut, setelah kita menjalankan perintah seperti di atas, terminal akan menampilkan daftar jenis-jenis proyek yang bisa kita pilih. Kita bisa memilih jenis dari proyek yang ingin kita kembangkan dengan cara memilih angka yang ada pada daftar tersebut. Karena kita akan membuat proyek dengan tipe application maka masukkan angka 2 dan tekan enter.
Berikutnya kita akan diminta untuk memilih bahasa yang akan kita gunakan. Karena kita akan membuat proyek dengan Kotlin, langsung saja masukkan angka 4 dan tekan enter.
Setelah itu, Anda juga bisa menentukan tipe dari build script, nama proyek dan juga package name yang akan digunakan. Selengkapnya bisa Anda lihat pada gambar berikut:
Sampai di sini kita telah memiliki proyek Kotlin baru dengan nama kotlin-starter, package name com.dicoding.kotlin dan menggunakan Kotlin DSL sebagai build script-nya. Sebenarnya kita bisa meringkas langkah-langkah tersebut dengan cara langsung menuliskan perintah seperti berikut:
- gradle init --type kotlin-application --dsl kotlin --project-name kotlin-starter --package com.dicoding.kotlin
Jika Anda membuka proyek tersebut, maka Anda akan melihat struktur proyek seperti di bawah ini:
Mari kita pelajari satu per satu dari masing-masing berkas tersebut.
Gradle Wrapper
Di dalam folder gradle/wrapper/ kita akan menemukan 2 (dua) berkas yaitu gradle-wrapper.jar dan gradle-wrapper.properties. Berkas Wrapper JAR merupakan sebuah library yang berisi kode untuk mengunduh distribusi Gradle. Sedangkan gradle-wrapper.properties adalah sebuah properti yang bisa kita gunakan untuk mengkonfigurasi behaviour dari Wrapper runtime seperti mengatur versi Gradle dari proyek dll. Berikut adalah konfigurasi yang terdapat pada berkas 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
Terdapat juga berkas gradlew dan gradlew.bat pada folder root, yaitu sebuah shell script dan Windows batch script yang digunakan untuk menjalankan build dengan Wrapper.
Build Scripts
Selanjutnya, di dalam proyek tersebut juga terdapat 2 (dua) berkas gradle scripts yaitu settings.gradle.kts dan build.gradle.kts. Kedua berkas tersebut merupakan Gradle Kotlin DSL yang bisa kita gunakan untuk mengatur konfigurasi dari Gradle. Gradle mendukung 2 (dua) jenis build script yaitu Groovy dan Kotlin DSL. Namun pada akademi ini kita hanya akan fokus menggunakan Kotlin DSL. Beberapa hal yang menjadi alasan kenapa kita memilih Kotlin DSL adalah:
- Memungkinkan kita untuk memaksimalkan fitur auto-completion pada IDE nantinya;
- Membuat kita tidak perlu mempelajari 2 bahasa (Groovy + Kotlin);
- Untuk DSL Konfigurasi, pengembangan Gradle kedepan akan lebih fokus ke penggunaan Kotlin dibandingkan dengan Groovy.
Di dalam berkas 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 tersebut digunakan untuk mengatur nama dari proyek kita. Ke depannya, di dalam berkas ini kita bisa menambahkan beberapa konfigurasi seperti pengaturan modul dan sebagainya.
Kemudian berkas 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 berkas tersebut terdapat berbagai macam konfigurasi seperti pengaturan plugins, repositories, dependencies dan lain sebagainya. Biasanya kita akan sering menggunakan berkas ini ketika kita ingin menambahkan dependency atau library baru. Pada proyek baru tersebut kita hanya memerlukan 1 (satu) library yang secara otomatis sudah ditambahkan, yaitu kotlin-stdlib.
Source (src)
Folder src merupakan tempat kita menyimpan berbagai macam sumber daya untuk pengembangan aplikasi. Di dalamnya Anda akan melihat 2 (dua) folder lagi yaitu main dan test.
Mari kita mulai dari folder main terlebih dahulu. Folder ini merupakan folder utama tempat di mana kita meletakkan berkas kode dan resources lainnya. Di dalam folder main terdapat folder Kotlin, lalu di dalam Kotlin terdapat package name dari proyek kita yaitu com.dicoding.kotlin. Pada package name ini lah kita bisa menambahkan berkas kode nantinya. Saat ini kita sudah memiliki 1 berkas 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)
- }
Selanjutnya adalah folder test, yang berisi berkas-berkas kode pengujian aplikasi. Sama dengan folder main, di dalam test juga terdapat folder kotlin dan package name dari proyek kita. Di sana terdapat berkas AppTest.kt yang merupakan sebuah kelas pengujian. 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 dibuat secara otomatis saat kita membuat proyek dengan Gradle.
Menjalankan Program Gradle
Setelah mengetahui struktur dari proyek yang dibuat, selanjutnya kita akan menjalankan program tersebut. Caranya sangat sederhana. Pada terminal kita cukup menjalankan 1 (satu) perintah Gradle berikut:
- gradle run
Lalu Gradle akan melakukan proses build pada proyek tersebut. Secara otomatis ia akan mengeksekusi kode di dalam berkas App.kt. Jika berhasil, maka terminal akan menampilkan pesan seperti di bawah ini:
Jika proses build berlangsung lama, itu adalah hal normal karena baru pertama kali dijalankan pada suatu proyek di mana compiler akan mendownload beberapa library pendukung agar program dapat dijalankan dengan baik.
Perintah gradle run di atas, bisa juga Anda gunakan pada system operasi Windows, berikut contoh jika perintah tersebut dijalankan: