Lompat ke konten Lompat ke sidebar Lompat ke footer

Java Class File dan Fungsinya

File atau data dari Java class mengandung Java bytecode dan .class extension yang bisa dijalankan oleh JVM. Sebuah file Java diciptakan oleh kompilator Java dari .java files sebagai hasil dari proses kompilasi. Sebuah bahasa pemrograman Java source file (.java file) mengandung satu atau lebih class Java. Jadi jika  file .java mengandung lebih dari satu buah class maka setiap class akan dikompilasi menjadi class file yang berbeda.


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

Contoh: Lakukan save code Java dibawah ini dengan nama file Test.java pada sistem komputer.

/* hasil dari kompilasi bahasa program

ini akan menghasilkan beberapa class file */

 

/* deklarasi class */

class Sample { }

 

/* deklarasi class */

class Student { }

 

/* deklarasi class */

class Test{

 

public static void main(String[] args)

{

System.out.println("struktur Class File");

}

 

}

Setelah dilakukan proses kompilasi oleh kompilator, maka akan dihasilkan tiga class file.

Tampilan dari struktur class file

ClassFile
{
     magic_number;
     minor_version;
     major_version;
     constant_pool_count;
     constant_pool[];
     access_flags;
     this_class;
     super_class;
     interfaces_count;
     interfaces[];
     fields_count;
     fields[];
     methods_count;
     methods[];
     attributes_count;
     attributes[];
}

Berikut penjelasan dari beberapa elemen class file:

satu, magic_number: 4 bytes pertama dari class file disebut dengan magic_numbermagic_number adalah nilai predefinisi dimana JVM menggunakannya untuk mengidentifikasi apakah .class file yang sudah di-generated oleh kompilator, baik secara benar ataupun tidak. Nilai dari magic_number akan dinyatakan dalam hexadesimal seperti berikut:

0xCAFEBABE

Sekarang lihat apa yang terjadi ketika JVM tidak menemukan magic_number. Misalkan memiliki .java file dengan nama Sample.java, setelah itu lakukan perintah step by step berikut ini pada sistem komputer.

Contoh:

/* deklarasi class */

class Sample

{

 

public static void main(String[] args)

{

System.out.println("Magic Number");       

}

 

}


  • step 1: Lakukan kompilasi program menggunakan perintah javac Sample.java.
  • step 2: Buka file Sample.class, dan akan terlihat seperti gambar 1.

Gambar 1 hasil kompilasi Sample.java
Gambar 1 hasil kompilasi Sample.java

  • step 3: Hapus salah satu simbol dari file Sample.class dan simpan kembali file tersebut.
  • step 4: Jalankan program menggunakan java Sample command dan selanjutnya magic_number akan menampilkan run time exception seperti terlihat pada gambar 2.

Gambar 2 runtime exception Sample.java
Gambar 2 runtime exception Sample.java

Catatan: hasil ini akan bervariasi bergantung pada seberapa banyak data yang dihapus pada .class file.

Baca Juga:

dua, minor_version & major_version: kedunya berfungsi merepresentasikan versi dari .class file. JVM akan menggunakan kedua versi tersebut untuk mengidentifikasi versi mana dari kompilator yang melakukan generate dari .class file saat ini. Versi dari class file ditandai sebagai M.m, dimana M besar mewakili major_version dan m mewakili minor_version.

Catatan: Lower version compiler dapat mengeksekusi generate .class file menggunakan major_version JVM, tetapi tidak sebaliknya. Jika hal tersebut dilakukan, maka akan didapatkan run time exception pada proses.

Contoh demonstrasi program diperlihatkan dengan tahapan sebagai berikut (khusus os windows):
  • step 1: Buka command prompt Windows dan coba periksa Kompilator Java dan versi JVM menggunakan perintah seperti diperlihatkan pada gambar 3 dan 4.

Gambar 3 periksa kompilator Java
Gambar 3 periksa kompilator Java

Gambar 4 periksa versi Java
Gambar 4 periksa versi Java


  • step 3: Buka command prompt kedua pada Windows dan atur rute dari folder bin instalasi JDK seperti diperlihatkan pada step 2 sebelumnya. Dan periksa versi dari kompilator Java dan JVM yang telah diinstal tersebut seperti diperlihatkan pada gambar 5.

Gambar 5 periksa versi Java terbaru
Gambar 5 periksa versi Java terbaru

  • step 4: Pada command prompt yang pertama coba lakukan kompilasi terhadap .java file yang tersedia sebelumnya, seperti file Sample.java. Hasil kompilasi diperlihatkan seperti gambar 6.

Gambar 6 kompilasi file Java
Gambar 6 kompilasi file Java

  • step 5: Pada command prompt yang kedua pada Windows coba jalankan hasil kompilasi dari file Sample.java yang dilakukan sebelumnya, hasilnya muncul runtime exception seperti diperlihatkan pada gambar 7.

Gambar 7 runtime exception Java pada command prompt
Gambar 7 runtime exception Java pada command prompt

tiga, constant_pool_count: merepresentasikan angka dari konstanta pada konstanta pool. Ketika Java file dikompilasi, semua referensi variabel dan method ditampilkan pada konstanta class pool sebagai simbol referensi.
empat, constant_pool[]: merepresentasikan informasi mengenai konstanta yang ditampilkan dalam pool file.
lima, access_flags: menyediakan informasi mengenai modifier yang dideklarasikan untuk class file.
enam, this_class: merepresentasikan nama kualifikasi penuh dari class file.
tujuh, super_class: merepresentasikan nama kualifikasi penuh dari super class terdekat saat ini. Seperti pada file Sample.java, ketika melakukan kompilasi maka this_class bisa disebut sebagai Sample class dan super_class sebagai Object class.
delapan, interface_count: mengembalikan nilai dari implementasi interface oleh class file saat ini.
sembilan, interface[]: mengembalikan informasi implementasi interface oleh class file saat ini.
sepuluh, fields_count: merepresentasikan angka dari tampilan fields (variabel static) pada class file saat ini.
sebelas, fields[]: merepresentasikan informasi field (variabel static) dari class file saat ini.
dua_belas, method_count: merepresentasikan angka dari method yang ditampilkan dalam class file saat ini.
tiga_belas, method[]: mengembalikan informasi mengenai semua method yang ditampilkan dalam class file saat ini.
empat_belas, attributes_count: mengembalikan angka dari atribut (variabel instance) yang ditampilkan dalam class file saat ini.
lima_belas, attributes[]: menyediakan informasi mengenai semua atribut yang ditampilkan dalam class file saat ini.

Java Class File adalah format file khusus yang digunakan oleh Java untuk menyimpan bytecode yang dihasilkan dari proses kompilasi. Berikut dijelaskan kelebihan dari penggunaan Java Class File, yang melibatkan fondasi portabilitas dan lapisan keamanan yang telah menjadikan Java sebagai bahasa pemrograman yang sangat populer:
  • Portabilitas Antar Platform:
    • Bytecode Universal: Java Class File berisi bytecode, yaitu representasi setengah-terkompilasi dari program Java. Bytecode ini bersifat universal dan dapat dieksekusi di berbagai platform yang memiliki JVM (Java Virtual Machine).
    • Write Once, Run Anywhere (WORA): Konsep WORA adalah prinsip dasar Java, di mana pengembang dapat menulis kode Java satu kali dan menjalankannya di berbagai sistem operasi tanpa perlu melakukan modifikasi ulang.
  • Keamanan dan Sandboxing:
    • Isolasi Sumber Kode: Java Class File memungkinkan isolasi sumber kode dari sistem operasi tempat program dijalankan. Ini menciptakan lapisan keamanan yang efektif karena bytecode tidak dapat memanipulasi atau merusak sistem operasi host.
    • Sandboxing Aplikasi: Dengan menggunakan Java Class File, Java memungkinkan implementasi sandboxing, di mana aplikasi dapat dijalankan dalam lingkungan terbatas dengan keterbatasan akses ke sumber daya sistem.
  • Kemudahan Distribusi dan Instalasi:
    • Distribusi File Tunggal: Program Java dapat didistribusikan sebagai satu file Java Class File tunggal atau sebagai arsip JAR (Java Archive) yang mengemas beberapa file kelas dan sumber daya lainnya.
    • Instalasi yang Sederhana: Pengguna dapat dengan mudah menginstal dan menjalankan aplikasi Java dengan hanya mentransfer atau mendownload file Java Class, mengurangi kompleksitas proses instalasi.
  • Manajemen Memori dan Kinerja:
    • Optimasi Kinerja: Java Class File memberikan keuntungan dalam hal manajemen memori dan kinerja. Bytecode dieksekusi oleh JVM dengan menggunakan teknik seperti Just-In-Time (JIT) compilation untuk meningkatkan kinerja eksekusi program.
    • Pengelolaan Memori yang Efisien: Java Virtual Machine secara dinamis mengelola memori, termasuk alokasi dan dealokasi, dengan cara yang efisien, membantu mencegah kebocoran memori dan meningkatkan penggunaan sumber daya.
  • Rekayasa Ulang Kode:
    • Keterbacaan dan Pemeliharaan Kode: Java Class File dapat dijadikan sebagai bentuk distribusi kode yang dapat dibaca oleh pengembang lain. Hal ini memudahkan proses rekayasa ulang kode dan pemeliharaan aplikasi dalam jangka waktu panjang.
    • Modularitas dan Ketergantungan: Modul Java dapat diatur ke dalam paket, dan ketergantungan antar paket dapat diatur dengan rapi dalam file Java Class. Ini mendukung pembangunan aplikasi yang modular dan terstruktur.
  • Lingkungan Pengembangan yang Kaya:
    • Dukungan Lingkungan Pengembangan: File Java Class bekerja dengan baik dalam berbagai lingkungan pengembangan, termasuk IDE (Integrated Development Environment) populer seperti Eclipse, IntelliJ IDEA, dan NetBeans.
    • Integrasi Alat Pengembangan: Java Class File dapat diintegrasikan dengan alat pengembangan dan manajemen proyek Java, memungkinkan pengembang menggunakan fitur-fitur seperti debugging, profil, dan pembangunan otomatis.

Kesimpulan

Java Class File tidak hanya menyediakan fondasi portabilitas kode yang sangat kuat, tetapi juga melibatkan elemen keamanan, manajemen memori, dan kemudahan distribusi yang telah menjadikan Java sebagai bahasa pemrograman yang sangat populer di kalangan pengembang. Kelebihan-kelebihan ini telah membantu Java menjadi pilihan utama untuk pengembangan aplikasi lintas platform, terutama di lingkungan perusahaan dan industri saat ini.

Referensi Tambahan:

Artikel ini didedikasikan kepada: Sindy Nilasari Putri Wardani, Ulfa Laela Rahmadon, Vicky Septyawan, Yullya Adhe Putri, dan Adhitya Andre Saputra.

5 komentar untuk "Java Class File dan Fungsinya"

  1. Apa yang dimaksud dengan Java Class File pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Java Class File adalah sebuah file dengan esktensi .class yang berisi kode byte Java yang dapat dijalankan pada Java Virtual Machine atau JVM. Java Class File tersebut biasanya dibuat oleh kompilator Java dari file kode sumber bahasa Java, dimana hal ini membuat aplikasi Java yang telah dikembangkan dapat berdiri secara mandiri pada platform yang digunakan.

      Hapus
  2. Java Class File adalah format yang ditentukan secara tepat untuk Java yang akan dikompilasi oleh kompilator. Kode sumber Java dikompilasi menjadi file class yang dapat dimuat dan dijalankan oleh JVM apapun. Java Class File memungkinkan untuk dapat dijalankan pada lintas jaringan sebelum dimuat oleh JVM.

    BalasHapus
  3. Apa keterkaitan antara Java Class FIle dan JVM pada bahasa pemrograman Java?

    BalasHapus
    Balasan
    1. Alasan kenapa kode program Java dapat dijalankan pada begitu banyak sistem operasi yang berbeda adalah karena sifatnya sebagai bahasa pemrograman yang multiplatform.

      Saat dilakukan kompilasi file .java menjadi file .class, maka file .class tersebut secara dengan kode biner pada bahasa pemrograman lainnya, dimana kode teresbut adalah kode file mesin yang sebenarnya dijalankan ketika sebuat program berjalan pada komputer. Namun alih-alih menyimpan kode mesin yang dapat dibaca secara langsung oleh komputer, Java menyimpan kode biner tersebut pada JVM. Sistem JVM berbeda dengan sistem yang dibuat pada sistem komputer pada umumnya, namun JVM dapat membaca semua file dengan tipe .class dan menerjemahkannya cengan cara yang sama pada setiap sistem komputer yang digunakan.

      Hal ini memiliki dampak yang positif sekaligus juga dampak yang negatif pada aplikasi yang dikembangkan dengan bahasa pemrograman tersebut. Artinya, file apapun yang bertipe .class dapat dijalankan pada mesin komputer apapun selama mesin komputer tersebut memiliki JVM. Namun, sebaliknya jika komputer yang akan digunakan untuk menjalankan aplikasi Java tidak memiliki JVM maka komputer tersebut sudah pasti tidak akan bisa menjalankan program apapun yang dibuat dengan menggunakan bahasa Java.

      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 -