Penjelasan Kompilasi Java: Cara Kerja javac, Langkah-Langkah Kompilasi, dan Kesalahan Umum

Apa Itu Kompilasi Java? | Memahami “Kompilasi” untuk Pemula

Dalam Java, “kompilasi” mengacu pada proses mengubah kode sumber yang ditulis manusia (.java) menjadi format yang dapat dibaca oleh Java Virtual Machine (JVM).
Output dari proses ini adalah file .class, yang disebut bytecode.

Berbeda dengan bahasa seperti C yang dikompilasi langsung menjadi kode mesin native, Java pertama mengubah kode sumber menjadi bytecode dan kemudian menjalankannya di JVM.
Berkat mekanisme ini, file .class yang sama dapat dijalankan pada berbagai sistem operasi, memungkinkan program Java yang sama berjalan di Windows, macOS, dan Linux.

Poin penting lain yang perlu dipahami adalah kompilasi dan eksekusi adalah operasi terpisah.

  • “javac” → bertanggung jawab untuk kompilasi
  • “java” → bertanggung jawab untuk eksekusi

Sekitar 90% pemula mengalami kesulitan karena perbedaan ini tidak jelas.
Memahami dengan kuat bahwa dua perintah ini memiliki peran yang berbeda adalah langkah pertama yang paling efisien.

Persyaratan untuk Kompilasi Java

Untuk mengompilasi kode Java, Anda harus memiliki JDK (Java Development Kit) terpasang.
JRE saja tidak cukup, karena kompiler javac adalah alat pengembang yang hanya disertakan dalam JDK.

Mulailah dengan memeriksa hal berikut:

javac -version

Jika perintah ini mengembalikan nomor versi, semuanya baik-baik saja.
Jika Anda melihat pesan seperti “command not found,” salah satu hal berikut kemungkinan benar:

  • JDK tidak terpasang
  • JDK terpasang tetapi PATH belum diset
  • Hanya JRE yang terpasang (tidak ada alat pengembangan)

Secara khusus, konfigurasi PATH adalah hambatan umum bagi pemula.
Jika sistem tidak dapat menemukan direktori yang berisi javac (atau direktori bin), kompilasi tidak akan berhasil.

Kesimpulan:
Anda hanya dapat mulai mengompilasi Java setelah “instalasi JDK” dan “verifikasi PATH” keduanya selesai dengan benar.

Mengompilasi File Java dalam Praktik

Di sini, kita akan membuat program contoh sederhana dan mengompilasinya menggunakan javac.
Pertama, simpan konten berikut di editor teks.

Sample.java

public class Sample {
    public static void main(String[] args) {
        System.out.println("Hello Java!");
    }
}

Nama file harus Sample.java, dan sangat penting bahwa nama kelas publik cocok dengan nama file.
Java tidak akan mengompilasi jika aturan ini dilanggar, dan ini adalah kesalahan klasik pemula.

Selanjutnya, jalankan perintah berikut di terminal atau command prompt Anda:

javac Sample.java

Jika kompilasi berhasil, file Sample.class akan muncul di direktori yang sama.
Ini menunjukkan bahwa kompilasi telah selesai dengan sukses.

Pada titik ini, Anda sekarang memiliki:

  • Sample.java (kode sumber)
  • Sample.class (bytecode)

Dengan pasangan ini, Anda siap menjalankan program Java.

Menjalankan Program Setelah Kompilasi

Setelah kompilasi, langkah berikutnya adalah mengeksekusi file .class.
Perintah yang digunakan di sini adalah java, bukan javac.

java Sample

Poin pentingnya adalah tidak menyertakan ekstensi .class.
Jika Anda menulis java Sample.class, akan terjadi error.
Java dirancang untuk menjalankan program dengan menyebutkan nama kelas.

Secara ringkas:

RoleCommandTarget
Compilejavac Sample.java.java file
Runjava SampleClass name (no extension)

Setelah Anda benar-benar memahami peran berbeda javac dan java, Anda telah berhasil melewati tahap pemula.

Jika “Hello Java!” muncul di layar, program Anda berhasil dijalankan.
Pada titik ini, Anda telah memahami alur kerja Java minimum yang diperlukan.

Kesalahan Umum dan Cara Memperbaikinya

Mengalami error selama kompilasi Java sepenuhnya normal bagi pemula.
Di sini, kami fokus pada masalah paling umum yang dihadapi banyak pengguna.

1) javac: command not found

Dalam hampir 100% kasus, penyebabnya adalah salah satu hal berikut:

  • JDK tidak terpasang
  • PATH tidak dikonfigurasi dengan benar

Solusi:
Jalankan javac -version
→ Jika tidak berhasil, instal ulang JDK dan tinjau pengaturan PATH Anda.

2) Kompilasi berhasil tetapi tidak ada file .class yang dihasilkan

Kesalahan paling umum adalah:

Nama file tidak cocok dengan nama kelas publik

Contoh:

public class Test {
}

→ Ini akan menghasilkan error kompilasi.

3) Peringatan terkait enkoding

warning: [options] bootstrap class path not set in conjunction with -source 1.7

Peringatan seperti ini biasanya bukan error fatal.
Namun, mereka dapat menunjukkan opsi sumber yang usang atau ketidaksesuaian enkoding.
Untuk menghindari masalah, selalu simpan file Anda dalam UTF-8.

Mengompilasi dengan IDE

Dalam pengembangan Java dunia nyata, pengembang jarang menjalankan javac secara manual dari baris perintah.
Ini karena IDE (Integrated Development Environments) menangani kompilasi secara otomatis.

IDE berikut ini terutama populer dan praktis:

IDEFeatures
IntelliJ IDEAThe de facto standard for modern Java development, suitable for professional use.
EclipseA long-established IDE widely used in enterprise projects.
VS CodeLightweight; Java Extension Pack provides a complete environment.

IDE secara otomatis mengompilasi kode Anda setiap kali Anda menyimpan file dan langsung menyoroti error.
Ini menghilangkan banyak jebakan pemula seperti typo perintah dan konfigurasi PATH yang salah.

Namun, mengompilasi secara manual dengan javac setidaknya sekali sangat berharga untuk memahami cara kerja Java secara internal.
Setelah Anda memahami alur “kompilasi → jalankan”, kecepatan belajar Anda dengan IDE akan meningkat secara signifikan.

Opsi Dasar javac

Perintah javac mendukung banyak opsi yang mengontrol cara kompilasi dilakukan.
Pada tingkat pemula, Anda hanya perlu memahami beberapa yang paling umum digunakan.

Berikut tiga opsi representatif:

OptionDescriptionExample
-dSpecifies the output directory for class filesjavac -d out Sample.java
-classpathSpecifies external libraries or additional class pathsjavac -classpath lib/* Sample.java
--enable-previewEnables preview language featuresjavac --enable-preview Sample.java

Opsi -d sangat penting saat menggunakan paket.
Misalnya, jika Anda menggunakan package com.example;, mengabaikan javac -d akan menghasilkan struktur direktori yang tidak tepat.

Saat Anda masuk ke pengembangan dunia nyata, opsi classpath dan -d menjadi semakin penting.
Bahkan mengenali nama-nama mereka lebih awal akan membuat pembelajaran di masa depan lebih lancar.

Ringkasan

Untuk menjalankan program Java, Anda harus memahami proses tiga langkah: menulis kode sumber → kompilasi → jalankan.
Setelah peran javac (kompilasi) dan java (eksekusi) jelas, tujuan kompilasi menjadi jelas.

Dua jebakan pemula yang paling umum adalah:

  • JDK tidak terinstal atau PATH tidak dikonfigurasi
  • Nama file tidak cocok dengan nama kelas publik

Dengan mengatasi ini lebih awal, Anda dapat menghindari penyimpangan yang tidak perlu dalam proses belajar.
Anda dapat beralih ke pengembangan berbasis IDE setelah merasa nyaman, tetapi memahami mekanisme dasar akan secara signifikan meningkatkan kecepatan belajar Anda.

Gunakan artikel ini sebagai titik awal dan fokus pertama pada mengonversi satu file .java menjadi file .class dengan sukses.
Momen itu menandai tonggak pertama Anda yang nyata dalam belajar Java.

FAQ: Pertanyaan Umum tentang Kompilasi Java

T1: Apa perbedaan antara javac dan java?
J: javac adalah perintah kompilasi yang mengubah file .java menjadi file .class.
java adalah perintah eksekusi yang menjalankan file .class pada JVM.

T2: Mengapa Sample.class tidak dihasilkan?
J: Alasan paling umum adalah ketidaksesuaian antara nama file dan nama public class.
Jika kelasnya public class Sample, file harus bernama Sample.java.

T3: Apakah saya masih perlu belajar javac jika saya menggunakan IDE?
J: IDE mengompilasi kode secara otomatis, tetapi tanpa memahami prosesnya, sulit mengetahui apa yang terjadi di balik layar. Mengalami alur dasar sekali membuat penggunaan IDE jauh lebih mudah.

T4: JDK mana yang harus saya instal?
J: Untuk pemula, versi LTS dari Eclipse Adoptium (Temurin) mudah digunakan.
Jika Anda tidak memiliki kebutuhan khusus, Java 17 atau 21 adalah pilihan yang aman.

T5: Saya mendapatkan javac: command not found
J: Ini berarti JDK tidak terinstal atau PATH tidak dikonfigurasi.
Pertama, periksa dengan javac -version.