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

Displayku.io.pkg3]] .Displayku. } } Out : Test package Test package Ket : PBO-Java M8 2 .Display. coba.Namaku a = new Namaku().*. Mis : import Paketku.Displayku1 . } keterangan : buat class Displayku (file Displayku.java pada folder Paketku\Display package Paketku.BU : package nama pkg1[.*. pembuatan obyek : Namaku a= new Namaku().out. //mengimport semua kelas yang terdapat dalam java. import java. coba1. //mengakses kelas Displayku1 class testPackage{ public static void main(String args[]) { displayku coba = new displayku().print(“Test package”).out. Contoh 1 : package Paketku.pkg2[.Display . import Display.print(“Test package anak”). displayku1 coba1 = new displayku1().Display .suara().print(“Test package”). } Statement Import Untuk mengimport kelas dari suatu paket.Display.java) di dalam package Display atau Displayku simpan di dalam folder C:\Paketku\Display.java import Paketku. // salah hariclass.Displayku . // karena turunan dari Displayku public class Displayku1 extends Displayku { public void suaraku() {System. keduanya mempunyai class Namaku. public class Displayku { public void suara() {System.* . //mengakses kelas Displayku import Paketku. BU : import package1[.suara(). // benar Contoh : //file Displayku. import idoclass.out. } } //file testPackage.io Conflik nama : import hariclass.nama_kelas . } } //file Displayku1. public class Displayku { public void suara() {System.package2].java pada folder Paketku package Paketku. kita menggunakan perintah import.

class MyDate extends date { …. Bentuk umum : [modifier] interface nama+interface { [isi interface] } Modifier : public atau default PBO-Java M8 Private V X X X X Tanpa pengubah V V V X X Protected V V V V X Public V V V V V 3 . Suatu class dapat mengimplementasikan antarmuka dengan jumlah tak terbatas.java pada C:\Paketku\Display Simpan file Displayku1. yg sama Subclass beda package Non subclass beda package 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.Misal pada paket di atas.*. maka jangan menyimpan file testPackage. 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. class harus mengimplementasikan interface tersebut.. meskipun hanya diturunkan dari 1 superclass.util.kelas yang mengimplementasikan sebuah interface harus menyediakan semua method yang disebutkan dalam interface tersebut. } Hak akses pada package Class yang sama Subclass package yg sama Non subclass p. ………………….java pada C:\Paketku Compile C:\javac testPackage..tanpa variabel instance .method dideklarasikan tanpa isi dan konstanta . Untuk menggunakan interface.java pada C:\Paketku\Display\Uji Penulisan : import java.java Untuk class yang mengimport package harus memiliki hirarki yang lebih tinggi atau sama bila mempunyai path yang sama.date { ……………….java pada drive C. Antarmuka : .• • • • • • Simpan file testPackage. } bila tanpa statemen import dapat dituliskan menjadi class MyDate extends java.util.

out.Contoh : interface Coba{ void method1 ( int nilai). } class Test implements Coba{ public void method1 (int n) { System. PBO-Java M8 4 .out.println(“callback called with “ + n +A). method1(42).println(B). Interface harus dideklarasikan public dan secara default merupakan static dan final sedangkan method dlam interface otomatis selalu public dan abstract( tidak ada definisinya). String B = “Sukses”. System. int A = 5. public static void main (Sting args[]) { Test c = new Test(). c. } out : callback called with 425 Sukses Apabila suatu class mengimplementasikan interface maka semua konstanta dari interface akan dimiliki oleh oleh class.

Sign up to vote on this title
UsefulNot useful