Java dalam Satu Kalimat
Java adalah bahasa pemrograman berorientasi objek dan bertipe statis yang di-compile menjadi bytecode dan berjalan di Java Virtual Machine (JVM). Satu keputusan desain itu, yaitu meng-compile ke format perantara yang netral lalu menjalankannya di mesin virtual, adalah alasan program Java yang sama bisa berjalan tanpa diubah di Windows, macOS, Linux, dan lainnya.
Inilah program pertama yang wajib ada. Kamu bisa menjalankannya langsung di sini:
Ada lebih banyak "upacara" di sini dibanding bahasa scripting, dan itu memang disengaja: Java mengutamakan struktur yang eksplisit. Kita akan membedah setiap bagiannya di beberapa halaman berikutnya.
Kenapa JVM Itu Penting
Sebagian besar bahasa yang di-compile mengubah source code langsung menjadi kode mesin untuk satu jenis prosesor dan sistem operasi tertentu. Program yang di-compile untuk Windows tidak akan berjalan di Mac. Java mengambil jalan memutar:
javacmeng-compile source.javamenjadi file.classyang berisi bytecode, yaitu instruksi untuk mesin khayalan, bukan untuk CPU sungguhan mana pun.- JVM untuk platformmu membaca bytecode itu dan mengeksekusinya, sambil menerjemahkannya menjadi instruksi mesin native.
Karena setiap platform punya JVM sendiri tetapi semuanya memahami bytecode yang sama, kamu cukup meng-compile sekali dan menjalankan hasilnya di mana pun ada JVM. Itulah slogan terkenalnya: write once, run anywhere (tulis sekali, jalankan di mana saja).
JVM tidak sekadar menginterpretasi secara buta. Compiler just-in-time (JIT) mengamati kode mana yang paling sering dijalankan, lalu meng-compile bagian-bagian itu menjadi kode native yang sudah dioptimasi, sehingga program Java yang berjalan lama kecepatannya mendekati bahasa yang sepenuhnya di-compile.
Bertipe Statis dan Berorientasi Objek
Dua sifat ini membentuk tampilan dan nuansa kode Java.
Bertipe statis berarti setiap variabel punya tipe yang sudah diketahui saat kompilasi, dan compiler memeriksa tipe-tipemu sebelum program sempat dijalankan:
count akan selalu bertipe int; mengisinya dengan "hello" tidak akan bisa di-compile. Ini menangkap satu jenis kesalahan sekaligus sejak awal, dengan konsekuensi kamu harus mengetik lebih banyak di depan.
Berorientasi objek berarti Java mengatur kode ke dalam class, yaitu cetak biru yang menggabungkan data dengan method yang bekerja pada data itu. Bahkan titik masuk program di atas berada di dalam class Main. Hampir semua yang kamu tulis di Java berada di dalam class.
Kegunaan Java
Java adalah salah satu bahasa yang paling banyak dipakai di dunia. Kamu akan menemukannya di:
- Sistem backend dan enterprise: perbankan, asuransi, layanan web besar, dan apa pun yang harus berjalan andal selama bertahun-tahun.
- Android: bahasa asli platform ini, yang masih menjadi inti runtime Android meski kini berdampingan dengan Kotlin.
- Big data: Hadoop, Spark, Kafka, dan sebagian besar ekosistem data engineering berjalan di JVM.
- Desktop dan embedded: dari IDE (IntelliJ, Eclipse) sampai mesin kasir dan kartu pintar.
Java dikenal karena stabilitas, kompatibilitas dengan versi lama, dan library standar yang sangat luas, bukan karena menjadi bahasa yang paling ringkas. Kode yang ditulis untuk Java bertahun-tahun lalu umumnya masih berjalan sampai sekarang.
Java Bukan JavaScript
Ini perlu ditegaskan karena namanya terus-menerus membingungkan: Java dan JavaScript adalah bahasa yang berbeda dan tidak berhubungan. Keduanya berbagi empat huruf karena alasan pemasaran di masa lalu, dan tidak ada kesamaan lain yang berarti. Java di-compile, bertipe statis, dan berjalan di JVM; JavaScript bertipe dinamis dan berjalan di browser dan Node.js. Mempelajari yang satu tidak mengajarimu yang lain.
Berikutnya: Memasang Java
Untuk menulis dan menjalankan Java di komputermu sendiri, kamu butuh JDK (Java Development Kit), yaitu compiler ditambah JVM ditambah library standar. Halaman berikutnya memandu cara memasangnya dan memastikan semuanya berfungsi.
Pertanyaan yang sering diajukan
Java digunakan untuk apa?
Java menjalankan sistem server dan sistem enterprise berskala besar, aplikasi Android (lewat Android SDK dan runtime yang dipakai bersama Kotlin), alat big data seperti Hadoop dan Spark, serta tak terhitung aplikasi desktop dan embedded. Kekuatannya ada pada stabilitas, library standar yang sangat besar, dan JVM yang menjalankan program hasil compile yang sama di sistem operasi apa pun.
Apakah Java di-compile atau diinterpretasi?
Keduanya. Compiler Java (javac) mengubah source-mu menjadi bytecode yang netral terhadap platform, lalu JVM menjalankan bytecode itu: awalnya menginterpretasikannya, lalu meng-compile bagian yang sering dijalankan menjadi kode mesin native dengan compiler just-in-time (JIT). Jadi Java di-compile menjadi bytecode, lalu diinterpretasi dan di-compile oleh JIT saat runtime.
Apakah Java sama dengan JavaScript?
Tidak. Keduanya bahasa yang tidak berhubungan, yang namanya mirip karena alasan pemasaran di masa lalu. Java adalah bahasa bertipe statis yang di-compile dan berjalan di JVM; JavaScript adalah bahasa bertipe dinamis yang berjalan di browser dan Node.js. Menguasai yang satu tidak berarti kamu menguasai yang lain.