You are on page 1of 4

PACKAGE DAN INTERFACE

Package
adalah container class yang digunakan untuk menjaga ruang nama class tetap
terbagi-bagi. Package disimpan secara hirarkis dan secara eksplisit diimpor ke dalam
definisi class baru.
Package sangat berguna untuk :
- memungkinkan kita mengoorganisir kelas2 ke dalam unit-unit.
- Mengurangi masalah yang timbul akibat konflik nama.

Fasilitas Pakage merupakan mekanisme penamaan dan kendali atas ketampakan data dan
metoda. Package didefinisik
an dengan menambahkan baris:

package <nama package> ;

pada awal file. Jika sebuah kelas tidak mempunyai package maka akan masuk ke package
default.
File-file class yg tergabung dalam satu package harus disimpan pd satu direktori
dg nama direktori adalah nama package. Kelas yang berasal dari suatu package diakses
dengan menggunakan nama package dan nama kelas. Misal points.Point (kelas Point yang
terdapat pada package points). Kelas yang berasal dari suatu package dapat diakses
langsung dengan menggunakan nama kelas dengan cara menggunakan import

Package & enkapsulasi


Package juga merupakan mekanisme untuk membatasi scope sebuah
variabel/method/class
 variabel/method/class yang tidak memiliki access modifier
(public/private/protected) memiliki scope package, yaitu hanya dapat diakses oleh
class lain yang berada dalam satu package
 variabel/method dengan access modifier protected dapat diakses oleh class lain
yang berada dalam satu package dan kelas turunan pada package yang berbeda.

Modifier di kelas & Package


 Segala sesuatu yg didekalrasikan public dpt diakses dari manapun
 Segala sesuatu yg dideklarasikan private tidak dpt diakses diluar kelasnya
 Ketika modifier tidak ditulis secara eksplisit (menjadi default) maka data dan
method itu akan tampak di subkelas-subkelas, dan kelas lain dalam satu paket
 Jika data dan metoda hanya ingin dilihat pd subkelas secara langsung modifier yg
digunakan protected

Level tertinggi adalah paket yang disebut Java (built-in) yang mencakup kelas-kelas :
a. lang : berisi fungsionalitas bahasa yang paling dasar.
b. applet : kelas dasar untuk seluruh applet.
c. awt : kelas untuk pengembangan antarmuka grafis (Abstrac Windowing Toolkit).
d. io : untuk operasi file Input/Output
e. net : untuk operasi jaringan
f. util : berisi utilitas-ultilitas yang penting.

PBO-Java M8 1
BU : package nama pkg1[.pkg2[.pkg3]] ;

Contoh 1 :
package Paketku.Display ;
public class Displayku
{ public void suara() {System.out.print(“Test package”); } }

keterangan : buat class Displayku (file Displayku.java) di dalam package Display


atau Displayku simpan di dalam folder C:\Paketku\Display.

Statement Import
Untuk mengimport kelas dari suatu paket, kita menggunakan perintah import.
BU : import package1[.package2].nama_kelas ;
Mis : import Paketku.Display.Displayku;
import java.io.* ; //mengimport semua kelas yang terdapat dalam java.io

Conflik nama :
import hariclass.*;
import idoclass.*;
keduanya mempunyai class Namaku,

pembuatan obyek : Namaku a= new Namaku(); // salah


hariclass.Namaku a = new Namaku(); // benar

Contoh :
//file Displayku.java pada folder Paketku\Display
package Paketku.Display ;
public class Displayku
{ public void suara() {System.out.print(“Test package”); } }

//file Displayku1.java pada folder Paketku


package Paketku;
import Display.Displayku; // karena turunan dari Displayku
public class Displayku1 extends Displayku
{ public void suaraku() {System.out.print(“Test package anak”); }
}

//file testPackage.java
import Paketku.Display.Displayku ; //mengakses kelas Displayku
import Paketku.Displayku1 ; //mengakses kelas Displayku1
class testPackage{
public static void main(String args[]) {
displayku coba = new displayku();
displayku1 coba1 = new displayku1();
coba.suara(); coba1.suara(); } }
Out : Test package
Test package
Ket :

PBO-Java M8 2
 Simpan file testPackage.java pada drive C.
 Modifier kelas harus public dan pada method jika ingin dapat diakses dari luar
paket maka harus public atau protected untuk dapat diakses kelas turunan
 Simpan file Displayku.java pada C:\Paketku\Display
 Simpan file Displayku1.java pada C:\Paketku
 Compile C:\javac testPackage.java
 Untuk class yang mengimport package harus memiliki hirarki yang lebih tinggi
atau sama bila mempunyai path yang sama.Misal pada paket di atas, maka jangan
menyimpan file testPackage.java pada C:\Paketku\Display\Uji

Penulisan :
import java.util.*;
class MyDate extends date
{ …. ………………….. }

bila tanpa statemen import dapat dituliskan menjadi


class MyDate extends java.util.date
{ ……………….. }

Hak akses pada package


Private Tanpa pengubah Protected Public
Class yang sama V V V V
Subclass package yg sama X V V V
Non subclass p. yg sama X V V V
Subclass beda package X X V V
Non subclass beda package X X X V

V : Dapat diakses
X : tidak dapat diakses

Antarmuka ( Interface)
Adalah eksplisit suatu kumpulan methode yang dapat diipmlementasikan class
tanpa implementasi sesungguhnya yang berhubungan dengan spesifikasi tersebut. Suatu
class dapat mengimplementasikan antarmuka dengan jumlah tak terbatas, meskipun hanya
diturunkan dari 1 superclass. Untuk menggunakan interface, class harus
mengimplementasikan interface tersebut.

Antarmuka :
- tanpa variabel instance
- method dideklarasikan tanpa isi dan konstanta
- kelas yang mengimplementasikan sebuah interface harus menyediakan semua
method yang disebutkan dalam interface tersebut.

Bentuk umum : [modifier] interface nama+interface { [isi interface] }

Modifier : public atau default

PBO-Java M8 3
Contoh : interface Coba{
void method1 ( int nilai);
int A = 5;
String B = “Sukses”;
}

class Test implements Coba{


public void method1 (int n) {
System.out.println(“callback called with “ + n +A);

public static void main (Sting args[])


{ Test c = new Test();
c. method1(42);
System.out.println(B); }

out : callback called with 425


Sukses

Apabila suatu class mengimplementasikan interface maka semua konstanta dari interface
akan dimiliki oleh oleh class. Interface harus dideklarasikan public dan secara default
merupakan static dan final sedangkan method dlam interface otomatis selalu public dan
abstract( tidak ada definisinya).

PBO-Java M8 4

You might also like