Java adalah bahasa
pemrograman tingkat tinggi yang berorientasi objek dan program java tersusun
dari bagian yang disebut kelas. Kelas terdiri atas metode-metode yang melakukan
pekerjaan dan mengembalikan informasi setelah melakukan tugasnya. Para pemrogram
Java banyak mengambil keuntungan dari kumpulan kelas di pustaka kelas
Java, yang disebut dengan Java Application Programming Interface (API).
Kelas-kelas ini diorganisasikan menjadi sekelompok yang disebut paket (package). Java
API telah menyediakan fungsionalitas yang memadai untuk menciptakan applet dan
aplikasi canggih. Jadi ada dua hal yang harus dipelajari dalam Java, yaitu
mempelajari bahasa Java dan bagaimana mempergunakan kelas pada Java API. Kelas
merupakan satu-satunya cara menyatakan bagian eksekusi program, tidak ada cara
lain. Pada Java program javac untuk mengkompilasi file kode sumber Java menjadi
kelas-kelas bytecode. File kode sumber mempunyai ekstensi *.java.
Kompilator javac menghasilkan file bytecode kelas dengan ekstensi
*.class. Interpreter merupakan modul utama sistem Java yang digunakan aplikasi
Java dan menjalankan program bytecode Java.
Beberapa keunggulan java yaitu java
merupakan bahasa yang sederhana. Java dirancang agar mudah dipelajari dan
digunakan secara efektif. Java tidak menyediakan fitur-fitur rumit bahasa
pemrograman tingkat tinggi, serta banyak pekerjaan pemrograman yang mulanya
harus dilakukan manual, sekarang digantikan dikerjakan Java secara otomatis
seperti dealokasi memori. Bagi pemrogram yang sudah mengenal bahasa C++ akan
cepat belajar susunan bahasa Java namun harus waspada karena mungkin Java
mengambil arah (semantiks) yang berbeda dibanding C++.
Java merupakan bahasa
berorientasi objek (OOP) yaitu cara ampuh dalam pengorganisasian dan
pengembangan perangkat lunak. Pada OOP, program komputer sebagai kelompok objek
yang saling berinteraksi. Deskripsi ringkas OOP adalah mengorganisasikan
program sebagai kumpulan komponen, disebut objek. Objek-objek ini ada secara
independen, mempunyai aturan-aturan berkomunikasi dengan objek lain dan untuk
memerintahkan objek lain guna meminta informasi tertentu atau meminta objek
lain mengerjakan sesuatu. Kelas bertindak sebagai modul sekaligus tipe. Sebagai
tipe maka pada saat jalan, program menciptakan objek-objek yang merupakan instan-instan
kelas. Kelas dapat mewarisi kelas lain. Java tidak mengijinkan pewarisan jamak
namun menyelesaikan kebutuhan pewarisan jamak dengan fasilitas antarmuka yang
lebih elegan.
Seluruh objek diprogram
harus dideklarasikan lebih dulu sebelum digunakan. Ini merupakan keunggulan
Java yaitu Statically Typed. Pemaksaan ini memungkinkan kompilator Java
menentukan dan melaporkan terjadinya pertentangan (ketidakkompatibelan) tipe
yang merupakan barikade awal untuk mencegah kesalahan yang tidak perlu (seperti
mengurangkan variabel bertipe integer dengan variabel bertipe string).
Pencegahan sedini mungkin diharapkan menghasilkan program yang bersih. Kebaikan
lain fitur ini adalah kode program lebih dapat dioptimasi untuk menghasilkan
program berkinerja tinggi.
Java menggunakan model
pengamanan tiga lapis (three-layer security model) untuk melindungi
sistem dari untrusted Java code. Pertama, bytecode verifier membaca bytecode sebelum
dijalankan dan menjamin bytecode memenuhi aturan-aturan dasar bahasa
Java. Kedua, class loader menangani pemuatan kelas Java ke runtime
interpreter. Ketiga, manajer keamanan menangani keamanan tingkat aplikasi
dengan mengendalikan apakah program berhak mengakses sumber daya seperti sistem
file, port jaringan, proses eksternal dan sistem window.
Platform independence adalah
kemampuan program bekerja di sistem operasi yang berbeda. Bahasa Java merupakan
bahasa yang secara sempurna tidak bergantung platform. Tipe variabel Java
mempunyai ukuran sama di semua platform sehingga variabel bertipe integer
berukuran sama tidak peduli dimana program java dikompilasi. Begitu telah
tercipta file .class dengan menggunakan kompilator Java di platform manapun,
maka file .class tersebut dapat dijalankan di platform manapun. Jadi “dimanapun
dibuat, dimanapun dapat dijalankan”. Slogan ini biasa diringkas sebagai Write
Once, Run Anywhere (WORA).
Java termasuk
bahasa Multithreading. Thread adalah untuk menyatakan program
komputer melakukan lebih dari satu tugas di satu waktu yang sama. Java
menyediakan kelas untuk menulis program multithreaded, program mempunyai
lebih dari satu thread eksekusi pada saat yang sama sehingga
memungkinkan program menangani beberapa tugas secara konkuren.
Program Java melakukan garbage
collection yang berarti program tidak perlu menghapus sendiri objek-objek
yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan memori
oleh pemrogram dan mengurangi atau mengeliminasi sumber kesalahan terbesar yang
terdapat di bahasa yang memungkinkan alokasi dinamis.
Java mempunyai mekanisme exception-handling yang
ampuh. Exception-handling menyediakan cara untuk memisahkan antara
bagian penanganan kesalahan dengan bagian kode normal sehingga menuntun ke
struktur kode program yang lebih bersih dan menjadikan aplikasi lebih tegar.
Ketika kesalahan yang serius ditemukan, program Java menciptakan exception. Exception dapat
ditangkap dan dikelola program tanpa resiko membuat sistem menjadi turun.
Program Java mendukung native method yaitu
fungsi ditulis di bahasa lain, biasanya C/C++. Dukungan native method memungkinkan
pemrogram menulis fungsi yang dapat dieksekusi lebih cepat dibanding fungsi
ekivalen di java. Native method secara dinamis akan di-link ke
program java, yaitu diasosiasikan dengan program saat berjalan.
Selain itu keuntungan
menggunakan bahasa pemrograman Java antara lain
memori pada Java secara otomatis
dilengkapi garbage collector yang berfungsi mendealokasi memori yang
tidak diperlukan. Tidak ada lagi upaya yang dilakukan pemrogram untuk
melakukan dispose(). Kita tidak lagi dibebani urusan korupsi memori. Java
menerapkan array sebenarnya, menghilangkan keperluan aritmatika pointer yang
berbahaya dan mudah menjadi salah. Menghilangkan pewarisan jamak (multiple
inheritance) diganti fasilitas antarmuka. Dan mudah dijalankan diberbagai
platform.
Grafical User
Interface (GUI) adalah salah satu kemampuan Java dalam mendukung dan
manajemen antarmuka berbasis grafis. Tampilan grafis yang akan ditampilkan
terhubung dengan program serta tempat penyimpanan data. Elemen dasar di Java untuk
penciptan tampilan berbasis grafis adalah dua paket yaitu AWT dan Swing. Abstract
Windowing Toolkit (AWT), atau disebut juga “Another Windowing
Toolkit”, adalah pustaka windowing bertujuan umum dan multiplatform serta
menyediakan sejumlah kelas untuk membuat GUI di Java. Dengan AWT, dapat membuat
window, menggambar, manipulasi gambar, dan komponen seperti Button,
Scrollbar, Checkbox, TextField, dan menu pull-down.
Penggunaan komponen AWT ditandai dengan
adanya instruksi : import java.awt.*; Swing merupakan perbaikan
kelemahan di AWT. Banyak kelas swing menyediakan komponen alternatif terhadap
AWT. Contohnya kelas JButton swing menyediakan fungsionalitas lebih banyak
dibanding kelas Button. Selain itu komponen swing umumnya diawali
dengan huruf “J”, misalnya JButton, JTextField, JFrame, JLabel, JTextArea,
JPanel, dan sebagainya. Teknologi swing menggunakan dan memperluas
gagasan-gagasan AWT. Sementara, penggunaan komponen Swing ditandai dengan
adanya instruksi : import javax.swing.*;
Beberapa perbedaan AWT
dan Swing, AWT merupakan komponen heavyweight (kelas berat) sedangkan
Swing lightweight (kelas ringan). Swing memiliki lebih banyak
komponen. Fasilitas Swing Look and Feel : Metal, Windows, Motif.
Komponen Swing berdasar model-view, yaitu suatu cara pengembangan komponen
dengan pemisahan penyimpanan dan penanganan data dari representasi visual data.
Bahasa pemrograman Java merupakan salah
satu bahasa pemrograman yang umum digunakan untuk mengembangkan aplikasi basis
data yang dibuat menggunakan MySQL.