Package As’ad Djamalilleil
Apa solusi dari masalah ini ???
Solusinya adalah membuat beberapa buah folder, dimana setiap folder digunakan untuk menampung hanya file dengan jenis tertentu saja Sehingga file-file tersebut akan lebih tertata atau terstruktur dibandingkan sebelumnya
Sistem Package Packaging adalah cara yang dipakai pada Java untuk mengatur bagaimana class- class disusun secara lebih terstruktur Tujuannya adalah untuk menyediakan kontrol akses yang aman terhadap class- class tersebut Secara fisik, class-class disimpan ke dalam folder-folder sesuai susunan package yang dibuat
Membuat Package Sebuah package dapat dibuat dengan menggunakan keyword package yang dituliskan sebagai statement pertama pada kode program package namaPackage;
Contoh membuat package (8.1a) package programku; class CobaSaja{ //contoh class } Artinya class CobaSaja berada di dalam package dengan nama “programku”, dimana secara fisik class CobaSaja akan tersimpan pula pada sebuah folder dengan nama yang sama dengan nama package
package programku class CobaSaja
Contoh package (8.1b) package programku; class TambahLagi{ //contoh class } Artinya class TambahLagi juga berada di dalam package “programku”
package programku class CobaSaja class TambahLagi Setiap class yang berada di dalam package yang sama dapat saling mengakses class-class dalam package tersebut
Dengan memanfaatkan sistem package kita dapat membuat sendiri struktur packaging sesuai keinginan kita Contoh berikut membuat struktur package dalam bentuk sub-package Program 8.2a package latihan.buat.paket; class Contoh{ //contoh class }
package latihan package buat package paket class Contoh Penulisan nama package pada kode program 8.2a di atas menghasilkan struktur package seperti gambar di atas
Perhatikan bagaimana penulisan nama package pada kode program di bawah. Program 8.2b package latihan.buat; class Lagi{ //contoh class }
package latihan package buat package paket class Contoh class Lagi Perhatikan struktur package dan lokasi dari class Contoh dan Lagi (program 8.2a dan 8.2b)
Contoh pada class Gelas (8.3a) Nama file: Gelas.java package programku; public class Gelas{ public float tinggi; public float diameter; public boolean kosong; public String warna; public boolean pegangan; public Gelas(){ } public void diisi(){ this.kosong = false; System.out.println("gelas penuh"); }
public void diminum(){ this.kosong = true; System.out.println("gelas kosong"); } public void dipecahkan(){ this.tinggi = 0f; this.diameter = 0f; this.kosong = true; System.out.println("gelas pecah"); } public double isiMaksimum(){ final float phi = 3.14f; float jari = this.diameter / 2; double isi = phi*(jari*jari)*this.tinggi; return isi; }
Aplikasi yang menggunakan class Gelas (8.3b) Nama file: Aplikasi.java import programku.Gelas; class Aplikasi{ public static void main(String args[]){ Gelas minum = new Gelas(); Gelas cangkir = new Gelas(); minum.tinggi = 12.4f; minum.diameter = 6.0f; minum.kosong = true; minum.warna = "Transparan"; minum.pegangan = false; cangkir.tinggi = 7.5f; cangkir.diameter = 6.5f; cangkir.kosong = true; cangkir.warna = "Putih"; cangkir.pegangan = true;
System.out.println(cangkir.warna); final float phi = 3.14f; float jari = minum.diameter / 2; double isi = phi * (jari * jari) * minum.tinggi; System.out.println(isi); minum.diminum(); isi = cangkir.isiMaksimum(); System.out.println(isi); }
package programku class Gelas class Aplikasi Class Aplikasi dapat meng-import class Gelas dalam package programku karena class Gelas bersifat public sehingga dapat “terlihat” oleh class lain di luar package programku >
Penjelasan: Keyword public digunakan pada awal nama class Gelas, property dan function agar dapat diakses oleh class-class atau aplikasi lain di luar package “programku” Tanpa penggunaan keyword public, class Gelas tersebut beserta property maupun function-nya hanya dapat diakses dari dalam package yang sama, yaitu package “programku” Perhatikan contoh berikut:
Class Gelas (8.4a) Nama file: Gelas.java package programku; class Gelas{ float tinggi; float diameter; boolean kosong; String warna; boolean pegangan; Gelas(){ } void diisi(){ this.kosong = false; System.out.println("gelas penuh"); }
void diminum(){ this.kosong = true; System.out.println("gelas kosong"); } void dipecahkan(){ this.tinggi = 0f; this.diameter = 0f; this.kosong = true; System.out.println("gelas pecah"); } double isiMaksimum(){ final float phi = 3.14f; float jari = this.diameter / 2; double isi = phi*(jari*jari)*this.tinggi; return isi; }
Class Aplikasi (8.4b) Nama file: Aplikasi.java package programku; class Aplikasi{ public static void main(String args[]){ Gelas minum = new Gelas(); Gelas cangkir = new Gelas(); minum.tinggi = 12.4f; minum.diameter = 6.0f; minum.kosong = true; minum.warna = "Transparan"; minum.pegangan = false; cangkir.tinggi = 7.5f; cangkir.diameter = 6.5f; cangkir.kosong = true; cangkir.warna = "Putih"; cangkir.pegangan = true;
System.out.println(cangkir.warna); final float phi = 3.14f; float jari = minum.diameter / 2; double isi = phi * (jari * jari) * minum.tinggi; System.out.println(isi); minum.diminum(); isi = cangkir.isiMaksimum(); System.out.println(isi); }
Bandingkan program 8.3 dan 8.4, kemudian dianalisa
Penggunaan keyword static Keyword static dapat digunakan pada property maupun function Penggunaannya memberikan efek yang berbeda pada property maupun function Secara umum, property maupun function yang bersifat static akan dapat diakses secara langsung lewat nama class-nya tanpa perlu membuat objek terlebih dahulu Program 8.5
class Zakat{ static final float persen = 2.5f / 100; static double uang; static double hitung(){ return persen * uang; } class Bayar{ public static void main(String args[]){ Zakat.uang = 5000; double besar = Zakat.hitung(); System.out.println(besar); }
Pada contoh kode di atas, kita tidak perlu membuat objek dari class Zakat Property dan function di dalam class Zakat dapat digunakan tanpa harus membuat objeknya terlebih dahulu Sedangkan secara khusus pada property, nilai dari property yang bersifat static akan memiliki nilai yang sama untuk setiap objeknya, sehingga merubah nilai property static pada satu objek akan merubah nilainya pada objek yang lain Program 8.6
class Sepatu{ static long harga; String kaki; } class Jual{ public static void main(String args[]){ Sepatu kiri = new Sepatu(); Sepatu kanan = new Sepatu(); kiri.kaki = "Kiri"; kanan.kaki = "Kanan"; System.out.println(kiri.kaki); kiri.harga = 5000; kanan.harga = 7900; System.out.println(kiri.harga); }
Objek kiri harga kaki Objek kanan harga kaki Property “harga” saling berbagi nilai yang sama, sehingga perubahan di satu objek akan mempengaruhi juga objek-objek yang lain