Pertanyaan paling sering dalam kerja harian bukan soal bahasa, melainkan soal library: method apa yang tersedia di String, apa isi hasilnya, dan sejak versi mana method itu hadir. Jawaban resmi untuk semua itu tinggal satu klik: dokumentasi API berbentuk Javadoc yang dibangkitkan langsung dari kode sumber JDK. Chapter ini melatih cara membaca halaman Javadoc secara efisien dan menjadikannya sumber utama, bukan pelengkap. Kita akan membedah anatomi halamannya, lalu melatih navigasinya lewat satu program kecil.
Anatomi Sebuah Halaman Javadoc #
Ambil contoh halaman class String di docs.oracle.com/en/java/javase/25/docs/api/java.base/java/lang/String.html. Judulnya mencantumkan versi — String (Java SE 25 & JDK 25) — sebagai pengingat bahwa isi halaman terikat versi. Bagian atas menampilkan deklarasi class beserta hierarki pewarisannya, lalu tabel method summary merangkum seluruh method publik dalam satu tabel yang bisa diklik. Setiap baris tabel menghubungkan ke blok method detail yang memuat kontrak lengkap: parameter, nilai kembalian, kondisi yang dilempar sebagai exception, dan penanda Since yang menyebut versi pertama method itu tersedia. Membaca ringkasan dulu, lalu masuk ke detail hanya saat perlu — urutan itulah yang membuat penelusuran Javadoc cepat.
Mencari Class dan Method #
Titik masuk utamanya adalah docs.oracle.com/en/java/javase/25/docs/api/index.html, halaman daftar seluruh modul JDK. Kotak pencarian di dokumentasi itu — atau halaman search.html di akar API — menerima nama class, nama method, sampai frasa deskripsi, lalu melompat langsung ke hasilnya. Pola alamatnya juga bisa dibaca: jalur setelah /api/ mengikuti lokasi package, misalnya java.base/java/lang/String.html berarti class String di package java.lang pada modul java.base. Menghafal pola ini memungkinkan kita menulis alamat langsung tanpa melewati mesin pencari. Di IDE, Ctrl-klik pada nama method biasanya membuka halaman yang sama — pastikan saja IDE mengarah ke dokumentasi versi yang tepat.
Versi API dan API Lawas #
Dua penanda di halaman Javadoc menjaga kita dari jebakan versi. Penanda Since: 11 pada String.repeat() memberi tahu bahwa method itu tidak tersedia di Java 8, dan penanda Deprecated memberi tahu bahwa method itu masih berjalan tetapi tidak dianjurkan untuk kode baru. Untuk sistem yang masih berdiri di Java 8, dokumentasi API lawas tersedia di docs.oracle.com/javase/8/docs/api/ dengan tata letak lebih lama namun isinya sesuai versi itu. Kebiasaannya satu: buka dokumentasi untuk versi yang menjalankan kode Anda, bukan versi terbaru.
Latihan Menelusuri: dari Halaman ke Kode #
Latihan terbaik adalah menjelajah satu program sambil membuka halaman sumbernya. Program berikut memakai method dari dua halaman Javadoc — String dan Math:
public class MenjelajahJavadoc {
public static void main(String[] args) {
String namaMentah = " Budi Santoso ";
// Method di bawah ini didokumentasikan di halaman java.lang.String
System.out.println("strip() : [" + namaMentah.strip() + "]");
System.out.println("isBlank() : " + " ".isBlank());
System.out.println("repeat(3) : " + "-".repeat(3));
System.out.println("lines().count() : " + "Budi\nSiti\nDewi".lines().count());
// floorDiv dan floorMod didokumentasikan di halaman java.lang.Math
System.out.println("floorDiv(-7, 3) : " + Math.floorDiv(-7, 3));
System.out.println("floorMod(-7, 3) : " + Math.floorMod(-7, 3));
}
}Output yang Dihasilkan:
strip() : [Budi Santoso]
isBlank() : true
repeat(3) : ---
lines().count() : 3
floorDiv(-7, 3) : -3
floorMod(-7, 3) : 2Mari kita telaah dari mana setiap perilaku terdokumentasi:
- Baris 7-9 (
strip(),isBlank(),repeat(3)): ketiganya terdokumentasi di halamanjava.lang.Stringdengan penanda Since: 11 —strip()memangkas spasi di kedua ujung,isBlank()menghasilkantrueuntuk teks kosong, danrepeat(int)menggandakan teks. - Baris 10 (
lines().count()):lines()pada halamanjava.lang.Stringmemecah teks per baris menjadiStream<String>;count()dari halamanjava.util.stream.Streamlalu menghitung tiga baris nama. - Baris 13-14 (
floorDivdanfloorMod): keduanya dari halamanjava.lang.Math. Pembagian bulat biasa memotong ke arah nol (-7 / 3adalah-2), sedangkanfloorDivmembulatkan ke bawah menjadi-3;floorModmenjaga hubunganfloorDiv(a, b) * b + floorMod(a, b) == asehingga hasilnya2, bukan-1seperti%biasa.
Kebiasaan Membaca yang Efisien #
Tiga kebiasaan membuat Javadoc benar-benar menjadi sumber utama. Pertama, baca kontrak sebelum menulis loop — halaman method sering menyebut perilaku yang tidak kita duga, misalnya bahwa split membuang string kosong di ujung hasilnya. Kedua, perlakukan blok Throws sebagai daftar prasyarat: Integer.parseInt melempar NumberFormatException untuk teks yang bukan angka, jadi bungkus dengan try-catch bila masukan berasal dari pengguna. Ketiga, cocokkan penanda Since dengan versi target proyek sebelum memakai method modern. Sebagai peta besar, halaman java.base/module-summary.html yang merangkum seluruh class inti juga layak di-bookmark.
Dokumentasi API menjawab pertanyaan tentang library bawaan, tetapi proyek nyata cepat atau lambat membawa dependensi pihak ketiga ke dalam berkas build. Mengelola dependensi itulah wilayah alat build. Chapter berikutnya mengumpulkan rujukan resmi Maven dan Gradle beserta cara memakai keduanya sejak proyek kecil.
Referensi #
- Oracle: API Documentation JDK 25
- Oracle: Javadoc class String (JDK 25)
- Oracle: Pencarian API JDK 25
- Oracle: API Java 8 (dokumentasi lawas)
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
MenjelajahJavadoc.java
Unduh berkaspublic class MenjelajahJavadoc {
public static void main(String[] args) {
String namaMentah = " Budi Santoso ";
// Method di bawah ini didokumentasikan di halaman java.lang.String
System.out.println("strip() : [" + namaMentah.strip() + "]");
System.out.println("isBlank() : " + " ".isBlank());
System.out.println("repeat(3) : " + "-".repeat(3));
System.out.println("lines().count() : " + "Budi\nSiti\nDewi".lines().count());
// floorDiv dan floorMod didokumentasikan di halaman java.lang.Math
System.out.println("floorDiv(-7, 3) : " + Math.floorDiv(-7, 3));
System.out.println("floorMod(-7, 3) : " + Math.floorMod(-7, 3));
}
}