Media Pengembangan Web & App | by APPKEY

Pembuatan Aplikasi Mobile Programming Mengenal Java Virtual Machine untuk Program Java-mu yang Semakin...

Mengenal Java Virtual Machine untuk Program Java-mu yang Semakin Smooth

-

Java Virtual Machine (JVM) adalah program yang bertujuan untuk mengeksekusi berbagai program. Ia memiliki dua fungsi utama. Pertama, JVM berfungsi memungkinkan program Java untuk dapat dijalankan di berbagai perangkat dan sistem operasi yang sesuai dengan jargon Java sendiri “Write Once, Run Anywhere” yang berarti menulis kode sekali dengan Java Anda dapat menjalankan program tersebut di berbagai perangkat maupun sistem operasi.

Kedua, ketika Java dirilis pada tahun 1995, seluruh program komputer ditulis dengan sistem operasi yang sudah ditentukan dan memori program juga diatur langsung oleh software milik developer untuk itulah JVM hadir menangani masalah tersebut.

Jika Anda ingin menjadi seorang developer Java, maka Anda harus menginstal JVM agar perangkat Anda dapat menjalankan program yang ditulis dalam bahasa pemrograman Java dengan baik.

JVM tidak hanya dapat menjalankan aplikasi yang ditulis dengan bahasa pemrograman Java tetapi juga dari bahasa pemrograman lain dengan ketentuan kode tersebut harus berbentuk “Java bytecode.”

Artikel Terkait  10 Editor Kode Online Terbaik | Fungsi dan Keuntungan

Manajemen Memori pada JVM

jvm

Interaksi yang paling banyak dan paling umum dilakukan ketika Anda menggunakan JVM adalah mengecek penggunakan memori pada heap & stack, kemudian melakukan penyesuaian yang juga paling umum pada JVM yaiti menyetel pengaturan memori JVM.

Pada Java, memori program akan diatur oleh JVM. Berbeda dengan bahasa pemrograman lain, di mana memori diatur oleh programmer sendiri.

JVM mengelola memorinya dengan proses yang disebut sebagai garbage collection, yang secara berkelanjutan mengidentifikasi dan menghilangkan memori yang tidak lagi digunakan pada program Java. Garbage collection akan terjadi di dalam JVM yang sedang berjalan.

JVM mengelola memori melalui proses yang disebut pengumpulan sampah.

Awalnya, Java mendapat banyak kritik karena tidak “close to metal” seperti C ++, dan karena garbage collection tidak secepat itu. Proses garbage collection saat itu menjadi sangat kontroversial.

Namun, sejak itu pula, berbagai algoritma dan pendekatan telah diusulkan dan digunakan untuk garbage collection. Dengan pengembangan dan pengoptimalan yang konsisten, garbage collection telah meningkat pesat. Adanya garbage collection inilah yang membuat aplikasi atau web yang Anda buat menjadi semakin cepat dan baik.

Bagian-Bagian JVM

JVM memiliki tiga aspek utama yaitu specification (spesifikasi), implementation (implementasi), dan instance (instans), dengan penjelasan masing-masing sebagai berikut:

1. JVM Specification

Aspek pertama adalah specification. JVM adalah sebuah software specification atau spesifikasi perangkat lunak. Software specification adalah dokumen desain yang dapat dibaca manusia yang menjelaskan bagaimana sistem dari suatu software harus beroperasi.

Tujuan dari spesifikasi adalah untuk membuat deskripsi dan persyaratan yang jelas bagi teknisi untuk membuat kode. Spesifikasi JVM ini menonjolkan detail implementasinya yang tidak ditentukan dalam spesifikasi, sehingga memungkinkan kreativitas maksimum dalam realisasinya.

2. JVM Implementation

Penerapan spesifikasi JVM menghasilkan software yang sesungguhnya. Ada banyak implementasi JVM baik yang berupa open source, maupun proprietary. HotSpot JVM OpenJDK adalah implementasi referensi dan tetap menjadi salah satu basis kode yang paling benar-benar dicoba dan diuji di dunia. Hotspot juga merupakan JVM yang paling umum digunakan.

Hampir seluruh JVM berlisensi dibuat sebagai cabang dari OpenJDK dan HotSpot JVM termasuk JDK berlisensi oracle. Pengembang yang membuat lisensi dari OpenJDK seringkali ingin menambahkan peningkatan kerja khusus sistem operasi. Biasanya, Anda mengundh dan menginstal JVM sebagai bagian bundel dari Java Runtime Environment (JRE).

3. Java Instance

Setelah spesifikasi JVM diimplementasikan dan dirilis sebagai produk software, Anda dapat mengunduh dan menjalankannya sebagai program. Program yang diunduh tersebut adalah instance dari JVM. Sering kali, saat pengembang berbicara tentang “JVM”,  mengacu pada instans JVM yang berjalan di lingkungan pengembangan atau produksi software.

Secara arsitekturnya, JVM adalah sebuah mesin yang abstrak. Secara spesifikasi, JVM menyediakan lingkungan runtime yang mana dapat dieksekusi menggunakan Java bytecode. JVM sendiri tersedia untuk banyak platform hardware dan sofrware karena JVM bersifat dependen.

JVM menjalankan file kelas Java dengan cara portable. Jadi, yang harus JVM lakukan hanyalah menjalankan program Java dengan benar. Kedengarannya sederhana, bahkan mungkin terlihat sederhana dari luar, tetapi ini merupakan pekerjaan yang sangat besar, terutama mengingat kekuatan dan fleksibilitas bahasa Jawa.

Terlepas dari sistem operasi atau perangkat keras apa yang sebenarnya ada, JVM menciptakan lingkungan yang dapat diprediksi untuk menjalankan program di dalamnya. Tidak seperti mesin virtual yang sebenarnya, JVM tidak membuat sistem operasi virtual. Akan lebih akurat untuk menggambarkan JVM sebagai lingkungan runtime terkelola, atau mesin virtual proses.

Spesifikasi tempat kerja JVM sendiri sudah ditentukan. Namun, penyedia implementasi secara independen atau dapat melakukan sendiri pemilihan algoritma. Implementasinya telah disediakan oleh Oracle ataupun perusahaan lain.

Implementasi ini kemudian dikenal dengan nama Java Runtime Environment (JRE). Java akan melakukan Runtime Instance setiap kali Anda menulis perintah Java pada command prompt untuk menjalankan kelas Java ketika sebuah instance JVM dibuat.

JVM dapat melakukan beberapa tugas seperti memuat kode, memverifikasi kode, mengeksekusi kode, serta menyediakan lingkungan runtime untuk pengkodean Java. JVM juga memberi definisi pada area memori, format file kelas, daftar set, tumpukan samlah atau garbage-collected heap, dan pelaporan kesalahan fatal (fatal error reporting) dan masih banyak lagi.

Fitur-Fitur JVM

Java Virtual Machine memuat dan menjalankan fungsinya yaitu memuat dan menjalankan file kelas dengan bergantung pada loader kelas Java dan execution machine Java. Berikut masing-masing penjelasan tentang fitur JVM.

1. Classloader

Classloader adalah sebuah subsistem dari Java Virtual Machine yang digunakan untuk memuat file kelas. Ketika kita menjalankan program ini, ia akan dimuat pertama kali oleh classloader. Terdapat tiga built-in yang ada pada classloader Java yaitu:

a. Bootstrap Classloader

Bootstrap Classloader adalah kelas versi super dari extention classloader. Bootstrap Classloader memuat rt.jar, sebuah file yang menyimpan seluruh file kelas dari Java Standard Edition (JVE) seperti paket kelas java.lang, paket kelas java.net, paket kelas java.util, paket kelas java.io, paket kelas java.sql dan masih banyak lagi lainnya.

b.Extention Classloader

Extention Classloader ini adalah anak classloader dari Bootstrap dan classloader induk dari classloader sistem. Extention Classloader memuat file jar yang terletak di dalam direktori  $JAVA_HOME/jre/lib/ext directory.

c. System/Application Classloader

System/Application Classloader adalah anak classloader dari Extention Classloader. System/ Application Classloader memuat file kelas dari classpath. Secara default, classpath ini disetel ke direktori yang ada saat itu. Anda dapat mengubah Classpath menggunakan kode “-cp” atau “-classpath”.

Artikel Terkait  Belajar Coding dengan 8 Aplikasi Bahasa PemrogramanTerbaru untuk Sistem Pemrograman Android

2. Class(Method) Area

Class(Method) Area adalah tempat penyimpanan struktur per kelas seperti kumpulan runtime konstan, data bidang, metode, serta kode-kode untuk metode.

3. Heap

Heap adalah area data runtime tempat sudatu objek dialokasikan.

4. Stack

Java Stack memiliki banyak sekalo frame. Stack memegang variabel lokal, hasil sebagian, dan berperan dalam pemanggilan dan pengembalian kode. Setiap utas memiliki tumpukan JVM sendiri, dibuat pada waktu yang sama dengan utas.

Bingkai yang baru akan dibuat setiap kali metode dipanggil. Sementara itu, suatu frame akan dihancurkan ketika pemanggilan metode selesai.

5. Program Counter Register (PC Register)

PC Register berisikan alamat instruksi dari Java Virtual Machine yang sedang dijalankan.

6. Native Method Stack

Native Method Stack berisi seluruh metode native yang digunakan pada aplikasi.

7. Execution Engine

Setelah classloader menyelesaikan tugasnya memuat kelas, JVM mulai menjalankan kode di setiap kelas. Execution Engine yang menangani fungsi ini.  Execution Engine JVM berdiri di antara program yang sedang berjalan – dengan tuntutannya akan file, jaringan dan sumber daya memori – dan sistem operasi, yang memasok sumber daya tersebut.Execution Engine ini berisikan:

  1. Virtual prosesor.
  2. Interpreter untuk membaca bytecode stream yang kemudian mengeksekusi instruksi.
  3. Just-In-Time (JIT) compiler, yang digunakan untuk meningkatkan performa. JIT merupakan kumpulan bagian dari byte code yang memiliki fungsi mirip di waktu yang sama. Adanya JIT dapat mengurangi jumlah waktu yang dibutuhkan untuk kompilasi. Di sini, istilah kompilator mengacu pada penerjemah dari set instruksi JVN ke set instruksi dari CPU tertentu.

8. Java Native Interface

Java Native Interface (JNI) adalah sebuah framework yang menyediaka sebuah interface untuk mengkomunikasikan dengan aplikasi lain yang ditulis dalam bahasa pemrograman lain seperti C, C++, Assembly, dan berbagai bahasa lain.

Java menggunakan framework JNI untuk mengirim output ke konsol atau berinteraksi dengan perpustakaan OS.

Artikel Terkait  Apa itu "Pengembangan Agile"? Penjelasan yang Mudah Dipahami Tentang Fitur, Kelebihan, dan Kekurangan yang Dimilikinya

Bagaimana JVM menjalankan fungsinya?

System Resource dapat dibagi menjadi dua kategori besar yaitu memori dan yang lainnya. Seperti yang sudah dijelaskan sebelumnya, JVM berfungsi membuang memori yang tidak digunakan dan garbage collection adalah mekanisme yang bertugas menjalankan hal tersebut.

JVM juga bertanggung jawab untuk mengalokasikan dan memelihara struktur referensial yang diterima oleh pengembang. Sebagai contoh, Execution Engine JVM bertanggung jawab untuk mengambil sesuatu seperti kata kunci baru di Java, dan mengubahnya menjadi permintaan khusus OS untuk alokasi memori.

Di luar memori, Execution Engine berfungsi mengelola sumber daya untuk akses sistem file dan jaringan I / O. Karena JVM dapat dioperasikan di seluruh sistem operasi, hal ini pun bukanlah tugas yang berarti. Selain kebutuhan sumber daya setiap aplikasi, Execution Engine harus responsif terhadap setiap lingkungan OS. Begitulah cara JVM dapat menangani permintaan.

Demikianlah penjelasan tentang Java Virtual Machine. Pada dasarnya JVM dapat dijalankan di berbagai bahasa pemrograman dengan syarat dan ketentuan yang sudah ditulis sebelumnya.

Namun, apabila Anda seorang Java Developer, JVM adalah software yang harus Anda pahami dan Anda instal di perangkat Anda agar dapat mengerjakan proyek Java Anda dengan lebih baik.


Jasa Pembuatan Aplikasi, Website dan Internet Marketing | PT APPKEY
PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.

Jasa Pembuatan Aplikasi

Jasa Pembuatan Website

Jasa Pembuatan Paket Aplikasi

Jasa Pembuatan Internet Marketing

Subscribe Sekarang

Dapatkan beragam informasi menarik tentang Website, Aplikasi, Desain, Video dan API langsung melalui email Anda. Subscribe sekarang dan terus belajar bersama kami!

Kategori

Blog Post Ranking 10

Rekomendasi 10 Aplikasi Pembuat Animasi 3D Terbaik. Ayo Cek!

Apakah Anda bercita-cita untuk menjadi seorang animator profesional? Belajar membuat animasi kini sudah menjadi hal mudah yang bisa dilakukan...

Cara Mudah Menambahkan Lokasi Alamat Bisnis Anda di Google Maps

Saat ingin hunting tempat makan atau tempat nongkrong terbaru, tak jarang beberapa dari Anda biasanya mendapatkan informasi terkini melalui...

Proses Komunikasi: Encoding dan Decoding

Jika kita dapat melihat percakapan antar komputer, mungkin akan terlihat seperti ini: "010110111011101011010010110". Bahasa ini disebut dengan biner, encoding...

Metadata Adalah? Fungsi dan Jenis-Jenis Metadata

Pernah mendengar istilah metadata? Mungkin, kita sering mendengar istilah metadata. Tetapi, banyak dari kita yang belum tahu arti dari metadata...

Pengertian Internet & Dampak Positif dan Negatif Internet

Internet mungkin bukan sesuatu yang asing lagi, sebab semua kalangan pasti tahu apa itu internet. Hanya saja jika ditanya...

Membuat Aplikasi di Playstore dengan Mudah

Membuat aplikasi di Playstore bisa Anda lakukan dengan mudah. Terdapat beberapa situs yang bisa membantu Anda untuk membuat aplikasi...

Domain Google? Apa Bedanya Dengan Domain Biasa?

Saat memutuskan untuk membuat website menjadi salah satu bentuk media digital marketing Anda dalam bersaing di zaman digital ini,...

7 Aplikasi Membuat Aplikasi Android Secara Offline

Aplikasi membuat aplikasi android saat ini banyak dicari penekun IT untuk membuat aplikasi Android secara offline tanpa harus menggunakan...

Looping Adalah Algoritma Perulangan: Berikut Contohnya

Jika anda sudah mendalami atau sedang mendalami dunia pemrograman terdapat sebuah konsep yang dapat memudahkan anda dalam menyusun struktur...

10 Aplikasi Coding Android Terbaik

Ketersediaan aplikasi coding Android memang banyak dicari oleh orang-orang yang sedang atau akan memulai untuk membuat aplikasi android. Jika...

Bisnis

Online Service

Peluang Bisnis

Model Bisnis

Entrepreneurship

Uang

Ketrampilan

Outsourcing

Monetize

Pemasaran

SEO

Internet Marketing

Dasar Pemasaran

Strategi Pemasaran

Situs Web Analitik

Iklan

Teknologi

Teknologi Terbaru

AI

Komputer

Jaringan

Paling Sering dibaca
Mungkin Anda Menyukainya