Cara Mulai Belajar Bahasa Pemrograman Java
Bahasa pemrograman Java adalah bahasa pemrograman yang paling banyak digunakan diberbagai platform. Bahasa Java dapat dikembangkan dan dijalankan di berbagai bahasa pemrograman. Bahasa Java adalah bahasa pemrograman yang handal, cepat, dan aman untuk pengembangan berbagai program aplikasi.
Keunggulan Program Java
satu, Bahasa pemrograman yang sederhana. Bahasa Java adalah bahasa pemrograman yang mudah untuk dipelajari dan sintaknya pun mudah untuk dipahami. Bahasa Java merupakan bahasa yang memiliki kemiripan seperti bahasa pemrograman C++ sehingga mudah untuk dipahami. Bahasa Java menghilangkan banyak kebingungan dan menghilangkan beberapa fitur yang jarang digunakan seperti pointer, operator overloading dan lain sebagainya. Bahasa Java juga memelihara kapasitas memori dan untuk hal itu bahasa Java mengembangkan garbage collector otomatis. Garbage collector pada Java berfungsi untuk mengumpulkan unused objek secara otomatis.
dua, Bahasa pemrograman yang independent-platform . Program yang dibuat menggunakan bahasa Java, setelah dikompilasi selanjutnya akan dikonversi ke bahasa level intermediate yang disebut dengan bytecode sehingga bersifat irrespective (terlepas dari gangguan apapun) dari mesin pada saat program berjalan. Hal ini membuat Java dapat berjalan secara portable pada semua mesin melalui interpreter yang disebut Java Virtual Machine (JVM) dan juga Java menyediakan 'reusability of code'.
tiga, Bahasa pemrograman yang berorientasi objek atau OOP (Object Oriented Programming). OOP membuat program yang komplek menjadi lebih sederhana dengan cara membagi beberapa program menjadi bagian dari beberapa objek program. Objek program berfungsi sebagai jembatan penghubung terhadap aliran data antara satu fungsi dengan fungsi yang lainnya. Hal ini membuat proses modifikasi fungsi dan program menjadi lebih mudah sesuai dengan kebutuhan.
empat, Bahasa pemrograman yang handal. Bahasa pemrograman Java merupakan bahasa pemrograman yang harus dapat diandalkan karena bahasa Java digunakan diberbagai sistem aplikasi dan berbagai aspek bidang pekerjaan dengan proses bisnis yang berbeda-beda.
lima, Java adalah bahasa pemrograman yang bersifat multithreaded . Bahasa Java adalah bahasa yang bisa melakukan beberapa tugas sekaligus. Contoh, ketika program Java sedang melakukan proses manajemen GUI pada saat yang bersamaan pula Java melakukan proses waiting input dari jaringan koneksi untuk digunakan pada tugas yang lain daripada menggunakan default GUI untuk kedua tugas tersebut. kemampuan bahasa Bava yang bersifat multithreaded ini membuat bahasa Java menjadi lebih responsif.
enam, Dapat digunakan untuk menciptakan applets . Applets adalah program Java yang dapat dijalankan pada browser.
tujuh, Java tidak membutuhkan persyaratan preprocessor apapun. Bahasa Java adalah bahasa pemrograman yang tidak membutuhkan persyaratan include dari header file untuk menciptakan sebuah aplikasi Java.
Beberapa tips buat mampu memulai belajar bahasa Java
satu, Pahami dasar menurut pemrograman
Memahami dasar menurut pemrograman adalah hal yang sangat krusial. Pahami konsep pemrograman berdasarkan aspek nalar & jangan berlaku curang (dalam diri sendiri), lantaran ini merupakan hal yg sangat penting. Mulai menilik dan akrapkan diri menggunakan lingkungan pengembangan acara & secara perlahan mulai terbiasa seiring waktu.
2, Sabar adalah kuncinya
Semakin lama mempelajari bahasa pemrograman Java maka akan semakin banyak materi yang akan diserap. Jangan terburu buru dalam mempelajari bahasa pemrograman Java, pahami pola belajar masing-masing. Mempelajari bahasa Java bukanlah proses belajar satu hari, oleh karena itu perlu diingat bahwa seorang programmer terbaikpun harus memulai kesuksesannya dari titik nol.
3, Selalu latihan
Setelah memahami basik dari bahasa pemrograman Java, cara terbaik untuk meningkatkan kemampuan adalah selalu berlatih dan berlatih membuat program. Pengetahuan yang sesungguhnya akan keluar jika kamu berhasil mempraktikkan apa yang telah kamu pelajari, "Pratice Makes a Man Perfect". Berlatihlah melebih apa yang telah kamu pelajari. Dengan berlatih akan membantu dalam membangun rasa percaya diri dalam membuat program.
Empat, Belajar bahasa pemrograman Java secara teratur.
Terus belajar & berlatih tetang bahasa pemrograman Java akan membantumu tahu & membentuk ketertarikan terhadap Java.
Lima, Belajarlah pada gerombolan atau komunitas
Belajar pada kelompok adalah cara terbaik pada menyelidiki pemrograman Java. Saat seseorang telah mengetahui hal yang baru mengenai materi pemrograman Java, hal tadi bisa dibagikan dalam gerombolan baik pada bentuk diskusi dan penyelesaian kasus terhadap suatu titik permasalahan yang masih ragu atau kurang jelas. Belajarlah bersama mengenai bahasa pemrograman Java dengan komunitas yg mempunyai ketertarikan yang sama dengan bidang tadi. Proses belajar pun sanggup dilakukan beserta bantuan tutor jika perlu.
Persiapan pelaksanaan belajar
satu, silahkan download JRE (Java Runtime Environment) dan JDK (Java Development Kit) melalui situs oracle.com secara GRATIS.
dua, download Netbeant terbaru pada situs netbeans.org secara GRATIS.
Jika mengalami kebingungan, bisa melalui pencarian goole dengan keyword 'download jdk' dan 'download netbeans'. Setelah melakuk pencarian melalui situs mesin pencari maka akan diarahkan ke alamat download dari aplikasi yang dicari tersebut dan ikuti perintah instalasinya. Selah selesai melakukan instalasi program maka ketiklah kode program dibawah ini dan coba jalankan programnya pada compiler.
Apakah program yang dibentuk sudah berhasil dijalankan?
Elfan mauludi
Cara Mulai Belajar Bahasa Pemrograman Java
Mempersiapkan Lingkungan Pengembangan Sistem Java
Java adalah bahasa pemrograman komputer serba guna yang konkuren, berbasis kelas, dan berorientasi objek. Aplikasi Java yang telah dikompile ke dalam bytecode akan dapat berjalan diberbagai arsitektur komputer yang memiliki Java Virtual Machine (JVM). JVM, JRE, dan JDK adalah tiga platform yang bekerja secara dependent karena memiliki pengaturan yang berbeda pada tiap operating system. Namun, ketiga paltform Java tersebut adalah aplikasi yang independent.
Ada tiga hal yang perlu diperhatikan dalam membangun setting pengembangan bahasa Java.
satu, JDK atau Java Development Kit . JDK ditujukan untuk pengembang perangkat lunak dan termasuk perangkat pengembangan seperti Java Compiler, Javadoc, Jar, dan debugger.
dua, JRE atau Java Runtime Environment . JRE mengandung bagian-bagian dari Java libraries untuk menjalankan program Java dan juga dimaksudkan untuk para end user. JRE juga bisa dipahami sebagai subset dari dari JDK.
tiga, JVM atau Java Virtual Machine . JVM adalah sebuah mesin virtual yang tujuan khusunya untuk mempersiapkan runtime environment agar Java bytecode dapat dijalankan atau dieksekusi programnya. JVM sudah tersedia pada sebagian besar platform perangkat keras dan perangkat lunak.
Langkah setting pengembangan Java buat Windows
satu, Download JDK dan JRE pada situs Oracle.org secara GRATIS.
dua, Setelah proses download selesai dilakukan jalankan program .exe yang ikuti instruksi instalasi Java pada komputer yang akan digunakan sebagai sistem pengembang.
Elfan mauludi
Mempersiapkan Lingkungan Pengembangan Sistem Java
Contoh Program Hello World Java
Proses program Java sederhananya terdiri menurut tiga termin:
satu, Program dibuat dengan diketik pada text editor dan simpan file nya dengan nama file HelloWorld.java.
dua, Compile file Java tersebut dengan mengetik "javac HellowWorld.java" pada terminal Windows.
tiga, Eksekusi program atau jalankan program dengan mengetik "java HelloWorld" pada terminal Windows.
Contoh program sederhana dari perintah cetak tulisan "Hello World" pada layar monitor.
Program "Hello World" terdiri dari tiga komponen utama: definisi class HelloWorld, method main, dan source code comments. Berdasarkan ketiga hal yang telah disebutkan sebelumnya, akan dijelaskan mengenai dasar dari pemahaman kode program:
satu, Class Definition: pada baris program yang menggunakan keyword class adalah memberitahukan bahwa class baru telah didefinisikan.
Class Helloword
HellowWorld adalah identifier (tanda pengenal) dari nama kelas. Setelah seluruh isi class didefinisikan, termasuk semua anggota kelas yang ada didalamnya, terletak antara simbol buka kurung ({) dan tutup kurung (}).
dua, Main method: dalam setiap bahasa pemrograman Java, semua aplikasi java harus mengandung main method yang ditandai dengan :
public static void main ()
public = membuat JVM dapat mengeksekusi semua method dari manapun.
static = main method dipanggil tanpa objek.
void = main method tidak mengembalikan nilai apapun pada method-nya.
main () = nama dari method yang sudah dikonfigurasi pada JVM (default setting).
String args [] = main method menerima satu single argument: sebuah elemen bernilai array dari elemen string.
Bahasa Java seperti halnya bahasa C/C++, main method adalah pintu masuk utama untuk masuk aplikasi dan permohonan masuk dari method lain dari program yang dijalankan.
tiga, baris kode program seperti dijelaskan dibawah ini:
System.Out.Println("Hellow World");
Baris out program adalah string "Hello World" yang diikuti pemindahan baris baru pada layar monitor. Output pada dasarnya dicapai oleh pembuatan println( ) method . Keyword sistem adalah predefinisi class yang menyediakan akses ke sistem, dan Out adalah variabel tipe output stream yang terhubung pada console.
empat, Komentar: bisa terdiri dari satu baris atau lebih dari satu baris.
// program dijalankan dengan memanggil method main().
// tampilkan "Hello, World" dalam layar monitor.
Penggunaan komentar lebih dari satu baris perintah programnya dimulai dengan /* dan diakhiri dengan */
/* Contoh sederhana acara Java
nama file : "HelloWorld.java". */
Poin Penting :
Nama kelas atau class yang didefinisikan oleh program HelloWorld sama dengan nama dari file tersebut yaitu HelloWorld,java. Hal ini bukanlah suatu kebetulan karena dalam bahasa Java semua kode program harus berada didalam kelas dan mengandung satu public class yang mengandung main () method.
Secacara sederhana, nama dari main class (kelas yang mengandung main method) harus sama dengan nama dari file program itu sendiri.
Melakukan Kompilasi Program
satu, Setelah sukses melakukan setting lingkungan pengembangan Java, buka terminal Windows/Unix dan pergi kebagian directory atau ruang penyimpanan dimana file HelloWorld.java disimpan.
dua, Lakukan kompilasi atau compile program HelloWorld dengan cara klik compiler javac, dan ketikkan nama file yang akan dikompilasi yaitu HelloWorld.java
tiga, Kompilator akan membuat sebuah file bernama HelloWorld.class yang akan ditampilkan pada directory yang mengandung bytecode program. Setelah selesai, jalankan program tersebut, JVM akan memanggil file java dengan nama spesifik pada file class:
java HelloWorld
empat, hasilnya program HelloWorld java akan mencetak tulisan "Hello, World" pada layar monitor.
Elfan mauludi
Contoh Program Hello World Java
Sistem Penamaan Bahasa Pemrograman Java
Tata cara penamaan dalam bahasa pemrograman Java merupakan tata aturan yang harus diikuti dalam proses pengembangan perangkat lunak agar program aplikasi mudah dibaca dan dilakukan perawatan terhadap kode programnya. Bahasa pemrograman Java menggunakan tata tulis CamelCase sebagai praktik penulisan methods, variabel, classes, packages, dan konstanta.
Camel case dalam bahasa pemrograman Java : tata tulis Camel case dalam bahasa Java mengandung kata atau prase dimana setiap kata atau singkatan dimulai dengan huruf kapital (uppercase dan lowercase).
Classes dan interfaces:
satu, Nama class diawali dengan kata benda (nouns) dengan huruf pertama diawali dengan huruf kapital (Uppercase). Interfaces pada Java juga harus diawali dengan huruf kapital sama seperti tata penulisan nama class.
dua, Gunakan kata secara utuh dan hindari penggunaan akronim dan singkatan.
Contoh:
interface Bicycle
class MointainBike implements Bicycle
interface Sport
group Football implements Sport
Method:
Sistem penamaan method harus menggunakan kata kerja (verbs) dengan huruf pertama diawali dengan huruf kapital kecil (lowercase) dan setiap kata dalam internal word diawali dengan huruf kapital besar (uppercase).
Model:
Void changeGear (int newValue);
void speedUp (int increment);
void applyBrakes (int decrement);
Variabel:
Sistem penamaan variabel wajib menggunakan istilah & makna yang sederhana dan singkat.
satu, penamaan variabel tidak boleh dimulai dengan underscore ( _ ) atau tanda dollar ( $ ).
dua, mudah untuk diingat, nama dirancang untuk menyampaikan maksud dari penggunaannya kepada pengamat.
tiga, hindari penggunaan nama variabel yang hanya terdiri dari satu karakter, kecuali untuk jenis variabel yang digunakan sementara.
empat, penggunaan variabel sementara biasanya menggunakan huruf i, j, k, m, dan n untuk variabel bilangan bulat atau integer dan huruf c, d, dan e untuk variabel dengan tipe karakter atau char.
Model:
/* variabel buat class MountainBike */
int speed = 0;
int gear = 1;
Variabel konstanta :
satu, Semuanya harus menggunakan huruf kapital besar (uppercase) yang tiap katanya dipisah dengan underscore ( _ ).
dua, ada beberapa jenis konstanta yang digunakan untuk predefinisi class seperti Float, Long, String, dan lain sebagainya.
Contoh:
static final int MIN_WIDTH = 4;
/* beberapa jenis konstanta yang menggunakan predefinisi Float class */
public static final float INFINIT_POSITIF = 1.0f / 0.0f;
public static final float INFINIT_NEGATIF = -1.0f / 0.0f;
public static final float TIDAK_TERDEFINISI = 0.0f / 0.0f;
Packages:
satu, kata awal packages selalu ditulis dengan kapital kecil (lowercase) dan merupakan top-level domain name, seperti; com, edu, gov, mil, net, org.
dua, komponen selanjutnya dari package diberi nama bervariasi sesuai dengan ketentuan dan kesepakatan dari organisasi atau instansi masing-masing.
Model:
com.Sun.Eng
com.Apple.Quixktime.V2
/* java.Lang packet in JDK */
java.Lang
elfan mauludi
Sistem Penamaan Bahasa Pemrograman Java
Fungsi Java Virtual Machine Pada Bahasa Pemrograman Java
Java Virtual Machine (JVM) bertindak sebagai runtime engine untuk menjalankan aplikasi Java. JVM adalah yang memanggil main method dalam program Java. JVM adalah bagian dari Java Runtime Environment (JRE).
Aplikasi Java disebut juga dengan WORA (Write Once Run Anywhere). Artinya, aplikasi Java hanya perlu dikembangkan sekali pada sistem dan dapat dijalankan pada sistem Java yang lain tanpa harus melakuan pengaturan ulang tertentu. Kemampuan Java untuk bisa berjalan diberbagai sistem ini karena kemampuan dari JVM.
Ketika Java file dikompilasi, maka class files yang mengandung bytecode akan menghasilkanfile yang sama dengan nama class pada .java file oleh compiler. Pada tahap kompilasi ini .class file akan mengalami beberapa tahapan proses ketika dijalankan. Beberapa proses tersebut diperlihatkan pada gambar 1.
![]() |
| Gambar 1 tahap kompilasi file java dengan jvm |
sumber gambar : geeksforgeeks.Org
Class Loader Subsystem, bertanggung jawab terhadap tiga aktifitas, yaitu: loading, linking , dan initialization (inisialisasi).
Loading:
Class Loader membaca file .class, kemudian menghasilkan data biner dan menyimpannya sesuai dengan area method. Untuk setiap file .class, JVM menyimpan beberapa informasi pada area method.
satu, Nama kualifikasi penuh dari class loading dan class parent terdekatnya.
dua, Apakah .class file terhubung dengan Class, Interface, atau Enum.
tiga, Modifier, Variabel, Method, dan lain sebagainya.
Ketika JVM telah melakukan loading .class file, selanjutnya JVM menciptakan class tipe untuk menampilkan file tersebut ke dalam memori heap. Perlu diingat bahwa objek dari tipe class yang dimaksud adalah predefinisi dari java.lang pada package. Objek class dapat digunakan oleh programmer untuk mendapatkan informasi class level seperti nama class, nama parent, method, variabel, dan lain sebagainya. Untuk mendapatkan informasi dari class tersebut maka menggunakan perintah getClass() method dari objek class.
Contoh acara:
catatan:class objek hanya tercipta satu kali setiap class file melakukan loading.
Linking:
terdiri dari tiga tahap yaitu: verifikasi, persiapan, dan resolution (optional).
satu, Verifikasi adalah memastikan .class file sudah diperiksa secara benar dan apakah file sudah di format dan dihasilkan dengan benar oleh compiler. Jika proses verifikasi gagal makan runtime exception akan menjalankan java.lang.VerifyError.
dua, Persiapan atau preparation adalah JVM mengalokasikan memori untuk variabel class dan menginisialisasi memori ke dalam nilai default.
tiga, Resolution adalah proses penggantian referensi simbol dari ketikkan ke referensi langsung. Proses resolusi dilakukan dengan cara mencari ke area method untuk menemukan referensi entitas.
Initialization:
Pada tahapan initialization atau inisialisasi semua variabel static akan ditugaskan sesuai dengan nilai yang telah terdefinisi pada kode program dan static block (jika ada). Proses dijalankan mulai dari tahap paling atas ke bawah (top-bottom) dan dari parent ke child dalam class hirarki.
Bootstrap class loader: Setiap implementasi JVM memiliki bootstrap class loader yang mampu melakukan loading ke class yang terpercaya. JVM melakukan loading ke pusat class Java API yang ditampilkan dalam JAVA_HOME/jre/lib directory. Jalur ini lebih populer dengan sebutan jalur bootstrap. Hal ini juga diimplementasikan pada bahasa native lain seperti C, dan C++.
Extension class loader: merupakan turunan (child) dari bootstrap class loader. Extention class loader menampilkan direktori ekstensi JAVA_HOME/jre/lib/ext (jalur ekstensi) atau direktori spesifik lainnya dari jalur class aplikasi (application class path). Application class loader digunakan secara internal pada variabel lingkungan yang dipetakan ke java.class.path. Application class loader juga diimplementasikan dalam Java oleh class sun.misc.Launcher$AppClassLoader.
Contoh acara:
catatan:
JVM mengikuti aturan hirarki perwakilan dalam melakukan loading class. System class loader mewakilkan loading request menuju extention class loader dan extension class loader mewakilkan request-nya ke bootstrap class loader. Jika ditemukan jalur class pada bootstrap maka class akan di-loading ketika tidak ada request transfer lain ke extension class loader, dan kemudian akan menuju ke system class loader. Terakhir, jika class loader gagal melakukan loading class, maka akan didapati runtime exception java.lang.ClassNotFoundException. Gambar 2 memperlihat proses tersebut secara bertahap.
|
| Gambar 2: loading class java |
sumber gambar : geeksforgeeks.org
JVM Memori
Method area: mengandung semua level informasi class seperti class name, parent terdekat dari class name, informasi method dan variabel, dan lain sebagainya. Hanya terdapat satu area method pada setiap JVM dan method tersebut merupakan shared resource.
Heap area: Semua informasi objek disediakan di heap area. Hanya terdapat satu heap area pada setiap JVM yang juga merupakan shared resource.
Stack area: JVM menciptakan satu runtime stack yang disediakan untuk setiap thread. Setiap block pada setiap stack disebut sebagai activation record atau stack frame yang menyediakan method calls. Semua variabel lokal dari setiap method tersebut disediakan pada frame yang sesuai. Setelah thread dimatikan (terminate), maka runtime stack-nya pun akan dimatikan oleh JVM dan bukan merupakan shared resource.
PC registers: adalah alamat penyedia dari instruksi eksekusi sebelumnya dari thread. Pada dasarnya, setiap thread terpisah dari PC registers.
Native method stacks: untuk setiap thread diciptakan stack native secara terpisah yang menyediakan informasi native method.
Penjelasan tentang JVM memori diperlihatkan pada gambar 3.
![]() |
| Gambar 3 JVM Memori |
sumber gambar : geeksforgeeks.org
Execution Engine
Execution engine melakukan eksekusi atau menjalankan .class (bytecode) dengan cara membaca kode baris per baris, menggunakan data, dan menampilkan informasi dari berbagai area memori, dan perintah eksekusi. Hal tersebut dapat dibagi kedalam tiga bagian yaitu:
satu, Interpreter: Interpreter berfungsi untuk menginterpretasikan tiap-tiap baris bytecode dan kemudian mengeksekusinya atau menjalankannya. Kekurangan dari interpreter adalah pada saat suatu fungsi dipanggil secara berulang maka maka interpreter pun akan dipanggil secara berulang pula.
dua, Just-in-Time Compiler (JIT): JIT digunakan untuk meningkatkan efisiensi dari interpreter. JIT melakukan kompilasi terhadap seluruh bytecode dan mengubahnya menjadi native code dimanapun interpreter melihat pemanggilan method secara terpisah, maka JIT menyediakan native code untuk bagian tersebut sehingga tidak diperlukan interpretasi secara berulang.
tiga, Garbage Collector: Garbage Collector berfungsi untuk menghancurkan objek yang tidak berfungsi.
Java Native Interface (JNI)
JNI adalah intarmuka (interface) yang berinteraksi dengan Native Method Libraries dan menyediakan native libraries (C/C++) untuk proses eksekusi. JNI memungkinkan JVM untuk memanggil C/C++ libraries dan sebaliknya untuk dipanggil oleh C/C++ untuk kebutuhan khusus pada hardware.
Native Method Libraries
Native method libraries adalah kumpulan dari Native Libraries (C dam C++) yang dibutuhkan oleh Execution Engine.
Elfan mauludi
Fungsi Java Virtual Machine Pada Bahasa Pemrograman Java
Java Class File
File atau data dari Java class mengandung Java bytecode dan .class extension yang bisa dijalankan oleh JVM. Sebuah file Java diciptakan oleh Java Compiler 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.
Contoh: Lakukan save code Java dibawah ini dengan nama file Test.java pada sistem komputer.
Setelah dilakukan proses kompilasi oleh compiler 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: empat bytes pertama dari class file disebut dengan magic_number. magic_number adalah nilai predefinisi dimana JVM menggunakannya untuk mengidentifikasi apakah .class file sudah di-generated oleh compiler dengan benar atau tidak. Nilai dari magic_number akan dinyatakan dalam hexadesimal seperti berikut;
0xCAFEBABE
Sekarang lihat apa yang terjadi ketika JVM tidak menemukan magic_number. Misalkan kita memiliki .java file dengan nama Sample.java, setelah itu ikuti perintah step by step berikut ini pada sistem komputer.
step 1: Lakukan compile atau kompilasi menggunakan perintah javac Sample.java
step 2: Buka file Sample.class, dan akan terlihat seperti gambar 1.
![]() |
| Gambar 1 hasil kompilasi Sample.Java |
asal : geekforgeek.Org
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 |
asal : geekforgeek.Org
Catatan: hasil ini akan bervariasi tergantung seberapa banyak data yang dihapus pada .class file.
dua, minor_version & major_version: kedunya berfungsi merepresentasikan versi dari .class file. JVM akan menggunakan kedua versi tersebut untuk mengidentifikasi versi mana dari compiler 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 coba dilakukan maka akan didapat run time exception pada proses.
Contoh demonstrasi diperlihatkan dengan tahapan sebagai berikut (khusus os windows):
step 1: Buka command prompt Windows dan coba periksa Java compiler dan JVM version menggunakan perintah seperti diperlihatkan pada gambar 3 dan 4.
![]() |
| Gambar 3 periksa compiler Java |
asal : geekforgeek.Org
![]() |
| Gambar 4 periksa versi Java |
asal : geekforgeek.Org
step 2: Sekarang coba periksa versi lain yang lebih tinggi atau yang lebih rendah yang telah diinstal pada sistem komputer. Untuk melakukan instalasi versi terbaru Java dapat didownload melalui link oracle.com.
Setelah itu lakukan instalasi pada pc atau laptop dan catat lokasi instalasinya.
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 Java compiler JVM yang telah diinstal tersebut seperti pada gambar 5.
![]() |
| Gambar 5 periksa versi Java terbaru |
asal : geekforgeek.Org
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 |
asal : geekforgeek.Org
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 |
asal : geekforgeek.Org
catatan: Secara internal JDK versi 1.5 artinya adalah 49.0, 1.6 artinya 50.0, 1.7 artinya 51.0 dan seterusnya. Angka yang diperlihatkan sebelum desimal menyatakan major_version dan angka yang diperlihatkan setelah desimal menyatakan minor_version.
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 poolfile.
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.
elfan mauludi
Java Class File
JVM Stack Area
JVM menciptakan stack terpisah pada saat thread diciptakan. Penggunaan memori untuk JVM stack tidak dibutuhkan secara berkelanjutan. JVM hanya aktif pada dua operasi secara langsung pada Java Stack, yaitu pada saat push dan pops frame. Stack pada thread tertentu akan dianggap sebagai Runtime Stack. Setiap method memanggil operasinya menggunakan thread tersebut yang disediakan sesuai dengan runtime stack-nya termasuk parameter, variabel lokal, komputasi terdekat, dan data lainnya. Setelah method selesai dijalankan, entry yang cocok akan dihapus. Setelah menyelesaikan semua panggilan method stack akan dikosongkan dan stack yang kosong akan dihancurkan oleh JVM sebelum thread dimatikan. Data yang disediakan pada stack juga tersedia untuk thread yang cocok dan tidak tersedia untuk thread sisa. Oleh karena itu, kita bisa menyebut data lokal sebagai thread safe. Setiap masukkan pada stack disebut dengan stack frame atau activation record (aktivasi penyimpanan) seperti ditunjukkan pada gambar 1.
![]() |
| Gambar 1 JVM stack area |
asal : geekforgeek.Org
Struktur Bingkai Stack
Bingkai stack pada dasarnya terdiri dari tiga bagian yaitu: variabel array lokal, stack operand, dan data frame atau bingkai data. Ketika JVM memanggil method Java, yang dilakukan JVM adalah memeriksa data class untuk menentukan jumlah huruf yang dibutuhkan oleh method pada variabel array lokal dan operand stack. JVM menciptakan stack frame dari ukuran yang sesuai untuk memanggil method dan mendorongnya menuju Java stack.
Variabel array local (LVA atau local variables array):
satu, Variabel lokal adalah bagian dari stack frame yang diatur sebagai array berbasis nol dari kata yang digunakan.
dua, LVA mengandung semua parameter dan variabel lokal dari method.
tiga, Setiap slot pada entry array terdiri dari 4 bytes.
empat, Nilai dari tipe data integer, dan yang setara menempati 1 entry atau slot dalam array 4 bytes.
lima, Nilai dari tipe data double dan long menempati 2 entry secara berurutan pada array 8 bytes.
enam, Tipe data byte, short, dan char akan dikonversi ke dalam tipe data integer dan menempati 1 slot ukuran 4 bytes.
tujuh, Tetapi penempatan nilai Boolean adalah bervariasi dari satu JVM ke JVM lain. Tetapi, kebanyakan JVM memberikan 1 slot untuk tipe data Boolean pada variabel array lokal.
delapan, Parameter akan ditempatkan pada variabel array lokal dalam pesanan sesuai dengan permintaan yang dideklarasikan.
sembilan, Contohnya; misal class Example memiliki method bike(), selanjutnya diperlihatkan pada gambar 2 sebagai berikut:
/* Pendeklarasian group */
group Example
public void bike(int i, long l, float f, double d, Object o, byte b)
return 0;
![]() |
| Gambar 2 LVA pada JVM Java |
asal : geekforgeek.Org
Operand Stack (OS):
satu, JVM menggunakan operand stack sebagai ruang kerja seperti rough work atau tempat penyimpanan hasil kalkulasi sementara.
dua, Operand stack diatur sebagai array huruf seperti variabel array lokal namun tidak seperti pengaksesan menggunakan indek seperti variabel array lokal, melainkan pengaksesannya menggunakan beberapa instruksi sehingga bisa mendorong nilai menuju operand stack dan beberapa instruksi yang bisa mengeluarkan nilai dari operand stack dan beberapa instruksi lain yang bisa menunjukkan kebutuhan operasi.
tiga, Contohnya; diperlihat beberapa JVM menggunakan kode seperti gambar 3 yang dapat disubstrak kedalam dua variabel lokal yang mengandung dua integer dan menyimpannya pada variabel lokal ketiga.
![]() |
| Gambar tiga Operand Stack JVM Java |
asal : geekforgeek.Org
empat, Dua instruksi berikut ini lload_0 dan lload_1 akan mendorong nilai dalam operand stack dari variabel lokal untuk pergi dan instruksi isub akan mensubtraksi kedua nilai dan menyimpannya kembali menuju operand stack dan setelah hasil dari istore_2 muncul dari operand stack maka akan tersedia pada variabel array lokal pada posisi 2 seperti diperlihatkan pada gambar 4.
![]() |
| Gambar 4 proses operand stack JVM |
asal : geekforgeek.Org
Frame Data (FD):
satu, FD mengandung semua refensi simbol dan pengembalian normal method dengan metode tertentu.
dua, FD juga mengandung referensi untuk Exception table yang menyediakan korenpondensi tangkapan informasi blok pada kondisi tertentu.
Elfan mauludi
JVM Stack Area
JVM Shutdown Hook Pada Bahasa Pemrograman Java
Shotdown hook adalah konstruksi khusus yang memungkinkan pengembang untuk memasukkan beberapa bagian kode program untuk dieksekusi ketika JVM dimatikan. Kemampuan ini berguna pada kondisi dimana membutuhkan operasi pembersihan khusus ketika JVM akan dimatikan.
Penanganan ini membutuhkan beberapa pemahaman umum, seperti memastikan pemanggilan perintah (pemanggilan System.exit(0)) tidak akan berfungsi apabila terjadi situasi dimana virtual machine sudah mati karena alasan lain (seperti perintah matikan yang berasal dari OS), atau disebabkan oleh masalah sumber daya (kehabisan memori). Shutdown hook memberikan penyelesaian masalah dengan mudah, dengan cara menyediakan blok kode arbitrari dimana kode tersebut semuanya akan dipanggil oleh JVM ketika JVM akan dimatikan.
Hal yang harus dilakukan untuk mengaktifkan shutdown hook adalah membuat class extends ke java.lang.Thread, dan membuat logika yang berisi perintah shotdown JVM di dalam method public void run(). Setelah itu, daftarkan register instance dari class shutdown hook ke JVM dengan cara memanggil method Runtime.retRuntime().addShutdownHook(Thread). Jika diperlukan penghapusan register shutdown hook sebelumnya, maka class Runtime menyediakan method removeShotdownHook(Thread).
Contoh acara:
Ketika kode program diatas dijalankan, maka shutdown hook akan dipanggil oleh JVM ketika perintah pada main method telah dijalankan atau selesai dieksekusi.
Beberapa hal yang perlu diperhatikan pada penggunaan perintah shutdown hook
satu, Dalam beberapa kondisi shutdown hook mungkin tidak dapat dieksekusi.
Satu hal yang perlu diingat adalah perintah shutdown hook tidak selamanya dapat dijalankan dalam program. Jika JVM mengalami kerusakan, maka kemungkinan kerusakan atau error tersebut tidak akan memberikan kesempatan untuk mengeksekusi perintah shutdown hook. Juga, jika O/S memberikan SIGKILL (googling saja!), maka aplikasi harus dimatikan lebih awal tanpa melakukan aktifitas pembersihan memori. Hal lain yang mungkin terjadi apabila JVM ingin dimatikan tanpa menggunakan perintah shutdown hook adalah menggunakan method Runime.halt().
Shutdown hook hanya akan dipanggil apabila aplikasi dimatikan secara normal atau apabila semua thread telah selesai dijalankan atau ketika memanggil perintah System.exit(0). Dan juga, JVM akan dimatikan bila disebabkan oleh kondisi eksternal seperti permintaan user untuk mematikan, ada sinyal SIGTERM dari O/S (atau perintah mematikan secara normal), atau operating system berhenti beroperasi.
dua, Saat perintah shutdown hook dipanggil, maka shutdown hook dapat berhenti beroperasi tanpa menyelesaikan eksekusi perintahnya.
Hal ini sama seperti kondisi khusus yang telah dijelaskan sebelumnya. Meskipun shutdown hook telah dijalankan perintahnya, bukan tidak mungkin proses eksekusi shutdown hook dapat terhenti ditengah jalan seperti ketika kondisi operating system yang mati atau berhenti beroperasi. Untuk kasus ini, O/S akan menunggu proses dimatikan untuk mengetahui jumlah waktu spesifik ketika SIGTERM dijalankan. Namun, jika proses belum dimatikan sesuai batas waktu yang diberikan, maka O/S akan mematikan proses secara paksa dengan mengeluarkan perintah SIGTERM (atau counterparts pada Windows). Jadi, kondisi ini mungkin saja terjadi jika perintah shutdown hook mati ketika perintah baru setengah jalan untuk dieksekusi.
Penting untuk memerhatikan bahwa perintah shutdown hook harus dibuat dengan hati-hati, memastikan agar perintah shutdown hook dapat dieksekusi secara cepat dan tidak menyebabkan situasi deadlock. Dan juga, JavaDoc khususnya mengingatkan bahwa perintah tersebut seharusnya tidak dijalankan pada bagian program yang membutuhkan proses kalkulasi panjang atau saat proses menunggu input I/O.
tiga, Aplikasi bisa memiliki lebih dari satu perintah shutdown hook, namun tidak dijamin apakah semua perintah dapat dieksekusi.
Method addShutdownHook dapat di-register lebih dari satu method pada aplikasi. Hanya saja tidak bisa dijamin apakah semua perintah tersebut dapat dieksekusi oleh JVM. JVM hanya bisa mengeksekusi shutdown hook dalam perintah arbiter. Lebih dari itu, JVM mungkin akan mengeksekusi semua perintah shutdown hook secara bersamaan.
empat, Tidak bisa membuat shotdown hook dalam shutdown hook.
Hanya ada satu rangkaian eksekusi shutdown hook pada JVM, tidak diizinkan menambahkan lebih dari satu perintah shutdown hook. Jika terdapat lebih dari satu shutdown hook maka JVM akan menganggapnya sebagai IllegalStateException.
lima, Ketika perintah shutdown hook dijalankan, perintah tersebut hanya bisa dihentikan dengan Runtime.halt().
Ketika rangkaian perintah shutdown hook telah dijalankan, hanya Runtime.halt() yang dapat menghentikan proses eksekusi secara paksa pada JVM dari rangkaian perintah eksekusi, kecuali ada faktor eksternal seperti SIGKILL. Artinya, pemanggilan perintah System.exit() di dalam shutdown hook tidak akan berfungsi. Hanya saja, jika pemanggilan System.exit() dilakukan dalam perintah shutdown hook, kemungkinan VM akan mengalami kemacetan dan terpaksa harus dimatikan secara paksa.
enam, Penggunaan shutdown hook memerlukan persyaratan izin keamanan.
Jika menggunakan Java Securityy managers, maka penambahan atau penghapusan perintah shutdown hook memerlukan izin runtime. Jika menghubungkan method tersebut tanpa melakukan permintaan izin pada security manager, maka method tersebut akan menghasilkan SecurityException.
Elfan mauludi
JVM Shutdown Hook Pada Bahasa Pemrograman Java
Perbedaan Antara JDK JRE dan JVM Pada Bahasa Pemrograman Java
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:
satu, Spesifikasi, dimana JVM bekerja secara spesifik. Tetapi implementasi penyedia bersifat independent dalam pemilihan algoritma. Implementasi JVM disediakan oleh Sun dan perusahaan lainnya.
dua, Implementasi, adalah program komputer yang mempertemukan antara kebutuhan dari JVM terhadap spesifikasinya.
tiga, 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 tahu disparitas ketiganya perhatikan diagram pada gambar 1.
![]() |
| Gambar 1 perbedaan antara JDK, JRE, dan JVM |
asal : geekforgeek.Org
JDK - Java Development Kit menyediakan lingkungan pengembangan dan eksekusi program Java. JDK adalah perangkat atau paket yang didalamnya terdapat :
satu, Perangkat Pengembangan (Development Tools), yang menyediakan lingkungan pengembangan untuk program Java.
dua, JRE, berfungsi untuk mengeksekusi program Java.
catatan : JDK hanya dipergunakan oleh para pengembang Java.
JRE - Java Runtime Environment adalah paket instalasi yang hanya menyediakan lingkungan untuk untuk menjalankan program Java atau aplikasi. JRE hanya digunakan oleh mereka 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 .
Bagaimana Cara JRE dan JDK bekerja?
Apa yg terdapat didalam JRE?
JRE terdiri berdasarkan beberapa komponen yaitu:
satu, Teknologi Deployment , termasuk didalamnya deployment, Java Web Start, dan Java Plug-in.
dua, Perangkat Pengguna Interface , termasuk didalamnya Abstract Window Toolkit (AWT), Swing, Java 2D, Accessibility, Image I/O, Print Service, Sound, drag and drop (DnD), dan method input.
tiga, 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.
empat, Pustaka (libraries) lainnya, seperti termasuk diantaranya international support, input/output (I/O), Java Native Interface (JNI), Math, Networking, Override Mechanism, Security, Serialization, dan Java for XML Processing (XML JAXP).
lima, basis pustaka lang and util , didalamnya termasuk lang and util, management, versioning, zip, instrument, reflection, Collections, Concurrency Utilities, Java Archive (JAR), Logging, Prerefences API, Ref Objects, dan Regular Expressions.
enam, Java Virtual Machine (JVM), termasuk didalamnya Java HotSpot dan Server Virtual Machines.
Bagaimana cara JRE bekerja?
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 termin kompilasi acara Java |
asal : geekforgeek.Org
Aktivitas yang terjadi pada saat runtime merupakan menjadi berikut :
class loader
Class 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 Verivier
JVM 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 pointer. Byte Code Verfier memastikan semua kode mengikuti aturan dari spesifikasi JVM dan tidak melanggar integritas sistem seperti diperlihatkan pada gambar 3.
![]() |
| Gambar 3 runtime proses |
asal : geekforgeek.Org
Interpreter
Saat 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 tahap kompilasi dan runtime |
asal : geekforgeek.Org
Untuk bisa lebih memahami interaksi antara JDK & JRE perhatikan gambar 5 ini dia.
![]() |
| Gambar 5 interaksi JDK & JRE |
asal : geekforgeek.Org
Bagaimanakah cara JVM bekerja?
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 libraries atau sumber pustaka untuk program yang terdapat pada JDK.
Elfan mauludi
Perbedaan Antara JDK JRE & JVM Pada Bahasa Pemrograman Java
Apakah JVM Menciptakan Objek dari Main Class?
Perhatikan program berikut ini:
Apakah JVM menciptakan objek menurut group main?
Jawabannya adalah tidak, alasannya adalah main() static pada Java fungsinya adalah untuk memastikan main() dapat dipanggil tanpa menggunakan instance apapun. Untuk menguji hal yang sama, perhatikan contoh program berikut ini.
Setelah mengetahui bahwa objek tidak bisa diciptakan pada abstract class, maka fungsi objek main() pada program Java tidak diciptakan oleh JVM.
Elfan mauludi
Apakah JVM Menciptakan Objek menurut Main Class?
Kenapa Java Platform Berdiri Secara Independent?
Makna dari platform Java yang independent adalah source code dapat dijalankan pada semua jenis operating system. Sebuah program yang diketik menggunakan bahasa pemrograman atau bahasa yang dapat dipahami manusia adalah bahasa yang didalamnya mengandung kata, ungkapan, dan lain sebagainya. Namun demikian, bahasa yang dibuat oleh manusia tersebut tidaklah dapat dipahami oleh mesin. Agar source code yang dipahami oleh mesin, bahasa tersebut haruslah diterjemahkan ke dalam bahasa mesin atau machine level language. Compiler berperan dalam menerjemahkan source code ke dalam bahasa mesin. Kode yang dapat dieksekusi ini dapat berupa urutan instruksi mesin yang dapat dieksekusi oleh CPU secara langsung, atau mungkin merupakan representasi perantara yang ditafsirkan oleh mesin virtual. Java mengenal representasi perantara ini dengan nama Java Byte Code.
Tahapan proses hukuman acara Java:
satu, dimanapun program Java dibuat, proses kompilasi akan dilakukan oleh Javac.
dua, Hasil kompilasi dari Javac adalah .class file atau bytecode dan bukan machine native code (tidak seperti pada compiler C).
tiga, Bytecode yang telah di-generate hasilnya bukanlah kode yang sudah siap dieksekusi (dijalankan). Yang menjalankan program yang telah di-generate adalah interpreter atau JVM.
empat, Hasil dari program yang telah dijalankan adalah berupa output seperti diperlihatkan pada gambar 1.
![]() |
| Gambar 1 termin mengubahan bahasa acara ke bahasa mesin |
asal : geeksforgeeks.Org
Pada bahasa pemrograman C atau C++ compiler generate program .exe untuk jenis OS tertentu atau dependent. Ketika program yang telah dikompilasi pada satu OS tertentu dijalankan pada OS jenis lain, maka program tersebut tidak akan berjalan, dengan kata lain hasil dari kompilasi hanya bisa berjalan hanya pada satu jenis OS tertentu.
Java adalah platform yang independent namun JVM adalah platform yang dependent
Poin utama pada paragraf ini adalah proses kerja JVM bergantung pada jenis sistem operasi (Operating System). Ketika menjalankan JVM pada Mac OX maka untuk dapat menjalankan JVM pada jenis OS yang lain seperti Windows maka dibutuhkan jenis JVM yang lain pula. Hal ini bisa dibuktikan dengan cara melakukan download JVM untuk Mac OS dan hasil download tersebut di instal pada OS Windows.
Point Penting :
satu, Bahasa pemrograman Java yang berfungsi membuat platform independent adalah Bytecode.
dua, Kemampun platform independent yang dimiliki Java menambah fitur kemampuan yang dimiliki oleh bahasa pemrograman Java yang disebut dengan portabilitas. Setiap sistem memiliki jenis JVM nya masing-masing yang sudah terinstal otomatis ketika JDK diinstal pada sistem komputer tersebut. Setiap OS memiliki JVM terpisah yang mampu membaca .class file atau byte code.
tiga, Hal terakhir yang perlu diperhatikan adalah meskipun Java adalah platform bahasa pemrograman yang bersifat independent, tetapi JVM adalah platform yang dependent .
Elfan mauludi
Kenapa Java Platform Berdiri Secara Independent?
Mitos Nama Kelas dan Nama File Pada Java
Mitos nama file dan nama class pada Java
Pada materi sistem penamaan pada Java diberitahukan bahwa "nama class dan nama file harus sama". Ketika aturan ini dilanggar maka pesan error akan muncul seperti pada program seperti contoh berikut.
Namun mitos tersebut sanggup dilanggar misalnya model program ini dia.
Mitos, nama class dan nama file harus ditulis sama pada bahasa pemrograman Java hanya jika class dideklarasikan dengan tipe public seperti diperlihatkan pada gambar 1.
![]() |
| Gambar 1 nama class dan nama file |
sumber : geeksforgeeks.Org
Sekarang file .class berikut ini dapat dieksekusi. Dengan beberapa fitur keajaiban pun dapat terjadi pada eksekusi program berikut. Sangat mungkin untuk memiliki beberapa main class dalam satu file Java. Untuk kepentingan debug pendekatan seperti ini bisa digunakan. Setiap class dapat dieksekusi secara terpisah untuk menguji fungsi class masing-masing dengan persyaratan bahwa konsep inheritence tidak dipergunakan pada program ini. Namun secara umum akan lebih aman jika mengikuti mitos yang sudah ada.
Contoh program :
Ketika kode program diatas di kompilasi maka akan menghasilkan dua .class file ForGeeks.class dan Geekstest.class, dan karena kedua class memiliki main() method yang berbeda, maka kedua class tersebut bisa dijalankan secara terpisah.
Ketika java ForGeeks dieksekusi maka output yang dihasilkan adalah For Geeks classs.
ketika java GeeksTest dieksekusi maka output yang dihasilkan adalah Geeks Test class.
Elfan mauludi
Mitos Nama Kelas dan Nama File Pada Java
JDBC Drivers
Java Database Connectivity (JDBC) adalah program aplikasi interface (API) untuk pemrograman bahasa Java, yang mendefinisikan bagaimana klien dapat mengakses berbagai tabulasi data, khususnya relational database. JDBC adalah bagian dari platform edisi standar dari perusahaan Oracle. JDBC berperan sebagai 'inteface layer tengah' antara aplikasi dan database.
JDBC class sudah terdapat pada Java Package java.sql dan javax.sql. JDBC membantu pembuatan aplikasi Java dalam hal pengaturan tiga jenis aktivitas:
satu, menghubungkan kode program ke database.
dua, mengirim perintah query dan update statement ke database.
tiga, mengambil dan memproses hasil yang diterima dari database sebagai tanggapan dari query yang dikirimkan seperti diperlihatkan pada gambar 1.
![]() |
| Gambar 1 JDBC driver |
asal : geeksforgeeks.Org
JDBC adalah bahasa pemrograman berbasis client-side, artinya JDBC terinstal pada aplikasi klien bukan pada aplikasi server. JDBC mengkonversi perintah dari program Java menuju protokol yang dapat dipahami oleh DBMS (Databse Management System). Ada empat tipe JDBC driver, yaitu;
Driver tipe 1 = JDBC-ODBC bridge driver
Driver tipe 2 = Native-API driver
Driver tipe 3 = Network Protocol driver
Driver tipe 4 = Thin driver
Driver tipe 1
Driver tipe 1 atau JDBC-ODBC bridge driver menggunakan ODBC driver untuk melakukan koneksi ke database. JDBC-ODBC bridge driver mengkonversi method calls JDBC ke fungsi calls ODBC. Driver tipe 1 juga disebut dengan Universal driver karena dapat digunakan untuk koneksi segala jenis database.
satu, Sebagai driver umum driver tipe 1 digunakan untuk berinteraksi dengan berbagai jenis database, hanya saja data yang dikirim melalui driver jenis ini tidak terlalu aman.
dua, ODBC bridge driver perlu diinstal pada mesin klien.
tiga, Driver tipe 1 ini tidak dibuat dengan bahasa pemrograman Java, inilah alasan mengapa driver jenis ini bukanlah driver yang portable.
Driver tipe 2
Native-API driver digunakan oleh client-side libraries dari database. Driver ini mengkonversi method calls JDBC ke native calls dari API database. Jika ingin melakukan hubungan dengan database lain, maka driver membutuhkan local API, dengan kata lain proses transfer data dengan driver tipe 2 lebih aman dari driver tipe 1.
satu, Driver jenis ini harus di-instal terpisah pada mesin klien individu.
dua, Vendor library klien perlu di-instal pada mesin klien.
tiga, Driver tipe 2 tidak dibuat dengan bahasa pemrograman Java, sehingga driver tipe ini bersifat portable.
Driver tipe 3
Network Protocol driver menggunakan middleware atau perangkat server aplikasi untuk mengkonversi JDBC calls secara langsung ataupun tidak langsung menuju ke vendor-specific database protocol. Disini, semua jenis driver koneksi database ditampilkan pada single server, atau dengan kata lain membutuhkan instalasi client-side.
satu, Driver tipe 3 dibuat secara penuh menggunakan bahasa pemrograman Java dan merupakan jenis driver protable.
dua, Tidak membutuhkan client side library karena server aplikasi dapat melakukan banyak tugas seperti audit, penyeimbangan beban, logging, dan lain sebagainya.
Driver tipe 4
Driver tipe 4 juga dikenal dengan istilah native protocol driver. Driver ini berinteraksi secara langsung dengan database. Driver tipe ini tidak membutuhkan database library apapun, karena itu driver ini juga dikenal dengan istilah Thin Driver (driver ringan).
satu, Driver ini tidak membutuhkan native library dan middleware server apapun. Jadi, tidak perlu ada instalasi client-side atau server-side.
dua, Driver ini dibuat secara penuh dengan bahasa pemrograman Java, dan bersifat portable.
Driver jenis apa yang digunakan waktu?
satu, Jika ingin mengakses database dengan satu tipe saja seperti Oracle, Sybase, atau IBM, maka driver yang digunakan adalah driver tipe 4.
dua, Jika ingin mengakses lebih dari satu tipe database pada saat yang bersamaan, maka driver yang digunakan adalah driver tipe 3.
tiga, Driver tipe 2 sangat berguna pada situasi, dimana driver tipe 3 dan tipe 4 belum tersedia pada database.
empat, Driver tipe 1 tidak disarankan sebagai driver yang digunakan pada level deployment. Driver tipe 1 lebih sering digunakan sebagai driver untuk pengembangan atau pengujian aplikasi.
Elfan mauludi
JDBC Drivers
Bagaimana Cara Menjalankan Class File pada Direktori yang Berbeda?
Pada arikel ini akan dipelajari cara menggunakan project utilities, classes, dan anggotanya. Sebelum mulainya pelajari beberapa keyword berikut terlebih dahulu.
Classpath
Classpath adalah lokasi dari JVM saat memulai eksekusi program. Sama hal nya dengan perilaku loading dinamis klasik, ketika progam Java dieksekusi JVM akan mencari dan melakukan loading class. Classpath memberi tahu JVM dimana lokasi file system untuk mendefinisikan file class. Variabel dan method yang dapat diakses dan tersedia di classpath disebut sebagai classpath variabel. secara otomatis JVM selalu mengakses classpath class ketika mengeksekusi program. JVM selalu menuju bagian dalam dariclasspath untuk mencari classes atau src.
JVM mencari dan melakukan loading class dalam urutan berikut ini:
satu, bootstrap class: class yang fundamental bagi Java Platform (Membandingkan mana yang berfungsi lebih penting antara public class dari Java Class Library dan Private Class).
dua, extension class: package yang berada pada direktori extensi dari JRE atau JDK, jre/lib/ext/ user-defined packaged,dan libraries.
Menggunakan import keyword
Import keyword digunakan pada Java untuk me-ngimport class dari classpath project saat ini. Import class juga bisa dilakukan dari packcages yang berbeda tetapi dari classpath yang sama. Hal yang perlu diingat bahwa package dari class dimulai dari classpath. Jika program memiliki struktur direktori seperti berikut:
a > b > c > d > class A
dan classpath dimulai dari c, maka class program harus berada pada package d bukan pada a, b, c.
Menggunakan classpath -cp option
Import keyword juga bisa melakukan import class dari classpath saat ini, sedangkan importclasspath yang berada di luar class tidak bisa digunakan. Misal, telah dibuat sebuah src dalam sebuah file Java yang menggunakan beberapa utility class, dimana file Java tersebut juga dibutuhkan pada pekerjaan project yang kedua. Maka pada situasi ini, import keyword tidak berfungsi karena project pertama berada pada classpath yang berbeda. Untuk menyelesaikan permasalahan tersebut bisa menggunakan solusi -cp command ketika melakukan kompilasi dan eksekusi program.
Lanjutkan dengan contoh ini dia. Ciptakan struktur direktori misalnya dalam gambar 1.
![]() |
| Gambar 1 direktori src & classes |
asal : geeksforgeeks.Org
Dari gambar 1 sekarang dimiliki dua buah project Java yang mengandung src dan classes. Pada direktori src, terdapat .java file yang berisi kode program dan pada direktori classes terdapat .class file yang di-generate setelah proses kompilasi program.
Berikut langkah-langkah yang dilakukan untuk menjalankan class Java yang terdapat pada direktori yang berbeda.
step 1 (ciptakan utility class): ciptakan A.java pada direktori src beserta isi kode programnya.
/* java utility class */
public group A
public void test()
System.Out.Println("Test() method of group A");
step 2 (Kompilasi utility class): Buka terminal (cmd pada Windows) dimana lokasi proj1 berada dan eksekusi program dengan perintah berikut:
cp_tutorial/proj1>cd src
cp_tutorial/proj1/src>javac -d ../classes A.java
-d Option: digunakan untuk menyimpan output menuju direktori yang berbeda. Jika tidak menggunakan perintah ini (-d) maka class file akan diciptakan pada direktori src. Namun, ini merupakan hal yang baik karena bisa tetap menjaga kode program dan class file terpisah setelah perintah -d menyediakan lokasi dari direktori class file untuk disimpan.
catatan: pada tahap ini, jika masih ada hasil kompilasi program error maka segera diselesaikan terlebih dahulu.
step 3 (Perika apakah A.java telah berhasil dikompilasi): periksa pada direktori class proj1 apakah class file telah diciptakan atau belum. Biasanya proses tersebut telah diciptakan jika pada saat kompilasi program telah berjalan dengan sukses.
step 4 (Buat class main dan lakukan kompilasi): Selanjutnya pindah kebagian direktori proj2. Pada bagian ini juga terdapat dua direktori untuk alasan yang sama seperti sebelumnya. Ciptakan MainClass.java pada direktori src seperti kode program berikut dan lakukan kompilasi program setelahnya.
Hasilnya:
cp_tutorial/proj2>cd src
cp_tutorial/proj2/src>javac -d ../classes MainClass.java
MainClass.Java:4: error: cannot find symbol
A a1 = new A();
^
symbol: class A
location: class MainClass
MainClass.Java:4: error: cannot find symbol
A a1 = new A();
^
symbol: class A
location: class MainClass
dua errors
Seperti yang diperhatikan pada hasil sebelumnya, kompilasi memberikan error pada hasil akhir program karena simbol A tidak ditemukan pada project. Jika ingin menggunakan classes A dari proj1 maka dapat menggunakan perintah -cp option untuk memasukkan kode program proj1 seperti diperlihatkan pada step 5.
Step 5 (Kompilasi dengan perintah -cp option):
cp_tutorial/proj2>cd src
cp_tutorial/proj2/src>javac -d ../classes -cp
../../proj1/classes MainClass.Java
Sekarang kode program dapat dikompilasi dengan sukses dan MainClass.class dapat diciptakan didalam direktori classes yang terdapat pada classpath dan didalamnya terdapat path (jalur) yang diberikan beserta classpath saat ini, dan ketika JVM sudah menemukan simbol A di dalam class maka proses kompilasi berjalan sukses.
Step 6 (Eksekusi program): Coba lakukan eksekusi program.
Ikuti perintah (command) berikut untuk menjalankan program.
cp_tutorial/proj2/src>cd ../classes
cp_tutorial/proj2/classes>java MainClass
Exception in thread "maindanquot; java.Lang.NoClassDefFoundError: A
at MainClass.Main(MainClass.Java:4)
Caused by: java.Lang.ClassNotFoundException: A
at java.Net.URLClassLoader$1.Run(Unknown Source)
at java.Net.URLClassLoader$1.Run(Unknown Source)
at java.Security.AccessController.DoPrivileged(Native Method)
at java.Net.URLClassLoader.FindClass(Unknown Source)
at java.Lang.ClassLoader.LoadClass(Unknown Source)
at sun.Misc.Launcher$AppClassLoader.LoadClass(Unknown Source)
at java.Lang.ClassLoader.LoadClass(Unknown Source)
... 1 more
Setelah program dijalankan ternyata masih didapati pesan error , hal ini karena JVM memberitahukan A path hanya pada waktu kompilasi saja. Ketika MainClasss dieksekusi, class tersebut tidak mengetahui bahwa ada class A lain pada project lainnya.
Step 7 (Eksekusi program menggunakan -cp option): Siapkan kembali path dari class A.
cp_tutorial/proj2/classes>java -cp ../../proj1/classes; MainClass
In main group
Test() method of class A
Sekarang acara telah berhasil dijalankan.
catatan: jangan lupa menambahkan simbol semicolon (;) pada bagian akhir dari path yang dibuat.
Bagaimana menjalankan program Java dengan Jar pada classpath?
Program juga bisa menggunakan jar file sebagai pengganti dari class file pada classpath yang berbeda. Tahapan proses yang dilakukan adalah sama dengan mengganti folder menggunakan jar dan class name menggunakan jar name. Ibarkatkan telah dimiliki sebuah direktori jar file lib, setelah itu lakukan kompilasi program.
cp_tutorial/proj2/src>javac -d ../classes -cp ../../proj1/lib MainClass.java
kemudian eksekusi acara tadi
cp_tutorial/proj2/classes>java -cp ../../proj1/lib; MainClass
elfan mauludi
Bagaimana Cara Menjalankan Class File dalam Direktori yang Berbeda?
Apakah Main Method Harus Ada Pada Program Java?
Apakah main method wajib (atau sunnah muakad) pada program Java?
Jawaban dari pertanyaan ini tergantung pada versi Java yang dipergunakan. Jika masih menggunakan JDK 5, maka main method tidak wajib (berarti sunnah :D) terdapat dalam program Java.
satu, Programmer bisa menulis kode program secara penuh dalam static block dan proramnya dapat berjalan normal.
dua, Static block akan dieksekusi pertama, baru setelah itu class akan dieksekusi, sebelum mainmethoddipanggil, dan karena hal ini, sebelum main() method dipanggil, yang dideklarasikan terlebih dahulu adalahmethod static.Hal inilah yang menyebabkan pemanggilan (call) main method tidak terlalu dibutuhkan pada proses menjalankan program dengan JDK 5.
Namun demikian, pada JDK 6 kemunculan main method adalah wajib. Jika program yang dijalankan tidak mengandung main() method maka runtime akan memberiken error atau "main method not found in the class". Program yang dibuat pada JDK 6 yang berhasil dikomilasi tidak akan bisa dijalankan jika tidak memiliki main() method seperti contoh program berikut ini;
elfan mauludi
Apakah Main Method Harus Ada Pada Program Java?
Menggunakan Nama Class yang Telah Ditetapkan pada Java Sebagai Nama Variabel atau Class dari program Java
Penggunaan nama kelas yang telah ditetapkan dalam Bahasa pemrograman Java segagai class atau nama variabel program jawabannya adalah boleh. Namun, berdasarkan aturan dasar Java Spesification Language, penamaan pada Java tidak bisa menggunakan keyword (seperti static void dll) sebagai nama class, variabel, ataupun juga nama folder dari package.
Penggunaan nama class yang telah ditetapkan pada Java tidak akan menyebabkan compiler error asalkan tidak menggunakan keyword Java.
Berikut beberapa kesalahan pada pendeklarasian variabel dalam Java:
boolean break = false; /* tidak diperbolehkan menggunakan break karena break adalah keyword Java */
int boolean = 8; /* tidak diperbolehkan menggunakan boolean karena boolean adalah keyword Java */
boolean goto = false; /* tidak diperbolehkan menggunakan goto karena boolean adalah keyword Java */
String final = "hi"; /* tidak diperbolehkan menggunakan final karena boolean adalah keyword Java */
Menggunakan nama class yang telah ditetapkan sebagai nama class pada program.
Pertanyaan: Apakah nama kelas yang telah ditetapkan pada Java dapat digunakan sebagai nama kelas pada program yang dibuat oleh pengembang?
Jawab: Bisa, melalui contoh berikut ini akan dijelaskan bagaimana menggunakan keyword number sebagai nama class program.
Menggunakan String sebagai class pada program.
Jika program tersebut dijalankan maka akan didapati pesan error sebagai berikut:
Error: Main method not found in group String, please define
the main method as:
public static void main(String[] args)
Penjelasan: Hal ini terjadi karena Main Thread berusaha menemukan main method() menggunakan argumen array String class yang telah ditetapkan. Hanya saja, yang didapati pada main method() String class digunakan sebagai nama variabel program. Ketika Main thread mencari nama class, Main thread akan mencoba mencari nama tersebut satu per satu. Pertama, Main thread akan melihat program yang dibuat, kemudian package, jika masih tidak ditemukan maka JVM akan menelusuri prinsip hirarki delegasi untuk me-loading class tersebut. Hingga akhirnya akan didapati pesan error dari hasil pencarian tersebut.
Untuk menjalankan program berikut, dapat disediakan jalur penuh dari String class java.lang.Sting .
Menggunakan nama group yang telah ditetapkan sebagai nama class menurut variabel.
Pertanyaan: Bisakah nama variabel atau nama class yang telah ditetapkan pada Java digunakan sebagai nama class pada program?
Jawab: Bisa.
elfan mauludi
Menggunakan Nama Class yg Telah Ditetapkan pada Java Sebagai Nama Variabel atau Class dari acara Java
Pengantar Microservices
Microservices adalah sistem terdistibusi yang berukuran kecil dan longgar. Arsitektur microservices berubah menjadi solusi untuk tantangan skalabilitas dan inovasi terhadap arsitektur monolith yang pada dasarnya merupakan bentuk aplikasi arsitektur yang berukuran besar (lebih dari 100k baris kode program). Microservices memungkinkan pengembang untuk membuat aplikasi dan menguraikannya atau mengubahnya menjadi partisi komponen kecil yang mudah diatur dengan beban yang didefinisikan secara sempit.
Alasan Menggunakan Microservices, karena :
Aplikasi monolith, mempunyai beberapa kekurangan pada pengembangannya, yaitu;
satu, Untuk aplikasi berukuran besar, kompleksitas pengembangan aplikasi sangat sulit untuk dipahami dan juga dalam hal pengubahan kode program yang tidak bisa dilakukan secara cepat dan akurat, bahkan terkadang pengembangan kode program menjadi sulit untuk di-manage.
dua, Aplikasi membutuhkan pengujian yang ekstensif untuk memastikan dampak dari perubahan pengembangan aplikasi.
tiga, Aplikasi membutuhkan pembangunan dan deploy ulang walaupun hanya untuk perubahan kecil.
empat, Aplikasi yang berukuran besar memperlambat waktu start-up.
Keunggulan Microservices
satu, Ukuran modul yang kecil, aplikasi dipecah menjadi modul-modul berukuran kecil yang memudahkan pengembangan dan perawatan aplikasi.
dua, Adaptasi proses yang mudah, dengan menggunakan microservices, teknologi baru dan adaptasi proses menjadi lebih mudah. Teknologi bisa diuji dengan menggunakan microservices yang digunakan saat ini.
tiga, Scaling yang independent, setiap microservices dapat melakukan scale secara independent melalui X-axis scaling dan Z-axisscaling, sesuai dengan nilai kebutuhan.
empat, Tidak mudah terpengaruh, aplikasi berukuran besar tidak terpengaruh oleh kegagalan single modul.
lima, DURS, setiap aplikasi dapat melakukan DURS (development, updates, replaces, dan scaled).
Kendala Microsevices
satu, Konfigurasi manajemen, proses konfigurasi dan pengawasan merupakan permasalahan yang rumit dalam microservices. Microservices perlu mempertahankan konfigurasi dari ratusan komponen diberbagai lingkungan pengembangan.
dua, Debugging, Menemukan error pada sistem adalah proses yang sulit. Pengembang mungkin harus melihat ke dalam berbagai fasilitas pelayanan atau services pada berbagai komponen yang berbeda. Dashboard dan logging terpusat adalah komponen penting untuk membuat proses pencarian debug menjadi lebih mudah.
tiga, Otomatisasi, karena terdapat begitu banyak komponen kecil sebagai ganti dari arsitektur monolith, maka semuanya harus dipastikan dapat berjalan secara otomatis baik untuk builds, deployment, monitoring, dan lain sebagainya.
empat, Testing, membutuhkan upaya yang lebih besar untuk pengujian dari ujung ke ujung sistem karena operasinal sistem yang bekerja independent.
Microservices framework untuk bahasa pemrograman Java
satu, Spring Boot, framework Spring Boot merupakan framework Java terbaik yang dapat bekerja pada bahasa tingkat tinggi untuk Inversion of Control, Aspect Oriented Programming, dan lain sebagainya.
dua, Dropwizard, adalah framework yang menjaga segalanya seimbang, libraries usang dari ekosistem Java diubah menjadi sederhana, package ringan yang memungkinkan untul lebih fokus dalam pengembangan.
tiga, Restlet, membantu pengembang Java membangun web API yang lebih baik sesuai dengan gaya arsitektur REST.
empat, Spark, adalah mikro framework yang digunakan untuk menciptakan aplikasi web pada Kotlin dan Java 8 dengan beban kerja minimal.
Beberapa framework lain yang bisa menjadi pertimbangan bagi pengembang adalah Ninja Web Framework, Play Framework, RestExpress, dan Restx Framework.
Elfan mauludi
Pengantar Microservices
Menjadi Seorang Programmer Java yang Handal
Bagaimana cara menjadi seorang programmer Java yang handal?
Java adalah bahasa pemrograman yang sangat sukses dan terkenal. Bahasa Java sangat mudah diandalkan dan digunakan secara luas dari masa ke masa, yang nyatanya dapat dilihat pada web dan aplikasi mobile. Ada banyak manfaat dari Java pada saat ini dan para programmer Java pun banyak direkrut pada bidang kerja teknologi informasi tersebut. Hal-hal yang dapat dilakukan untuk menjadi seorang programmer Java yang handal adalah sebagai berikut:
Pahami dasar berdasarkan pemrograman Java secara jelas
Cari atau temukan sumber belajar yang baik dan jadikan itu sebagai bahan belajar dan perkuat kemampuan dasar (fundamental) dari pemrograman Java. Pehaman dasar dari pemrograman akan membantu menyusun keahlian pemrograman Java. Daripada tidak mempelajari sesuatu yang tidak kamu pahami, lebih baik minta bantuan dan pahami penyelesaiannya secara logis. Sabar, jangan berambisi untuk menyelesaikan segalanya secara cepat, lakukan secara perlahan dan kemudian mulai meningkatkan kecepatan belajar. Beberapa hal yang perlu dipelajari untuk dapat menjadi seorang programmer Java yang handal adalah sebagai berikut.
satu, Java 8
dua, Spring framework (Spring Boot)
tiga, Unit testing
empat, APIs dan libraries
lima, JVM internal
enam, Perancangan pola
tujuh, Perangkat pengembangan
delapan, Kotlin
sembilan, Microservices
sepuluh, pahami penggunaan dari IDE dengan lebih baik lagi.
Membaca berbagai sumber belajar seperti framerwork-framework source code dan lain sebagainya
Selalu ikuti perkembangan terkini tentang teknologi Java dengan bergabung melalui forum-forum atau sumber berita terbaru. Jangan pernah berhenti membaca. Selalu pantau berkembangan terbaru melalui berbagai sumber informasi. Hal ini akan membantu menjaga rasa ingin tahu terhadap program Java. Bisa juga dengan mempelajari berbagai spesifikasi seperti JSR, API document, totorial-tutorial, dan lainnya. Membaca menciptakan gambaran atau fondasi dasar terhadap program-program yang ingin dikembangkan.
Berlatih coding
Implementasikan apa yang telah dipelajari. Berdiskusi dalam sebuah grup membantu programmer menemukan sudut pandang baru terhadap topik yang sedang dipelajari.
Ikuti beberapa forum terkait Java teknologi
Ketika baru mulai mempelajari teknologi Java hal pertama yang baik untuk dilakukan adalah mengikuti forum atau sumber informasi terkait teknologi tersebut. Kendala apapun yang dihadapi programmer saat ini seseorang kemungkinan besar telah menghadapinya dan sekaligus telah menemukan solusinya.
Kerjakan sebuah project
Salah satu cara lain untuk meningkatkan kemampuan coding adalah dengan mengerjakan sebuah project. Coba temukan sebuah project pada forum online untuk dikerjakan. Kerjakan dan dapatkan bayaran dari hasil pekerjaan tersebut.
Dedikasikan dirimu dalam bidang yang ditekuni saat ini
Seseorang bisa menjadi programmer Java yang handal apabila memiliki dedikasi yang tinggi terhadap apa yang ditekuninya. Jangan hanya melakukan hal-hal yang bersifat umum tapi lakukan secara fokus dan konsentrasi penuh terhadap apa yang dilakukan terkait teknologi Java.
Terakhir, Tidak ada jaminan dengan mengikuti beberapa saran ini seseorang dapat menjadi programmer Java yang handal, hanya saja dengan terus berusaha, kemampuan seseorang akan terus meningkat seiring berjalan waktu.
~Anda tidak akan pernah tahu kapan anda belajar bersepeda, yg anda memahami adalah anda sudah sanggup persepeda~
elfan mauludi
Menjadi Seorang Programmer Java yang Handal
Java Identifier
Identifier dalam bahasa pemrograman digunakan untuk identifikasi fungsi program. Dalam bahasa Java, identifier dapat digunakan sebagai nama class, nama method, nama variabel, atau label. Seperti contoh:
public group Test
public static void main(String[] args)
int a = 20;
Pada kode Java sebelumnya, dimiliki 5 identifier:
satu, Test: nama class.
dua, main: nama method.
tiga, String: nama class yang telah ditetapkan oleh Java.
empat, args: nama variabel.
lima, a: nama variabel.
Aturan Pendefinisian Identifier Java
Pendefinisian identifier memiliki beberapa aturan. Aturan tersebut wajib diikuti, jika tidak akan didapati pesan error pada program. Aturan ini juga berlaku untuk bahasa pemrograman lain seperti C atau C++.
satu, Hanya karakter yang dapat digunakan sebagai identifier yang semuanya adalah alphanumeric karakter ([A-Z], [a-z], [0-9], tanda dollar [$], dan underscore[ _ ]). Contoh; "nerd@" adalah contoh yang salah untuk identifier karena mengandung karakter @ pada kumpulan karakter.
dua, Identifier tidak boleh diawali dengan karakter angka ([0-9]). Contoh; "123nerdsss" adalah contoh yang salah dari identifier karena diawal karakter dimulai dengan angka "1".
tiga, Identifier Java adalah case-sensitive . Artinya: identifier "Haha" berbeda dengan identifier "haha" atau identifier "hohoA" berbeda terhadap "hohoa".
empat, Tidak ada batasan terhadap panjang karakter yang digunakan pada identifier namun untuk lebih bijaksana, biasanya jumlah karakter yang digunakan untuk identifier adalah antara 4-15 karakter saja.
lima, Reserved Word tidak bisa digunakan sebgai identifier. Contoh; "int while = 20" adalah contoh yang salah dari identifier karena while adalah keyword yang telah ditetapkan (kegunaannya) pada Java.
Beberapa contoh identifier yang valid atau benar:
MyVariable
MYVARIABLE
myvariable
x
i
x1
i1
_myvariable
$myvariable
sum_of_array
geeks123
Beberapa contoh identifier yang salah sebagai berikut:
My Variable /* mengandung spasi*/
123geeks /* dimulai menggunakan angka */
a c /* karakter bukan bagian menurut alphanumeric karakter */
variable-dua /* karakter - bukan bagian berdasarkan alphanumeric karakter */
sum_&_difference /* karakter & bukan bagian dari alphanumeric karakter */
Reserved Word
Bahasa pemrograman memiliki beberapa kata yang telah ditetapkan kegunaannya (fungsi) oleh bahasa pemrograman tersebut. Kata-kata tersebut dikenal dengan istilah reserved word. Kata-kata tersebut bisa dibagi menjadi dua kategori yaitu: keyword (50) dan literals (3). Keyword mendefinisikan fungsi dan literal mendefinisikan nilai (value) seperti diperlihatkan pada gambar 1 berikut ini.
![]() |
| Gambar 1 keyword dan literal |
sumber : geeksforgeeks.org
Identifier dapat digunakan sebagai simbol tabulasi dari berbagai fase analisis seperti lexical, syntac, semantic, dan lain sebagainya dari berbagai arsitektur compiler.
catatan: keyword const dan goto adalah bagian dari reserved word, meskipun keyword tersebut tidak digunakan saat ini. Pada penggunaan const, keyword final juga digunakan. Beberapa keyword seperti strictfp tersedia ke dalam versi Java terbaru.
elfan mauludi
Java Identifier






















