Kelas-kelas Java yang akan digunakan di dalam program, terlebih dahulu harus diimpor beserta dengan nama paket di mana kelas tersebut berada, kecuali untuk kelas Java yang berada di paket java.lang seperti kelas JOptionPane yang berada di paket javax.swing dan kelas DecimalFormat yang berada di paket java.text.
Paket | Keterangan |
---|---|
javax.swing | Paket ini berisi kelas-kelas dan interface untuk komponen GUI (Graphical User Interface) swing Java yang menyediakan dukungan untuk tampilan grafis yang portabel. |
javax.swing.event | Paket ini berisi kelas-kelas dan interface yang memperbolehkan penanganan event untuk komponent grafis yang terletak di paket javax.swing. |
java.lang | Paket ini berisi kelas-kelas dan interface yang diperlukan oleh banyak program Java. Paket ini diimpor oleh kompiler ke semua program Java secara otomatis. Jadi Anda tidak perlu mengimpor lagi untuk menggunakan kelas dan interface di paket ini. |
java.applet | Paket ini berisi kelas-kelas Applet dan juga beberapa interface yang memperbolehkan interaksi applet dan browser serta untuk memainkan klip audio. Kelas javax.swing.JApplet digunakan untuk menetapkan applet yang menggunakan komponen GUI swing. |
java.text | Paket ini berisi kelas-kelas dan interfes yang memperbolehkan program Java untuk memanipulasi angka, tanggal, karakter dan juga string. |
java.net | Paket ini berisi kelas-kelas yang memperbolehkan program untuk berkomunikasi melalui jaringan. |
1. Keuntungan menggunakan paket.
Ada kemungkinan, programer Java membuat kelas sendiri yang mempunyai nama sama dengan kelas yang sudah ada di Java API tanpa disengaja. Konflik penamaan kelas bisa saja terjadi. Untuk mengatasi masalah terkait penamaan kelas, Anda dapat meletakkan kelas yang mempunyai nama sama ke dalam paket berbeda dan mengakses kelas tersebut beserta dengan nama paketnya.
Kelas-kelas Java yang mempunyai kemiripan fungsi seharusnya diletakkan di paket yang sama sehingga mempermudah penempatan dan pendistribusian. Paket juga berfungsi memberi proteksi pada kelas dan interface yang ada di dalamnya. Sebagai contoh, kelas yang dideklarasikan dengan kata kunci private, hanya dapat diakses oleh kelas-kelas lain yang berada dalam paket yang sama.
2. Direktori paket.
Paket sebenarnya adalah direktori untuk menyimpan file bytecode (file berekstensi .class). Paket Java disusun berjenjang (hierarchical). Anda bisa mempunyai paket yang berada di dalam paket lain. Sebagai contoh, javax.swing.JOptionPane menunjukkan bahwa kelas JOptionPane berada di paket swing dan paket swing sendiri berada di paket javax. Level jenjang paket digunakan untuk memastikan keunikan nama paket.
Semua kelas yang dibuat akan tersimpan di direktori yang sekarang aktif ketika program sumber Java dikompilasi. Karena program sumber Java terletak di direktori, misalnya c:\hindro\javasc dan proses kompilasi juga dilakukan di direktori tersebut, maka file bytecode hasil kompilasi juga akan tersimpan di direktori yang sama.
3. Meletakkan kelas ke dalam paket.
Setiap kelas Java diletakkan atau dikelompokkan ke dalam paket. Kelas-kelas tersebut diletakkan ke dalam paket saat program sumber Java (Java source program) dikompilasi. Untuk meletakkan sebuah kelas hasil kompilasi ke dalam paket yang dituju, Anda dapat menyertakan pernyataan package diikuti nama paket di program sumber Java.
Pernyataan package yang diikuti nama peket adalah pernyataan Java yang paling pertama atau berada di baris kode paling atas. Berikut ini adalah sintaksis dari pernyataan package di Java untuk meletakkan hasil kompilasi ke dalam paket:
package nama-paket;
Untuk memperjelas penggunaan pernyataan package di atas, Anda dapat membuat terlebih dahulu direktori baru. Misalnya c:\filejava\javaapp\kelas\bangun\datar adalah direktori untuk menyimpan file bytecode Java (berekstensi .class).
Dari direktori menyimpan kelas, Anda dapat menentukan c:\filejava\javaapp\kelas sebagai class path dan bangun\datar sebagai nama paket. Agar Java mengetahui letak kelas yang sudah dibuat di dalam sistem file (file system), Anda perlu memodifikasi nilai variabel CLASSPATH di kotak dialog Edit System Variable.
Modifikasi nilai variabel CLASSPATH dengan menambahkan ;c:\filejava\javaapp\kelas ke nilai yang sudah ada di variabel CLASSPATH. Untuk menambahkan beberapa path lain ke dalam nilai variabel CLASSPATH, Anda harus memberikan pemisah berupa titik koma.
Umumnya, variabel CLASSPATH sudah terisi dengan dot (.) yang mengacu ke direktori yang sedang aktif (current directory) atau lokasi dari pustaka kelas Java. Berikut ini adalah kotak dialok Edit System Variable dari variabel CLASSPATH:
Contoh program Java berikut ini berkaitan dengan bangun datar segitiga sama sisi. Rumus keliling segitiga sama sisi ABC adalah sisi AB + sisi BC + sisi CA dan rumus luasnya adalah ½ x alas x tinggi. Kelas bangun datar segitiga sama sisi ini diberi nama Segi3ABC dan memiliki dua metoda untuk mencari keliling dan luas. Kelas Segi3ABC akan diletakkan ke dalam paket bangun\datar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | // Meletakkan kelas ke paket package bangun.datar; // Mendefinisikan kelas Segi3ABC public class Segi3ABC { // Metoda hitungKeliling // Untuk mencari keliling segi tiga public static double hitungKeliling(double sisiAB, double sisiBC, double sisiCA) { double keliling; keliling = sisiAB + sisiBC + sisiCA; return keliling; } // Metoda hitungLuas // Untuk mencari luas segi tiga public static double hitungLuas(double sisiAB) { // Deklarasi variabel double luas; // Mencari tinggi segi tiga double tinggi = Math.sqrt(Math.pow(sisiAB, 2) - Math.pow((0.5 * sisiAB), 2)); // Mencari luas segi tiga luas = sisiAB * tinggi; return luas; } } |
Kelas Segi3ABC tidak memiliki metoda main karena akan digunakan di program lain yang mempunyai metoda main. Dari kode program di atas, baris nomor 2 adalah pernyataan package yang diikuti nama paket bangun.datar. Pernyataan package digunakan untuk meletakkan file bytecode hasil kompilasi (Segi3ABC.class) ke dalam paket yang sudah ditentukan di pernyataan package.
Baris nomor 24 adalah pernyataan untuk mencari tinggi segitiga sama sisi. Anda dapat menggunakan rumus phytagoras untuk mengetahui tinggi dari segitiga sama sisi. Rumus phytagoras meliputi pencarian akar (√x) dan pemangkatan (x2) dari variabel x.
Untuk mencari nilai akar dan pemangkatan, Anda dapat menggunakan metoda statik sqrt dan pow dari kelas Math yang ada di paket java.lang. Math.sqrt(x) sama artinya dengan √x dan Math.pow(x, y) sama artinya dengan xy.
Selain metoda sqrt dan pow, kelas Math juga berisi banyak metoda lain untuk melakukan fungsi matematika dasar serta metoda random (Math.random) yang dapat menghasilkan nilai random (acak) double lebih besar atau sama dengan 0.0 dan lebih kecil dari 1.0 (0 <= Math.random() < 1.0).
Baca artikel:
- Menghasilkan Nilai Numerik Acak Dari Kelas Math Di Java
- Menghasilkan Nilai Karakter Acak Dari Kelas Math Di Java
Ada dua cara mengkompilasi program sumber Java agar file berekstensi .class diletakkan di paket yang sudah ditentukan di pernyataan package. Cara pertama, Anda menyimpan file program sumber berekstensi .java di direktori c:\filejava\javaapp\kelas\bangun\datar. Sebelum dikompilasi, Anda harus berada di direktori dimana paket bangun\datar berada. Cara kedua, Anda mengkompilasi program sumber Java yang ada di direktori manapun dan meletakkan hasil kompilasi di direktori (paket) tertentu melalui c prompt (c:\>).
Untuk cara pertama, file program sumber Java (Segi3ABC.java) harus disimpan di folder atau direktori c:\filejava\javaapp\kelas\bangun\datar. Karena di program sumber tersebut sudah terdapat pernyataan package bangun.datar, sebelum dikompilasi, Anda cukup berada di direktori c:\filejava\javaapp\kelas. Kompilasi dapat dilakukan dengan menuliskan perintah seperti di bawah ini di baris perintah pada jendela Command Prompt.
javac bangun\datar\Segi3ABC.java
Setelah proses kompilasi selesai, Anda perlu memastikan bahwa file bytecode berekstensi .class yaitu Segi3ABC.class) sudah berada atau tersimpan di direktori c:\filejava\javaapp\kelas\bangun\datar. Kompiler Java dapat mengetahui tempat untuk meletakkan file hasil kompilasi dengan mengkombinasikan classpath c:\filejava\javaapp\kelas dengan nama paket bangun.datar.
Umumnya, programer Java memilih meletakkan file program sumber (berekstensi .java) dan file hasil kompilasi (berekstensi .class) di direktori berbeda. Hal ini dimaksudkan untuk mempermudah proses pendistribusian paket yang hanya berisi kelas-kelas hasil kompilasi. Anda juga dapat mengelola file dengan cara demikian.
Sebagai contoh, Anda membuat direktori c:\filejava\javaapp\sumber\bangun\datar untuk menyimpan file program sumber, sedangkan untuk menyimpan file hasil kompilasi, Anda menggunakan direktori c:\filejava\javaapp\kelas\bangun\datar. Untuk mengkompilasi file program sumber melalui c prompt (c:\>), Anda dapat menuliskan perintah seperti di bawah ini.
c:\>javac –d filejava\javaapp\kelas filejava\javaapp\sumber\bangun\datar\Segi3ABC.java
-d memberitahukan kepada kompiler Java untuk meletakkan file kelas hasil mengkompilasi (Segi3ABC.class) ke direktori c:\filejava\javaapp\kelas\bangun\datar. Setelah kompilasi file sumber selesai dilakukan dan tidak terdapat kesalahan, Anda dapat memastikan bahwa file hasil kompilasi sudah berada di direktori c:\filejava\javaapp\kelas\bangun\datar.
Kelas Segi3ABC yang tersimpan di direktori c:\filejava\javaapp\kelas\bangun\datar dapat dipanggil dengan pernyataan import seperti kelas Java lainnya. Contoh program berikut ini menggunakan kelas Segi3ABC yang sudah didefinisikan sebelumnya untuk menghitung keliling dan luas segitiga sama sisi. Segitiga sama sisi mempunyai panjang sisi yang sama yaitu 9 cm. Berikut ini adalah kode program dan hasil eksekusinya:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // Nama file : SegitigaSamaSisi.java // Menghitung keliling dan luas segitiga // Mengimpor kelas import javax.swing.JOptionPane; import java.text.DecimalFormat; import bangun.datar.Segi3ABC; // Deklarasi kelas public class SegitigaSamaSisi { // Metoda main public static void main(String[] args) { // Deklarasi variable double keliling; double luas; double sisi = 9; String hasil= ""; DecimalFormat formatAngka; // Membuat objek dari kelas DecimalFormat formatAngka = new DecimalFormat("0.00"); hasil += "Segitiga Sama Sisi\n\nPanjang sisi : " + sisi + "\n\n"; keliling = Segi3ABC.hitungKeliling(9, 9, 9); hasil += "Keliling Segitiga ABC : " + formatAngka.format(keliling) + "\n"; luas = Segi3ABC.hitungLuas(9); hasil += "Luas Segitiga ABC : " + formatAngka.format(luas) + "\n"; JOptionPane.showMessageDialog(null, hasil, "Menghitung Keliling dan Luas", JOptionPane.INFORMATION_MESSAGE); // Mengakhiri aplikasi berpenampilan GUI System.exit(0); } } |
Baris nomor 7 adalah pernyataan untuk mengimpor kelas Segi3ABC yeng terletak di paket bangun.datar. Kelas Segi3ABC merupakan kelas yang didefinisikan oleh pengguna aplikasi (user-defined class) dan bukan termasuk ke dalam Java predefined class yang terletak di pustaka kelas Java.
Baris nomor 27 adalah pernyataan pemberian (assigment statement). Di dalam pernyataan ini, metoda hitungKeliling kelas Segi3ABC yang ada di paket bangun.datar dipanggil. Metoda hitungKeliling akan mengembalikan nilai keliling segitiga dengan tipe data double untuk diberikan atau disimpan ke variabel keliling. Baris nomor 30 adalah juga pernyataan pemberian nilai.
Di pernyataan pemberian nilai ini, metoda hitungLuas kelas Segi3ABC yang tersimpan di paket bangun.datar dipanggil. Metoda hitungLuas akan mengembalikan nilai luas segitiga dengan tipe data double untuk disimpan di variabel luas. Baris nomor 33 adalah pernyataan untuk menampilkan hasil mencari keliling dan luas menggunakan metoda hitungKeliling dan hitungLuas kelas Segi3ABC.