Sepanjang Course Java ini kita menjumpai puluhan istilah — dari bytecode dan class loader di sisi platform, record dan sealed class di sisi bahasa, sampai JAR dan JFR di sisi ekosistem. Sebagian besar dibahas tuntas di chapter masing-masing; tetapi ketika sedang membaca dokumentasi atau diskusi tim, kita butuh definisi cepat tanpa membuka ulang seluruh materi. Glossary ini menghimpun 25 istilah terpenting dalam definisi satu kalimat, dikelompokkan dalam tiga tema: platform tempat kode berjalan, bahasa yang kita tulis, dan ekosistem di sekitarnya.
Cara Memakai Glossary Ini #
Glossary paling berguna dipakai mundur, bukan dihafal maju. Ketika istilah asing muncul di tengah pembacaan — misalnya dokumentasi menyebut class loader — lompatlah ke tabel yang sesuai, baca satu kalimatnya, lalu kembali ke bacaan semula. Definisi sengaja dibatasi satu kalimat agar tabel dapat dipindai dalam hitungan detik; penjelasan melebar tersedia di chapter Course yang membahas topiknya. Jika istilah yang dicari tidak ada, dua rujukan resmi di akhir halaman adalah tempat berburu berikutnya.
Istilah Platform dan Eksekusi #
Kelompok pertama menjawab pertanyaan “di atas apa kode Java berjalan” — dari compiler sampai memori:
| Istilah | Arti ringkas |
|---|---|
| JDK | Kit pengembangan berisi compiler javac, JVM, pustaka, dan alat diagnostik |
| JRE | Lingkungan menjalankan aplikasi (JVM dan pustaka inti), kini bagian dari JDK |
| JVM | Mesin virtual yang mengeksekusi bytecode dan mengelola memori serta thread |
| Bytecode | Instruksi perantara hasil kompilasi javac, disimpan dalam berkas .class |
| JIT | Compiler yang menerjemahkan bytecode panas menjadi kode mesin saat berjalan |
| Classpath | Daftar lokasi tempat JVM mencari kelas dan berkas sumber daya |
| Class loader | Komponen JVM yang memuat bytecode ke memori sebagai class siap pakai |
| Heap | Memori bersama untuk objek, dikelola oleh garbage collector |
| Stack | Memori per thread untuk frame pemanggilan method dan variabel lokal |
| Garbage collector | Mekanisme JVM yang memungut objek yang tidak lagi direferensikan |
| Virtual thread | Thread ringan yang dikelola JVM dalam jumlah sangat besar (Java 21+) |
Istilah Bahasa dan OOP #
Kelompok kedua menjawab “apa yang kita tulis” — blok bangunan bahasa Java modern:
| Istilah | Arti ringkas |
|---|---|
| Class | Cetak biru yang memadukan data dan perilaku dalam satu tipe |
| Object | Instance dari class yang dibuat saat program berjalan |
| Method | Blok perilaku bernama di dalam class |
| Constructor | Method khusus yang menginisialisasi object baru |
| Interface | Kontrak method yang diimplementasikan oleh class |
| Record | Class pembawa data ringkas dengan accessor dan equals otomatis (Java 16+) |
| Sealed class | Class yang membatasi class anaknya secara eksplisit (Java 17+) |
| Exception | Objek sinyal galat yang dapat ditangkap blok try-catch |
| Generic | Parameter tipe yang menjaga keamanan tipe saat kompilasi |
| Pattern matching | Pemeriksaan tipe dan bentuk yang mendestrukturkan nilai dalam switch |
Istilah Ekosistem dan Alat #
Kelompok ketiga menjawab “apa yang mengelilingi kode” — format distribusi hingga alat baku industri:
| Istilah | Arti ringkas |
|---|---|
| JAR | Arsip berisi bytecode dan sumber daya untuk didistribusikan |
| Module | Unit kode bernama dengan dependensi eksplisit (JPMS) |
| Maven dan Gradle | Alat build sekaligus manajer dependensi paling umum |
| JUnit | Kerangka pengujian unit standar ekosistem |
Glossary dalam Kode #
Istilah bekerja paling jelas ketika dilihat berdampingan dalam satu program. Program kecil berikut memperagakan enam istilah glossary sekaligus — interface, record, object, method, array, dan exception:
import java.util.Arrays;
interface Bentuk {
int luas();
}
record Persegi(int sisi) implements Bentuk {
@Override
public int luas() {
return sisi * sisi;
}
}
public class KamusBerjalan {
public static void main(String[] args) {
Bentuk bidang = new Persegi(6); // object + polymorphism
System.out.println("class : " + bidang.getClass().getSimpleName());
System.out.println("luas : " + bidang.luas());
int[] angka = {3, 1, 2}; // array
Arrays.sort(angka); // method static dari pustaka
System.out.println("urut : " + Arrays.toString(angka));
try {
Integer.parseInt("bukan angka"); // melempar exception
} catch (NumberFormatException galat) {
System.out.println("galat : " + galat.getClass().getSimpleName());
}
}
}Output yang Dihasilkan:
class : Persegi
luas : 36
urut : [1, 2, 3]
galat : NumberFormatExceptionMari kita telaah peran istilahnya:
- Baris 3-12 (
interface Bentukdanrecord Persegi): interface menyediakan kontrak methodluas(); record mengimplementasikannya sekaligus menjadi class data ringkas. - Baris 17-19 (
new Persegi(6)): membuat object dari record, menampungnya dalam variabel bertipe interface, lalu memanggil methodluas(). MethodgetClass().getSimpleName()mengembalikan nama class saat runtime tanpa alamat memori sehingga keluarannya stabil. - Baris 21-23 (
Arrays.sort): array diurutkan oleh method static dari pustaka inti — sebagian besar method sehari-hari tinggal pakai dari pustaka. - Baris 25-28 (
try-catch): exception dilempar olehInteger.parseIntdan ditangkap; nama kelasnya diambil lewatgetClass()— pola yang sama dengan membaca stack trace pada chapter sebelumnya.
Dengan glossary sebagai jaring pengaman istilah, satu halaman tersisa di seluruh Course: peta besar yang merangkai seluruh perjalanan — dari fondasi bahasa sampai delapan proyek — beserta dua kecepatan menempuhnya dan arah lanjutan setelahnya.
Referensi #
Berkas Sumber
Berkas pendukung halaman ini dapat diunduh dan dijalankan langsung sesuai penjelasan di atas.
KamusBerjalan.java
Unduh berkasimport java.util.Arrays;
interface Bentuk {
int luas();
}
record Persegi(int sisi) implements Bentuk {
@Override
public int luas() {
return sisi * sisi;
}
}
public class KamusBerjalan {
public static void main(String[] args) {
Bentuk bidang = new Persegi(6); // object + polymorphism
System.out.println("class : " + bidang.getClass().getSimpleName());
System.out.println("luas : " + bidang.luas());
int[] angka = {3, 1, 2}; // array
Arrays.sort(angka); // method static dari pustaka
System.out.println("urut : " + Arrays.toString(angka));
try {
Integer.parseInt("bukan angka"); // melempar exception
} catch (NumberFormatException galat) {
System.out.println("galat : " + galat.getClass().getSimpleName());
}
}
}