Bagaimana Java Adalah Bahasa Independen Platform

Mar 13 2023
Program komputer sangat erat kaitannya dengan perangkat keras dan sistem operasi tertentu. Misalnya, aplikasi Windows tidak dapat berjalan di Sistem Operasi Mac.

Program komputer sangat erat kaitannya dengan perangkat keras dan sistem operasi tertentu. Misalnya, aplikasi Windows tidak dapat berjalan di Sistem Operasi Mac. Aplikasi Mac tidak bisa berjalan di sistem Operasi Android, dan sebagainya.

Beberapa aplikasi umum untuk semua sistem operasi, seperti MS Word, jadi haruskah itu ditulis secara terpisah untuk semua Sistem Operasi?

Untuk mengatasi keragaman platform ini, aplikasi semacam itu harus ditulis secara independen untuk semua platform. Java menyediakan cara untuk menulis aplikasi secara independen dari perangkat keras dan sistem operasi. Dengan demikian, itu disebut bahasa pemrograman platform-independen.

Arti dari platform-independent adalah bahwa kode yang dikompilasi java (kode byte) dapat berjalan di semua sistem operasi.

Suatu program ditulis dalam bahasa yang merupakan bahasa yang dapat dibaca manusia. Ini mungkin berisi kata, frasa, dll yang tidak dimengerti oleh mesin. Agar kode sumber dapat dipahami oleh mesin, kode tersebut harus dalam bahasa yang dipahami oleh mesin, biasanya bahasa tingkat mesin. Jadi, inilah peran kompiler. Kompiler mengubah bahasa tingkat tinggi ( bahasa manusia) menjadi format yang dimengerti oleh mesin. Oleh karena itu, kompiler adalah program yang menerjemahkan kode sumber untuk program lain dari bahasa pemrograman menjadi kode yang dapat dieksekusi.
Kode yang dapat dieksekusi ini mungkin merupakan urutan instruksi mesin yang dapat dieksekusi oleh CPU secara langsung, atau mungkin representasi perantara yang ditafsirkan oleh mesin virtual. Representasi antara di Jawa ini adalahKode Byte Jawa.

· Apa itu Platform, dan Apa itu Bahasa Platform-Independen?
· Menyusun Kode
· Bagaimana Program Dijalankan Di JAVA?
· JVM (Java Virtual Machine)
· Peran apa yang dimainkan Kompilasi dan Interpretasi dalam Ketergantungan Platform?
· Bagaimana Java Menyediakan Kemandirian Platform?
· Mengapa Java Tidak Sepenuhnya Platform Mandiri?
· Kesimpulan

Apa itu Platform, dan Apa itu Bahasa Bebas Platform?

Platform dapat didefinisikan sebagai kombinasi berbeda dari perangkat keras, sistem operasi, dan perangkat lunak yang menyediakan lingkungan untuk menjalankan program .

Independensi platform mengacu pada independensi program dari sistem operasi sistem. Ini mengadopsi metodologi "Write Once Run Anywhere (WORA)".

Menyusun Kode

Setiap kali kami menulis kode, kami mematuhi sintaks bahasa pemrograman, yang umumnya dapat dibaca. Beberapa kata, nama variabel, frasa, nama metode, dll., Disertakan. Semuanya dianggap sebagai sastra yang dapat dibaca dan dipahami manusia.

Akibatnya, komputer menjalankan kompiler untuk mengubah kode sumber menjadi kode yang dapat dibaca mesin, juga dikenal sebagai bahasa tingkat mesin. Kompiler membuat kode tingkat mesin dalam format tertentu sehingga CPU dapat dengan mudah memahaminya dan menjalankannya tanpa kesalahan.

Kecuali kedua komputer berjalan di OS yang sama, kita tidak dapat menjalankan kode yang telah dikembangkan di satu mesin di mesin lain ketika bahasa tingkat mesin berbeda di setiap OS. Banyak pengembang dan pemrogram menganggap ini tidak dapat diterima. Namun, Java menyederhanakan banyak hal dan menyertakan perbaikan untuk ini.

Bagaimana Suatu Program Dijalankan Di JAVA?

Di Java, kompiler mengubah program menjadi bytecode, yang bukan merupakan kode yang dapat dieksekusi. JVM (Java Virtual Machine) kemudian mengeksekusi kode byte saat runtime. Kode sumber Java dikompilasi menjadi bytecode saat kita menggunakan compiler javac .

Bytecode yang dihasilkan tidak dapat dieksekusi oleh mesin dan setiap platform atau sistem operasi lain dapat menjalankannya. tetapi membutuhkan juru bahasa untuk berjalan di komputer. Saat kami menjalankan program atau filenya, kami memperoleh file .class , yang merupakan file yang tidak dapat dieksekusi. JVM berfungsi sebagai juru bahasa ini, dan sebagai hasilnya, ia mengeksekusi Bytecode. JVM tidak diragukan lagi tidak bergantung pada platform. Mirip dengan bagaimana itu bervariasi tergantung pada lingkungan. Misalnya, MAC dan Linux memiliki JVM yang berbeda dari Windows. Ini mendukung portabilitas sebagai salah satu fitur utamanya karena bytecode portabel kodenya menjadikannya platform-independen.

Bytecode disimpan di disk dengan ekstensi file .class . Saat program akan dijalankan, bytecode dikonversi, menggunakan kompiler just-in-time ( JIT ). Hasilnya adalah kode mesin yang kemudian diumpankan ke memori dan dieksekusi.

Kode Java perlu dikompilasi dua kali agar dapat dieksekusi:

  1. Program Java perlu dikompilasi menjadi bytecode.
  2. Ketika bytecode dijalankan, perlu dikonversi ke kode mesin.

Kompiler membuat file OS-dependent.exe saat C atau C++ digunakan (bahasa ini tidak independen platform). File .exe ini tidak akan berjalan ketika kami mencoba menjalankannya di OS yang berbeda karena bergantung pada OS tersebut dan tidak kompatibel dengannya.

JVM (Mesin Virtual Java)

JVM, komponen kompiler Java, mengubah file .java menjadi file .class. Fungsi kunci dalam kode sumber disebut JVM ketika kita mengkompilasi Kode Java.

JVM (Java Virtual Machine) bertindak sebagai mesin run-time untuk menjalankan aplikasi Java. JVM adalah yang benar-benar memanggil metode utama yang ada dalam kode java. JVM adalah bagian dari JRE (Java Runtime Environment).

Aplikasi Java disebut WORA (Write Once Run Anywhere). Ini berarti seorang programmer dapat mengembangkan kode Java pada satu sistem dan dapat mengharapkannya untuk berjalan di sistem lain yang mendukung Java tanpa penyesuaian apa pun. Ini semua dimungkinkan karena JVM.

Saat kami mengkompilasi file .java , file .class (berisi byte-code) dengan nama kelas yang sama yang ada di file .java dihasilkan oleh kompiler Java. File .class ini masuk ke berbagai langkah saat kita menjalankannya. Langkah-langkah ini bersama-sama menggambarkan keseluruhan JVM.

Di Java, poin utama di sini adalah bahwa JVM bergantung pada sistem operasi — jadi jika Anda menjalankan Mac OS X, Anda akan memiliki JVM yang berbeda daripada jika Anda menjalankan Windows atau sistem operasi lain. Fakta ini dapat diverifikasi dengan mencoba mengunduh JVM untuk mesin khusus Anda — saat mencoba mengunduhnya, Anda akan diberikan daftar JVM yang sesuai dengan sistem operasi yang berbeda, dan Anda jelas akan memilih JVM mana saja yang ditargetkan untuk sistem operasi itu kamu sedang berlari. Jadi kita dapat menyimpulkan bahwa JVM bergantung pada platform dan itulah alasan mengapa Java mampu menjadi “Platform Independent”.

Poin Penting:

  • Dalam kasus Java, keajaiban Bytecode-lah yang menjadikannya platform independen .
  • Hal ini menambah fitur penting dalam bahasa JAVA disebut sebagai portabilitas . Setiap sistem memiliki JVM sendiri yang diinstal secara otomatis saat perangkat lunak jdk diinstal. Untuk setiap sistem operasi tersedia JVM terpisah yang mampu membaca file .class atau kode byte.
  • Poin penting yang perlu diperhatikan adalah bahwa meskipun JAVA adalah bahasa yang tidak bergantung platform, JVM bergantung pada platform. JVM yang berbeda dirancang untuk OS yang berbeda dan kode byte dapat berjalan di OS yang berbeda.

Untuk mencapai independensi platform, ini menggabungkan kompilasi dan interpretasi. Saat sebuah program dikompilasi ke dalam Java, program tersebut diubah menjadi bytecode, sering dikenal sebagai file a.class, bukan kode mesin. Nah, bytecode ini yang membedakannya dengan kode mesin dengan fitur-fiturnya karena bisa dipindahkan/portable ke platform lain, tapi Java tidak bisa. Bytecode itu dapat dijalankan pada Java Virtual Machine.

Bagaimana Java Menyediakan Kemandirian Platform?

Di sebagian besar bahasa pemrograman, kompiler (atau juru bahasa) menghasilkan kode yang dapat dijalankan pada mesin target tertentu . Misalnya, jika Anda mengkompilasi program C++ di mesin Windows, file yang dapat dieksekusi dapat disalin ke mesin lain tetapi hanya akan berjalan di mesin Windows lain tetapi tidak pernah di mesin lain (misalnya, mesin Mac atau Linux). Platform ditentukan oleh mesin target (beserta sistem operasinya). Untuk bahasa sebelumnya, perancang bahasa perlu membuat versi khusus dari kompiler (atau juru bahasa) untuk setiap platform. Jika Anda menulis sebuah program yang ingin Anda sediakan di berbagai platform, Anda, sebagai pemrogram, harus melakukan sedikit pekerjaan tambahan. Anda harus membuat beberapa versi kode sumber Anda untuk setiap platform.

Java berhasil menghilangkan masalah platform untuk pemrogram tingkat tinggi (seperti Anda) karena Java telah mengatur ulang urutan compile-link-execute pada tingkat yang mendasari kompiler. Detailnya rumit tetapi, pada dasarnya, perancang bahasa Java mengisolasi masalah pemrograman yang bergantung pada platform dan mengembangkan cara tingkat rendah untuk merujuk secara abstrak pada masalah ini. Akibatnya, kompiler Java tidak membuat file objek, melainkan membuat file bytecode yang pada dasarnya adalah file objek untuk mesin virtual . Bahkan, kompiler Java sering disebut kompiler JVM (untuk Java Virtual Machine).

Akibatnya, Anda dapat menulis program Java (pada platform apa pun) dan menggunakan kompiler JVM (disebut javac) untuk menghasilkan file bytecode (file bytecode menggunakan ekstensi .class). File bytecode ini dapat digunakan di semua platform (yang telah menginstal Java). Namun, bytecode bukanlah file yang dapat dieksekusi. Untuk mengeksekusi file bytecode, Anda sebenarnya perlu memanggil juru bahasa Java (disebut java). Setiap platform memiliki juru bahasa Java sendiri yang secara otomatis akan mengatasi masalah khusus platform yang tidak dapat lagi ditunda. Ketika operasi khusus platform diperlukan oleh bytecode, penafsir Java menautkan kode yang sesuai khusus untuk platform.

Seperti halnya bahasa yang ditafsirkan, adalah mungkin untuk membuat program Java berjalan lebih cepat dengan mengkompilasi bytecode menjadi executable; kerugiannya adalah bahwa executable tersebut hanya akan bekerja pada platform di mana ia dibuat.

Mengapa Java Tidak Sepenuhnya Platform Mandiri?

Jelas Java tidak bisa berjalan di platform yang tidak memiliki JVM. Jadi dalam arti kata yang paling harfiah, Java bukanlah platform independen. Tetapi pada saat yang sama, definisi independensi platform Anda tidak berguna. Tidak ada bahasa yang mungkin bisa benar-benar independen platform, karena beberapa aspek platform harus dapat mengurai bahasa. Dan mengingat semua platform yang memungkinkan, beberapa pasti tidak akan dapat menguraikannya.

Jadi, mengingat fakta bahwa banyak, banyak platform menjalankan JVM, dan bahwa kode Java dapat dijalankan pada JVM apa pun dengan arti yang sama, Java bergantung pada platform.

Kesimpulan

Java adalah salah satu bahasa pemrograman yang paling terkenal dan banyak digunakan. Ini adalah bahasa pemrograman platform-independen . Java tidak mengharuskan seluruh kode ditulis ulang untuk semua platform yang berbeda. Ini mendukung independensi platform menggunakan bytecode Java dan Java Virtual Machine . Java compiler javac mengubah kode program menjadi kode byte. Kode byte ini tidak tergantung platform dan dapat berjalan di sistem operasi JVM apa pun. JVM menginterpretasikan kode byte ke kode mesin, dan program dijalankan.

Terima kasih telah membaca. Selamat belajar

Dukung publikasi kami dengan mengikutinya

Bagaimana Menyeimbangkan Pekerjaan Purna Waktu & Studi Paruh Waktu? Meluncurkan Pasar NFT Anda Sendiri dengan Solusi Platform NFT White-Label Java Opsional dan Keduanya: Menangani Nilai Null dan Mewakili Dua Kemungkinan Nilai Cara Memanfaatkan Hidup Anda: Panduan Pribadi Callable vs Runnable vs Future di Java Spring 3.0 dan Fitur-fiturnya Kebanyakan Pertanyaan Wawancara berbasis Java8 Stream yang sering ditanyakan — Bagian Terakhir 8 hukum teratas dari «48 Hukum Kekuasaan» oleh Robert Greene: Rosemary — Cara Menanamnya dan Apa Manfaatnya