Package adalah cara mengelola class-class yang kita buat. Package mengelompokkan class-class sesuai dengan kategori tertentu. Class-class dalam suatu package harus disimpan pada directory yang sama dengan nama packagenya. Suatu class dapat mengimport class yang lain. Pada saat mengimport class dalam suatu package, pastikan letak package tersebut satu directory dengan class yang mengimportnya.
Deklarasi package harus diletakkan pada bagian paling awal (sebelum deklarasi import) dari source code setiap kelas yang dibungkus package tersebut.
Bentuk umum deklarasi package :
package namaPackage;
Deklarasi tersebut akan memberitahukan kompilator, ke library manakah suatu kelas dikompilasi dan dirujuk.
Syarat nama package :
· Diawali huruf kecil
· Menggambarkan kelas-kelas yang dibungkusnya
· Harus unik (berbeda dengan nama package standard)
· Merepresentasikan path dari package tersebut.
· Harus sama dengan nama direktorinya.
Contoh :
/*interface MtkDasar*//*file Matematika/MtkDasar.java*/package Matematika;public interface MtkDasar {String tambah(Object obj);String kurang(Object obj);String kali(Object obj);String bagi(Object obj);}/*kelas Pecahan*//*file Matematika/Pecahan.java*/package Matematika;public class Pecahan implements Matematika.MtkDasar{private int pembilang, penyebut;public Pecahan(int pembilang, int penyebut) {this.pembilang=pembilang;this.penyebut=penyebut;}public int getValuePembilang(){return this.pembilang;}public int getValuePenyebut(){return this.penyebut;}public int penyebutHsl(int a,int b){int hsl;if (a%b==0 || b%a==0){if (a>=b){hsl=(a/b)*b;}else{hsl=(b/a)*a;}}else{hsl=a*b;}return hsl;}public String tambah(Object obj){StringBuffer strHasil= new StringBuffer(" ");Pecahan data = new Pecahan(pembilang,penyebut);pembilang=data.getValuePembilang();penyebut=data.getValuePenyebut();Pecahan tambah = (Pecahan)obj;int pembilang1=tambah.getValuePembilang();int penyebut1=tambah.getValuePenyebut();int penyHsl=tambah.penyebutHsl(penyebut,penyebut1);int hasil = (pembilang*(penyHsl/penyebut))+(pembilang1*(penyHsl/penyebut1));strHasil.insert(0,hasil);strHasil.insert(strHasil.length()-1,"/");strHasil.insert(strHasil.length()-1,penyHsl);return(strHasil.toString());}public String kurang(Object obj){StringBuffer strHasil= new StringBuffer(" ");Pecahan data = new Pecahan(pembilang,penyebut);pembilang=data.getValuePembilang();penyebut=data.getValuePenyebut();Pecahan tambah = (Pecahan)obj;int pembilang1=tambah.getValuePembilang();int penyebut1=tambah.getValuePenyebut();int penyHsl=tambah.penyebutHsl(penyebut,penyebut1);int hasil = (pembilang*(penyHsl/penyebut))-(pembilang1*(penyHsl/penyebut1));strHasil.insert(0,hasil);strHasil.insert(strHasil.length()-1,"/");strHasil.insert(strHasil.length()-1,penyHsl);return(strHasil.toString());}public String kali(Object obj){StringBuffer strHasil= new StringBuffer(" ");Pecahan data = new Pecahan(pembilang,penyebut);pembilang=data.getValuePembilang();penyebut=data.getValuePenyebut();Pecahan kali = (Pecahan)obj;int pembilang1=kali.getValuePembilang();int penyebut1=kali.getValuePenyebut();int penyHsl=kali.penyebutHsl(penyebut,penyebut1);int hasil = (pembilang)*(pembilang1);strHasil.insert(0,hasil);strHasil.insert(strHasil.length()-1,"/");strHasil.insert(strHasil.length()-1,penyHsl);return(strHasil.toString());}public String bagi(Object obj){StringBuffer strHasil= new StringBuffer(" ");Pecahan data = new Pecahan(pembilang,penyebut);pembilang=data.getValuePembilang();penyebut=data.getValuePenyebut();Pecahan bagi = (Pecahan)obj;int pembilang1=bagi.getValuePembilang();int penyebut1=bagi.getValuePenyebut();int penyHsl=bagi.penyebutHsl(penyebut,penyebut1);int hasil = (penyebut)*(pembilang1);strHasil.insert(0,hasil);strHasil.insert(strHasil.length()-1,"/");strHasil.insert(strHasil.length()-1,penyHsl);return(strHasil.toString());}public String toString() {StringBuffer tampil= new StringBuffer(" ");Pecahan data = new Pecahan(pembilang,penyebut);tampil.insert(0,data.getValuePembilang());tampil.insert(tampil.length()-1,"/");tampil.insert(tampil.length()-1,data.getValuePenyebut());return (tampil.toString());}}/*kelas cobaPecahan*//*file cobaPecahan.java*/import Matematika.Pecahan;import javax.swing.JOptionPane;public class cobaPecahan {public static void main(String[] args) {int a; int b; int c; int d;// TODO code application logic hereSystem.out.println("Format : a/b Operator[+/-] c/d = hasilPecahan \nexample: 1/2 + 3/4 = 5/4 \n");System.out.println("Operator Prak PBO");System.out.println("\n--------------------------\n");System.out.print("Masukkan nilai a : ");a = Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai a", "Input", JOptionPane.QUESTION_MESSAGE));System.out.println(+a);System.out.print("Masukkan nilai b : ");b = Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai b", "Input", JOptionPane.QUESTION_MESSAGE));System.out.println(+b);System.out.print("\nMasukkan nilai Operator [+ ; - ; * ; /] : ");String op= JOptionPane.showInputDialog("silahkan input operator");System.out.print("\nMasukkan nilai c : ");c = Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai c", "Input", JOptionPane.QUESTION_MESSAGE));System.out.println(+c);System.out.print("Masukkan nilai d : ");d = Integer.parseInt(JOptionPane.showInputDialog(null,"Input nilai d", "Input", JOptionPane.QUESTION_MESSAGE));System.out.println(+d);
Pecahan pecahan1 = new Pecahan(Integer.valueOf(a).intValue(),Integer.valueOf(b).intValue());Pecahan pecahan2 = new Pecahan(Integer.valueOf(c).intValue(),Integer.valueOf(d).intValue());if (op.compareTo("+")==0){System.out.println("\n" + pecahan1 + "+ "+ c +"/"+ d + " = " + pecahan1.tambah(pecahan2));}else if (op.compareTo("-")==0){System.out.println("\n" + pecahan1 + "- "+ c +"/"+ d + " = " + pecahan1.kurang(pecahan2));}else if (op.compareTo("*")==0){System.out.println("\n" + pecahan1 + "* "+ c +"/"+ d + " = " + pecahan1.kali(pecahan2));}else if (op.compareTo("/")==0){System.out.println("\n" + pecahan1 + " / "+ c +"/"+ d + " = " + pecahan1.bagi(pecahan2));}else{System.out.println("\nMaaf, Operator yang anda masukkan salah");}}}





