Tutorial Belajar Java Part 2: Pengertian JVM (Java Virtual Machine)

Bahasa Java memiliki cara tersendiri untuk bisa dijalankan oleh komputer. Tidak seperti alur proses bahasa pemrograman pada umumnya, agar kita bisa menjalankan kode program yang ditulis dalam bahasa Java, di dalam komputer harus terinstall JVM (Java Virtual Machine).

Apa itu JVM dan apa fungsinya? Kita akan bahas dengan lebih detail dalam tutorial kali ini.


Pengertian Java Virtual Machine

Java Virtual Machine adalah aplikasi khusus yang harus diinstall agar sebuah komputer bisa menjalankan program yang ditulis dalam bahasa Java.

Pengertian di atas adalah "versi sederhana", karena Java Virtual Machine (kita singkat saja sebagai JVM), secara teori tidak hanya bisa menjalankan aplikasi yang ditulis dalam bahasa Java, tapi juga dari bahasa pemrograman lain dengan syarat kode tersebut sudah berbentuk "Java bytecode".

Agar bisa memahami pengertian ini, kita harus bahas alur proses pembuatan sebuah aplikasi. Umumnya sebuah bahasa pemrograman desktop memiliki alur sebagai berikut (kita pakai contoh bahasa C):

  1. Tulis kode program menggunakan teks editor, lalu save misalnya sebagai hello_world.c.
  2. Compile file hello_world.c menjadi object file bernama hello_world.o.
  3. Lakukan proses linker, dimana file hello_world.o akan diproses dan menghasilkan file executable bernama hello_world.exe (jika ditujukan untuk sistem operasi Windows).
  4. File hello_world.exe siap dijalankan.

Penjelasan yang lebih lengkap dari alur ini bisa dibaca ke: Cara Mencompile dan Membuat File exe Bahasa Pemrograman C.

Proses compile bahasa C

Proses compile bahasa C

Alur diatas memiliki sedikit masalah dalam hal portabilitas. Maksudnya, aplikasi hello_world.exe yang dihasilkan hanya bisa berjalan di sistem operasi Windows saja. Jika kita ingin menjalankan aplikasi yang sama di komputer Linux atau Mac, maka kode program harus di compile ulang untuk setiap sistem operasi.

Tim pengembang bahasa Java ingin mengatasi masalah ini agar kode bahasa Java cukup di compile 1 kali saja dan bisa jalan di semua sistem operasi. Berikut alur proses membuat dan menjalankan program yang ditulis dalam bahasa Java:

  1. Tulis kode program menggunakan teks editor, lalu save misalnya sebagai hello_world.java
  2. Compile file hello_world.java menjadi byte code bernama hello_world.class
  3. File hello_world.class bisa dijalankan di semua komputer selama di komputer tersebut terinstall Java Virtual Machine.

Byte code di langkah ke-2 mirip dengan object code di bahasa pemrograman lain, tapi secara khusus byte code dipakai untuk merujuk ke object code milik bahasa Java.

Proses compile bahasa Java

Proses compile bahasa Java

Dengan teknik seperti ini, maka secara teori jika keluar sistem operasi baru, kode program Java bisa langsung jalan, dengan syarat di sistem tersebut sudah terinstall JVM.

Pada awalnya alur kerja JVM seperti ini sering di kritik karena berjalan lebih lambat dibandingan dengan bahasa pemrograman yang langsung di compile menjadi file exe seperti di bahasa C atau C++, namun dengan berbagai teknik optimasi, kode program bahasa Java juga bisa di eksekusi dengan cukup cepat.

Terlihat bahwa bahasa Java memilih untuk "mengorbankan" sedikit performa untuk mencapai portabilitas. Ini juga sesuai dengan moto bahasa Java yang di populerkan oleh Sun: "Write once, run anywhere".

Namun pada prakteknya, tetap saja ada perbedaan fitur antara satu sistem dengan sistem lain, dimana kode program Java terpaksa harus sedikit di revisi jika ingin beralih ke sistem yang berbeda. Ini sering jadi candaan developer Java dengan moto: "Write Once, Debug Everywhere."


Dalam tutorial kali ini kita telah membahas alur kerja dari proses compile kode program bahasa Java. Kesimpulannya, kita butuh menginstall sebuah Java Virtual Machine agar bisa menjalankan kode program yang ditulis dalam bahasa Java.

Berikutnya kita masih harus membahas dua istilah lain yang sangat penting sebelum bisa membuat kode program menggunakan bahasa Java, yakni pengertian dari JRE dan JDK.

3 Comments

  1. R3n
    04 Jul 20
    • Andre
      05 Jul 20
    • xharf
      17 Mar 21

Add Comment

Leave a Reply to xharf Cancel reply