Kode yang baik tidak hanya berbicara kepada kompilator — kode juga harus berbicara kepada pembaca berikutnya. Pada chapter ini kita akan melihat tiga jenis komentar yang didukung Kotlin: komentar satu baris //, komentar multi-baris /* */, serta komentar dokumentasi /** */ (KDoc). Kita juga akan membahas fitur khas Kotlin yaitu komentar blok bersarang (nested block comments) yang membedakannya dari Java.

Komentar Satu Baris // #

Komentar satu baris diawali dengan dua garis miring // dan berlaku hingga akhir baris. Komentar jenis ini cocok untuk penjelasan singkat di samping statement:

kotlin Komentar satu baris
// Inisialisasi konfigurasi default
val batasRetry = 3
val pathDatabase = "/data/app.db"   // path absolut database

Kompiler Kotlin mengabaikan seluruh teks setelah // hingga newline. Tidak ada sintaks khusus untuk komentar satu baris — cukup tulis // lalu penjelasan.

Komentar Multi-Baris /* */ #

Untuk penjelasan yang lebih panjang, Kotlin menyediakan komentar blok yang dibungkus /* di awal dan */ di akhir:

kotlin Komentar blok standar
/*
 * Fungsi ini menghitung total belanja berdasarkan harga satuan
 * dan jumlah barang. Pajak belum termasuk dalam perhitungan ini.
 */
fun hitungTotal(harga: Int, qty: Int): Int {
    return harga * qty
}

Konvensi gaya umum memakai tanda bintang di awal setiap baris dalam blok untuk memudahkan pemindai visual. Hal ini tidak diwajibkan — kompilator hanya memeriksa pasangan /* dan */.

Komentar Blok Bersarang (Nested Block Comments) #

Salah satu perbedaan penting antara Kotlin dan Java adalah dukungan terhadap komentar blok bersarang. Kotlin mengizinkan /* di dalam /* */ lain asalkan jumlah /* dan */ seimbang:

kotlin Nested block comment — valid di Kotlin
/* Komentar luar
   /* Komentar dalam */
   Lanjutan komentar luar
 */
val x = 42

Pada Java, cuplikan di atas akan menyebabkan kompilator mengira komentar berakhir di */ pertama dan baris berikutnya menjadi kode. Kotlin menghitung kedalaman /* dan menutup komentar hanya ketika jumlah */ sama dengan jumlah /*.

Fitur ini bermanfaat saat kita ingin menonaktifkan (comment-out) blok kode yang sudah berisi komentar /* */ tanpa harus mengubahnya. Cukup bungkus seluruh blok dengan /* */ baru.

Komentar Dokumentasi (KDoc) #

KDoc adalah format komentar dokumentasi resmi Kotlin, dibungkus /** */ dengan tanda bintang di awal setiap baris. KDoc dipakai oleh alat Dokka untuk menghasilkan dokumentasi API dalam format HTML.

kotlin Struktur KDoc
/**
 * Menghitung total harga belanja.
 *
 * @param harga harga satuan barang, dalam Rupiah.
 * @param qty jumlah unit yang dibeli.
 * @return total harga sebelum pajak.
 */
fun hitungTotal(harga: Int, qty: Int): Int {
    return harga * qty
}

Kita akan membahas KDoc secara mendalam — termasuk tag @param, @return, @throws, dan @sample — pada chapter Documentation Comments berikutnya. Untuk sekarang, cukup pahami bahwa /** */ adalah blok khusus yang diperlakukan berbeda dari komentar biasa oleh alat Dokka.

Contoh Lengkap dengan Tiga Jenis Komentar #

Berikut program kecil yang memadukan ketiga jenis komentar:

kotlin
// Komentar satu baris diawali dengan dua garis miring

/*
 * Komentar multi-baris menggunakan pasangan garis miring-bintang.
 * Setiap baris di dalamnya bisa ditulis bebas, termasuk dengan
 * tanda bintang di awal baris untuk keterbacaan.
 */

/* Kotlin memperbolehkan komentar blok bersarang (nested).
 * /* Ini komentar di dalam komentar */
 * Hal ini berbeda dengan Java yang tidak mengizinkan nesting.
 */

fun hitungTotal(harga: Int, qty: Int): Int {
    // Logika bisnis sederhana: harga kali quantity
    return harga * qty
}

fun main() {
    // Cetak total belanja Budi
    val total = hitungTotal(harga = 5000, qty = 3)
    println("Total belanja: $total")
}

Output yang Dihasilkan:

text
Total belanja: 15000

Program di atas memperlihatkan tiga jenis komentar berdampingan dalam satu file. Kompilator mengabaikan seluruhnya; hanya function hitungTotal dan main yang menjadi bytecode.

Praktik Penulisan Komentar yang Baik #

Komentar berkualitas menjelaskan mengapa, bukan apa. Kode sudah menjawab apa yang terjadi:

Praktik burukPraktik baik
i++ // increment ii++ // maju ke entri berikutnya untuk filtering batch
// cek null// skip entri yang tidak punya email karena pipeline下游 butuh email non-null
// return true// true bila pengguna memiliki izin admin; false untuk pengguna biasa

Komentar yang hanya mengulangi kode justru menambah noise dan cepat usang ketika kode berubah. Saat kode diubah tetapi komentar lupa diperbarui, pembaca berikutnya akan bingung. Lebih baik menghapus komentar yang hanya mengulangi kode.

Referensi Lanjutan #

Komentar yang baik melengkapi kode tanpa mengganggu. Setelah memahami tiga jenis komentar di Kotlin, kita siap mendalami format khusus KDoc yang menjadi standar dokumentasi API — pembahasan lengkap menanti pada chapter Documentation Comments.