Lompat ke konten Lompat ke sidebar Lompat ke footer

Perbedaan JDK JRE dan JVM Java dan Fungsinya

Pada artikel ini akan dijelaskan mengenai JDK, JRE, dan JVM pada bahasa pemrograman Java beserta dengan komponen-komponen yang terdapat didalam ketiga perangkat tersebut.


Sebelum mempelajari materi tentang Perbedaan JDK JRE dan JVM dan Fungsinya, terlebih dahulu pelajari materi tentang: Membuat JVM Stack Area Java dan Fungsinya, Membuat JVM Shutdown Hook Java dan Fungsinya, dan Java Class File dan Fungsinya.

Java Development Kit

JDK adalah lingkungan perangkat lunak yang digunakan untuk pengembangan Java aplikasi dan applet. JDK berisi JRE, interpreter atau loader (Java), compiler (javac), dan arsip (jar), generator dokumentasi (Javadoc), dan perangkat lain yang dibutuhkan pada proses pengembangan.

Java Runtime Environment

JRE berfungsi untuk menyediakan persyaratan minimum untuk mengeksekusi aplikasi java. JRE terdiri dari JVM, class inti, dan data penunjang.

Java Virtual Machine, terdiri dari:
  • Spesifikasi, dimana JVM bekerja secara spesifik. Tetapi implementasi penyedia bersifat independent dalam pemilihan algoritma. Implementasi JVM disediakan oleh Sun dan perusahaan lainnya.
  • Implementasi, adalah program komputer yang mempertemukan antara kebutuhan dari JVM terhadap spesifikasinya.
  • Runtime instance, Dimanapun lokasi untuk membuat perintah pada command prompt untuk menjalankan java class disitulah instance dari JVM diciptakan.

Perbedaan JDK, JRE, dan JVM

Untuk dapat memahami perbedaan ketiganya perhatikan diagram pada gambar 1.

Gambar 1 Perbedaan JDK, JRE, dan JVM pada Java
Gambar 1 Perbedaan JDK, JRE, dan JVM pada Java

JDK - Java Development Kit menyediakan lingkungan pengembangan dan eksekusi program Java. JDK adalah perangkat atau paket yang didalamnya terdapat :
  • Perangkat Pengembangan (Development Tools), yang menyediakan lingkungan pengembangan untuk program Java.
  • JRE, berfungsi untuk mengeksekusi program Java.

catatan: JDK hanya dipergunakan untuk pengembangan program pada Java.

JRE - Java Runtime Environment adalah paket instalasi yang hanya menyediakan lingkungan untuk untuk menjalankan program Java atau aplikasi. JRE hanya digunakan oleh individu yang ingin menjalankan program Java atau pengguna yang menjalankan sistem Java.

JVM - Java Virtual Machine adalah bagian yang sangat penting bagi JDK dan JRE. Ketika program Java menjalankan program menggunakan JRE atau JDK keduanya dijalankan melalui JVM. JVM bertanggungjawab untuk mengeksekusi baris per baris dari program Java atau lebih dikenal sebagai interpreter.

Baca Juga:

Cara kerja JRE dan JDK

Isi Komponen JRE, terdiri dari beberapa komponen yaitu:
  • Teknologi Deployment, termasuk didalamnya deployment, Java Web Start, dan Java Plug-in.
  • Perangkat Pengguna Interface, termasuk didalamnya Abstract Window Toolkit (AWT), Swing, Java 2D, AccessibilityImage I/O, Print ServiceSounddrag and drop (DnD), dan method input.
  • Pustaka Integrasi, termasuk didalamnya Interface Definition Language (IDL), Java Database Connectivity (JDBC), Java Naming and Directory Interface (JNDI), Remote Method Invocation (RMI), Remote Method Invocation Over Internet Inter-Orb Protocol (RMI-IIOP), dan scripting.
  • Pustaka (libraries) lainnya, seperti termasuk diantaranya international supportinput/output (I/O), Java Native Interface (JNI), MathNetworkingOverride MechanismSecuritySerialization, dan Java for XML Processing (XML JAXP).
  • Basis pustaka lang and util, didalamnya termasuk lang and utilmanagementversioning, zip, instrumentreflectionCollectionsConcurrency UtilitiesJava Archive (JAR), LoggingPrerefences API, Ref Objects, dan Regular Expressions.
  • Java Virtual Machine (JVM), termasuk didalamnya Java HotSpot dan Server Virtual Machines.

Cara Kerja JRE
Untuk memahami prinsip kerja dari JRE, bayangkan sebuah Java source file yang disimpan dengan nama Example.java. Kemudian, file tersebut dikompilasi kedalam set Bytecode yang disimpan sebagai .class file. Tahapan kompilasi tersebut diperlihatkan pada gambar 2.

Gambar 2 Cara Kerja JRE pada Java
Gambar 2 Cara Kerja JRE pada Java

Aktivitas yang terjadi pada saat runtime adalah sebagai berikut:
  • Class LoaderClass loader melakukan loading terhadap semua class yang dibutuhkan pada saat eksekusi program. Class loader memberikan keamanan dengan memisahkan ruang nama sistem file lokal dari yang diimpor melalui jaringan. File-file tersebut di-load dari hard disk, jaringan, dan dari sumber lainnya.
  • Byte Code VerivierJVM mengambil kode program melalui Byte Code Verifier yang memeriksa format dan legalitas kode. Ilegal kode adalah kode yang melanggar hak akses pada objek atau melanggar prinsip penerapan dari pointerByte Code Verfier memastikan semua kode mengikuti aturan dari spesifikasi JVM dan tidak melanggar integritas sistem seperti yang diperlihatkan pada gambar 3.

Gambar 3 Byte Code Verivier pada Java
Gambar 3 Byte Code Verivier pada Java

  • InterpreterSaat proses runtime oleh interpreter terhadap Byte Code, interpreter akan melakukan loading, pemeriksaan, dan menjalankan program. Interpreter memiliki dua fungsi yaitu, untuk mengeksekusi Byte Code, dan melakukan panggilan yang sesuai ke perangkat keras yang mendasarinya. Kedua fungsi interpreter tersebut diperlihatkan pada gambar 4.

Gambar 4 Interpreter pada Java
Gambar 4 Interpreter pada Java

Untuk dapat lebih memahami interaksi antara JDK dan JRE perhatikan gambar 5 berikut ini.

Gambar 5 Interpreter pada Java
Gambar 5 Interpreter pada Java

Cara Kerja JVM

JVM menjadi instance dari JRE pada saat runtime dari program Java. JVM lebih dikenal sebagai runtime interpreter. Secara lebih luas, JVM membantu proses abstraksi implementasi internal dari para programmer yang memanfaatkan library atau sumber pustaka untuk program yang terdapat pada JDK.

Dalam ekosistem pengembangan Java, terdapat tiga komponen kunci yang memainkan peran penting dalam menjalankan aplikasi Java: JDK (Java Development Kit), JRE (Java Runtime Environment), dan JVM (Java Virtual Machine). Berikut dijelaskan perbedaan antara ketiganya serta menyoroti kelebihan yang dimiliki oleh masing-masing komponen tersebut:
  • JVM (Java Virtual Machine):
    • Eksekusi Kode Byte: JVM bertanggung jawab untuk mengeksekusi bytecode yang dihasilkan dari kompilasi program Java. Ini membuat kode Java dapat dijalankan secara platform-agnostik, sesuai dengan prinsip "Write Once, Run Anywhere" (WORA).
    • Isolasi dari Sistem Operasi: JVM memberikan lapisan abstraksi di atas sistem operasi, menyembunyikan perbedaan implementasi dan memastikan bahwa aplikasi Java dapat berjalan dengan konsisten di berbagai platform.
  • JRE (Java Runtime Environment):
    • Menyediakan Kompilator Just-In-Time (JIT): JRE mencakup JVM dan menyediakan kompilator JIT yang mendukung eksekusi kode Java. Kompilator JIT menerjemahkan bytecode menjadi kode mesin setiap kali aplikasi dijalankan, meningkatkan kinerja secara dinamis.
    • Library dan File Pendukung: JRE juga menyertakan berbagai library dan file pendukung yang diperlukan untuk menjalankan aplikasi Java. Ini termasuk pustaka standar Java (Java Standar Edition Library) yang menyediakan kelas-kelas dasar untuk pengembangan aplikasi.
  • JDK (Java Development Kit):
    • Paket Kembangan Lengkap: JDK adalah paket pengembangan lengkap yang mencakup semua yang ada di JRE ditambah dengan alat-alat pengembangan dan kompilator Java (javac). JDK diperlukan untuk mengembangkan aplikasi Java dari awal.
    • Debugging dan Profiling: JDK menyediakan alat-alat pengembangan seperti debugger dan profiler, mempermudah pengembang dalam mengidentifikasi, memperbaiki, dan memelihara kode.

Kelebihan Perbedaan Antara JDK, JRE, dan JVM:
  • JVM:
    • Portabilitas Kode: JVM memastikan portabilitas kode Java dengan mengeksekusi bytecode, yang bersifat platform-agnostik.
    • Isolasi dan Keamanan: JVM menyediakan lapisan isolasi yang membantu dalam memastikan keamanan dan keandalan aplikasi Java.
  • JRE:
    • Pengembangan Dinamis: Kehadiran kompilator JIT dalam JRE membantu meningkatkan kinerja aplikasi Java dengan menerjemahkan bytecode menjadi kode mesin secara dinamis.
    • Menyederhanakan Distribusi Aplikasi: JRE menyediakan lingkungan runtime yang dibutuhkan oleh aplikasi Java, menyederhanakan proses distribusi aplikasi kepada pengguna akhir.
  • JDK:
    • Paket Kembangan Komprehensif: JDK memberikan paket lengkap yang mencakup JRE, alat pengembangan, dan kompilator, menjadikannya pilihan utama untuk pengembang yang ingin membuat atau memelihara aplikasi Java.
    • Alat Pengembangan yang Kuat: Alat-alat pengembangan yang disediakan oleh JDK, seperti debugger dan profiler, membantu pengembang dalam mengelola dan memahami kode.

Kesimpulan

Dalam ekosistem Java, JDK, JRE, dan JVM memegang peran yang unik dan saling melengkapi. JVM memberikan dasar untuk eksekusi kode Java, JRE menyediakan lingkungan runtime dan pustaka-pustaka pendukung, sementara JDK memberikan paket lengkap yang melibatkan alat-alat pengembangan esensial. Pemahaman perbedaan dan kelebihan masing-masing komponen ini penting bagi pengembang Java untuk membuat, mendistribusikan, dan memelihara aplikasi secara efisien.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Ulfa Laela Rahmadon, Vicky Septyawan, Yullya Adhe Putri, Adhitya Andre Saputra, dan Arkan Luthfi Wikantiyasa.

6 komentar untuk "Perbedaan JDK JRE dan JVM Java dan Fungsinya"

  1. Secara sederhana apa yang dimaksud dengan JDK pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Java Development Kit atau JDK adalah lingkungan pengembangan perangkat lunak yang digunakan untuk mengembangkan aplikasi dan applet berbasis Java. Pada JDK juga termasuk JRE atau Java Runtime Environment, interpreter atau loader (Java), kompilator (javac), gerenator dokumentasi (Javadoc) dan alat-alat lain yang diperlukan dalam pengembangan aplikasi Java.

      Hapus
  2. Apa yang dimaksud dengan JRE? apa peran JRE terhadap pengembangan aplikasi berbasis Java?

    BalasHapus
    Balasan
    1. JRE adalah akronim dari Java Runtime Environment.

      Pada dasarnya, JRE adalah semua hal yang dibutuhkan oleh pengembang untuk menjalankan program Java yang telah dikompilasi oleh kompilator. JRE juga menyediaka library, class, dan JVM yang juga diperlukan dalam untuk menjalankan program Java yang telah dikompilasi.

      Namun demikian, JRE tidak menyertakan kompilator (javac) dan beberapa perangkat lainnya. Jadi, hanya menggunakan JRE saja tidaklah cukup untuk membuat suatu program baru pada Java.

      Untuk dapat membuat sebuah program baru pada Java, diperlukan JDK atau Java Development Kit yang didalamnya menyertakan JRE dan alat-alat lain yang juga termasuk kompilator dan debugger didalammnya.

      Jika tujuan akhir dari pengembang adalah untuk menjalankan beberapa program Java di komputer, maka JRE saja sudah cukup tanpa harus melakukan instalasi JDK, namun jika pengembang juga harus melakukan pembuatan program atau aplikasi, maka JDK juga harus terinstal pada perangkat komputer yang digunakan untuk mengembangkan aplikasi tersebut.

      Hapus
  3. Apakah JVM pada bahasa Java dikembangkan menggunakan bahasa C? atau, hanya berada pada level bahasa pemrograman yang sama seperti C saja?

    BalasHapus
    Balasan
    1. Sebagian besar implementasi Sun pada Java-JVM adalah dibuat menggunakan bahasa C. Dimana bahasa C juga menjadi inti dari interpreter dan kompilasi kelas Java, implementasi thread dan manajemen memori, dan lain sebagainya. Sebagian besar library Java ditulis langsung pada Java, dengan beberapa bagian dari kode programmnya juga ditulis dalam bahasa C dan C++ terutama pada AWT, Java 2D, java.net, javax.crypto, dan lain segagainya.

      Hapus

Hubungi admin melalui Wa : +62-896-2414-6106

Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.

Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.

- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -