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.