Kenapa muncul package?
Ketika kita menangani program dalam skala kecil, tidak ada masalah untuk meletakkan semua file java dalam satu direktori. Itu akan mempercepat dan mempermudah pekerjaan dan masih aman. Tetapi jika project yang dikerjakan semakin berkembang dan jumlah file yang dikerjakan semakin banyak serta orang yang mengerjakan project lebih dari satu maka meletakkan file java ke dalam satu direktori akan merepotkan pekerjaan karena software yang dibangun akan tidak terstruktur. Java menyediakan fitur untuk menangani hal ini dengan memakai “Package”
Package adalah mengelompokkan kelas-kelas yang saling berelasi dan interfaces yang memberikan proteksi terhadap access kelas yang tidak boleh diakses oleh kelas lain karena tidak berelasi,dan manajemen nama.
Packages tidak lebih dari sekedar cara untuk mengorganisir file kedalam direktori yang berbeda berdasarkan fungsionalitas dan kegunaannya.
Packaging membantu kita untuk menghindari terjadinya collision ketika kita menggunakan nama kelas yang sama dengan yang sudah ada. Packaging juga membantu programmer dalam mencari dan menggunakan nama kelas dan mengontrol akses.
Membuat Package
1. Buat directory yang merepresentasikan tempat package yang akan dibuat.
Misal D:\Lecture\PBO 2007\Minggu 11\Program\MyPackage\Poligon
2. Buat kelas (atau interface) yang akan menjadi isi package yang akan kita buat dengan susunan:
// Deklarasi package
package namapaket;
// Deklarasi kelas
public class namakelas {
…
}
3. Deklarasi Package
Menggunakan kata kunci package yang ditulis di baris pertama pada file sumber (.java).
package namapaket;
Contoh:
package MyPackage; package MyPackage.Poligon;
Hanya boleh ada satu pernyataan package pada setiap file sumber.
4. Deklarasi Kelas
Dinyatakan secara public supaya bisa diakses oleh semua kelas yang berada didalam dan diluar package yang dibuat.
Jika ada beberapa kelas pada file sumber, hanya boleh ada satu kelas yang dinyatakan secara public, yaitu kelas yang
namanya sama dengan nama file sumber.
5. Atur variabel lingkungan CLASSPATH sehingga menunjuk directory tempat dimana package disimpan:
a. Melalui Control Panel
b. Melalui perintah set path di command line
SET CLASSPATH = .; D:\Lecture\PBO 2007\Minggu 11\Program;
Kompilasi kelas (atau interface) yang menjadi isi package.
6. Gunakan package kelas (atau interface) yang sudah dikompilasi melalui:
Pernyataan import
import MyPackage.Poligon.*;
import MyPackage.Poligon.SegiEmpat;
Nama qualified dari kelas (atau interface)
MyPackage.Poligon.SegiEmpat S;
S = new MyPackage.Poligon.SegiEmpat(17, 8);
Gambar 1. Diagram Kelas
7. Hasil contoh Code Program menggunakan package
Nama package:
MyPackage.Poligon
Kelas yang menjadi isi package:
SegiEmpat.java
SegiTiga.java
Lingkaran.java
Balok.java
Silinder.java
Kelas yang menggunakan package:
TestPackage.java
Source SegiEmpat.java
package MyPackage.Poligon;
// Deklarasi kelas SegiEmpat
public class SegiEmpat {
// Deklarasi atribut
protected float panjang, lebar;
// Definisi method
// Konstruktor
public SegiEmpat() {
panjang = 0;
lebar = 0;
}
public SegiEmpat(float p, float l) {
panjang = p;
lebar = l;
}
// Mutator
public void setPanjang(float p) {
panjang = p;
}
public void setLebar(float l) {
lebar = l;
}
// Selector
public float getPanjang() {
return (panjang);
}
public float getLebar() {
return (lebar);
}
public float Luas() {
return (panjang*lebar);
}
public float Keliling() {
return (2*(panjang+lebar));
}
}
Source Balok.java
// Balok.java
package MyPackage.Poligon;
public class Balok extends SegiEmpat {
// Deklarasi atribut
protected float tinggi;
// Definisi method
// Kontruktor
public Balok() {
super();
tinggi = 0;
}
public Balok(float p, float l, float t) {
super(p, l);
tinggi = t;
}
// Mutator
public void setTinggi(float t) {
tinggi = t;
}
// Selector
public float getTinggi() {
return tinggi;
}
public float Luas() {
float Luas1, Luas2, Luas3;
Luas1 = 2 * super.Luas();
Luas2 = 2 * panjang * tinggi;
Luas3 = 2 * lebar * tinggi;
return (Luas1+Luas2+Luas3);
}
public float Volume() {
return (super.Luas()*tinggi);
}
}
Source TestPackage.java
import MyPackage.Poligon.*;
// Deklarasi kelas program utama
class TestPackage {
// Program utama
public static void main(String args[]) {
// Ciptakan objek pertama
SegiEmpat S = new SegiEmpat(17, 8);
// Manipulasi objek pertama
System.out.println("Objek segi empat:");
System.out.println("Panjang = " + S.getPanjang());
System.out.println("Lebar = " + S.getLebar());
System.out.println("Luas = " + S.Luas());
System.out.println("Keliling = " + S.Keliling());
// Ciptakan objek kedua
SegiTiga T = new SegiTiga();
// Manipulasi objek kedua
T.setAlas(27);
T.setTinggi(3);
System.out.println("\n\nObjek segi tiga:");
System.out.println("Alas = " + T.getAlas());
System.out.println("Tinggi = " + T.getTinggi());
System.out.println("Luas = " + T.Luas());
System.out.println("Keliling = " + T.Keliling());
// Ciptakan objek ketiga
Lingkaran L = new Lingkaran();
// Manipulasi objek ketiga
L.setRadius(7);
System.out.println("\n\nObjek lingkaran:");
System.out.println("Radius = " + L.getRadius());
System.out.println("Luas = " + L.Luas());
System.out.println("Keliling = " + L.Keliling());
// Ciptakan objek keempat
Balok B = new Balok();
// Manipulasi objek keempat
B.setPanjang(14);
B.setLebar(5);
B.setTinggi(6);
System.out.println("\n\nObjek balok:");
System.out.println("Panjang = " + B.getPanjang());
System.out.println("Lebar = " + B.getLebar());
System.out.println("Tinggi = " + B.getTinggi());
System.out.println("Luas = " + B.Luas());
System.out.println("Volume = " + B.Volume());
// Ciptakan objek kelima
Silinder C = new Silinder(21, 4);
// Manipulasi objek kelima
System.out.println("\n\nObjek silinder:");
System.out.println("Radius = " + C.getRadius());
System.out.println("Tinggi = " + C.getTinggi());
System.out.println("Luas = " + C.Luas());
System.out.println("Volume = " + C.Volume());
}
}
*) Source SegiTiga.java, Lingkaran.java dan Silinder.java tidak ditampilkan supaya tidak menambah panjang tutorial, silakan kembangkan dan berkreasi sendiri








salut. akhirnya ada juga calon jagoan Java di ProgClub. hehehe… keep exploring!!
ni mirip yang di ajarin di kampus cuman dikampus pake C++ Builder. aku mau coba pake java aahh, thank’s ya
minta class buat lingkaran lah….
minta class buat segitiga,java dong..!