Otomatisasi Styling & Formating Code Kotlin Menggunakan Ktlint

pradio ep
bhinneka-tech
Published in
2 min readSep 28, 2022
Photo by Marc Mueller

Kita sepakat code style bersifat subjective, setiap orang dengan yang lainnya bisa mempunyai opini yang berbeda bagaimana code yang baik itu ditulis.

Dalam beberapa kasus kita sering menemui kondisi saat membaca code atau melakukan review dari merge request rekan kita, kita menemukan code style yang tidak sesuai baik itu bisa berupa penggunaan 4x space untuk indentation, penggunaan wildcard atau unused import, adanya multiple space, dan masih banyak lagi.

Daripada menghabiskan waktu dan tenaga untuk meminta change request atau berdebat mengenai personal preference mengenai code style yang tidak memiliki bisnis value, lebih baik kita menggunakan tools yang bisa secara otomatis melakukan pengecekan dan juga melakukan styling serta formating terhadap code kotlin kita.

Klint

An anti-bikeshedding Kotlin linter with built-in formatter

Ktlint mencoba untuk untuk menghindari kita dari bikeshedding atau investasi waktu dan energi yang sia-sia dalam diskusi tentang masalah teknis yang tidak perlu dilakukan.

Ktlint membawa style rules berdasarkan official Kotlin style guide. Dengan Ktlint kita bisa mengecek code kita apakah sudah sesuai dengan style rules atau melakukan formating code yang tidak sesuai secara otomatis. Formating otomatis ini tidak dapat langsung memperbaiki semua masalah, namun secara umum bisa di andalkan.

Menggunakan Ktlint

Penjelasan lengkap mengenai instruksi instalasi dapat dilihat pada bagian getting started yang ada pada Ktlint homepage.

Disini kita akan coba menggunakan gradle. Terdapat 2 hal yang kita perlu dilakukan pada file build.gradle proyek kita.

Pertama, memasukan Ktlint sebagai dependency.

apply plugin: "java"  repositories {     
jcenter()
}
configurations {
ktlint
}
dependencies {
ktlint "com.pinterest:ktlint:0.43.1"
}

Kedua, tambahkan gradle task baru untuk menjalankan Ktlint.

task ktlint(type: JavaExec, group: "verification") {    
description = "Check Kotlin code style."
classpath = configurations.ktlint
main = "com.pinterest.ktlint.Main"
args "src/**/*.kt"
}
check.dependsOn ktlint task ktlintFormat(type: JavaExec, group: "formatting") {
description = "Fix Kotlin code style deviations."
classpath = configurations.ktlint
main = "com.pinterest.ktlint.Main"
args "-F", "src/**/*.kt"
}

Menjalankan Ktlint

Untuk menjalankan Ktlint kita cukup menggunakan salah satu perintah dari task yang sudah dibuat sebelumnya.

# check code style (it's also bound to "gradle check")
gradle ktlint
# fix code style deviations (runs built-in formatter)
gradle ktlintFormat

Kita juga dapat menjadikan task diatas sebagai bagian dari CI/CD pipeline yang dibutuhkan dalam pengecekan code di github kita sebelum fitur baru dapat di merge. Ini dilakukan untuk memastikan bahwa code yang ditulis sudah sesuai dengan code style yang disepakati.

Rerefensi:
- Ktlint Homepage
- Ktlint Github Repository

--

--