2.Pengertian Package
Package adalah sarana/cara pengelompokkan dan pengorganisasian kelas-kelas dan interface yang sekelompok menjadi suatu unit tunggal dalam library.
Package juga mempengaruhi mekanisme hak akses ke kelas-kelas di dalamnya.
4.2. Pengaruh Package terhadap Method main()
Kelas yang mengandung method main() memilki syarat tidak berada dalam suatu package, dan hirarki posisi foldernya di atas package yang diimport.
4.3. Membuat Package
Ada tiga langkah untuk membuat package :
- Mendeklarasikan dan memberi nama package.
- Membuat struktur dan nama direktori yang sesuai dengan struktur dan nama package.
- Mengkompilasi kelas-kelas sesuai dengan packagenya masing-masing.
4.4. Mendeklarasikan dan Memberi Nama Package
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 package standard :
java.lang (berisi kelas-kelas fundamental yang sering digunakan).
java.awt dan javax.swing (berisi kelas-kelas untuk membangun aplikasi GUI)
java.io (berisi kelas-kelas untuk proses input output)
4.5. Membuat Struktur Direktori
Pada langkah ini, buatlah direktori menggunakan file manager (di windows menggunakan explorer) sesuai struktur package dari langkah sebelumnya. Kemudian tempatkan kelas-kelas tersebut ke direktori yang bersesuaian (mirip seperti menyimpan file-file ke dalam folder).
Package dapat bersarang di package lain, sehingga dapat dibuat hirarki package.
Bentuk umum pernyataan package multilevel :
package namaPackage1[.namaPackage2[.namaPackage3]];
Contoh hirarki package di JDK :
package java.awt.image;
4.6. Compile dan Run Kelas dari suatu Package
Selanjutnya masing-masing kelas tersebut dalam package tersebut dikompilasi menjadi byte code (*.class). Artinya package tersebut siap digunakan.
4.7. Menggunakan Package
Ada dua cara menggunakan suatu package yaitu :
- Kelas yang menggunakan berada dalam direktori (package) yang sama dengan kelas-kelas yang digunakan. Maka tidak diperlukan import.
- Kelas yang menggunakan berada dalam direktori (package) yang berbeda dengan kelas-kelas yang digunakan. Maka pada awal source code di kelas pengguna harus mencantumkan :
import namaPackage.NamaKelas; atau
import namaPackage.*;
Contoh :
import java.text.DecimalFormat;
import javax.swing.*;
4.8. Setting Classpath
Path hirarki package, didaftarkan sebagai salah satu nilai variabel lingkungan yang bernama Classpath.
Classpath diset dengan aturan : berawal dari drive (C:\ atau D:\) sampai dengan satu tingkat sebelum kita mendeklarasikan package.
3.Pengertian Casting Objek
Typecasting atau casting adalah proses konversi data dari tipe data tertentu ke tipe data yang lain.
Jenis Casting
Casting data dengan Tipe Primitive.
Pengkonversian nilai dari satu tipe ke tipe yang lainnya, dapat dilakukan pada casting tipe primitif. Umumnya digunakan antar tipe data numerik. Terdapat satu tipe data yang tidak dapat dikonversi, yaitu boolean.
Tipe Casting
Casting Implisit
Contoh:
(Deklarasi penyimpanan sebuah data integer dalam sebuah variabel dengan tipe data double)
int numInt1ZS = 1;
int numInt2 = 2;
//hasilnya secara implisit tercasting menjadi double
double numDouble = numInt1/numInt2;
Casting Explisit
Contoh:
(dataType)value dataType - bentuk tipe data konversi
value - ekspresi yang me-return value dari tipe sumber
Casting Object
Casting objek terdapat dua jenis yaitu :
- Casting Objek Implisit
- Casting Objek Eksplisit
Penggunaan Casting
Casting diperlukan ketika kita akan “memaksa” penyesuaian dari satu tipe data ke tipe data lain.
Pada pemrograman berbasis objek casting diperlukan untuk menyesuaikan suatu tipe objek (class) ke tipe objek (class) lain.
Program Casting
Sedikit Tambahan Tentang Casting Objek
Casting Objek
Instance dari sebuah kelas dapat diubah ke instance kelas yang lain, dengan syarat kelas-kelas itu harus terhubung dengan mekanisme inheritance (kelas dengan subkelasnya).
Contoh :
Employee merupakan super class dari VicePresident
Employee emp = new Employee();
VicePresident pre = new VicePresident();
Implisit casting
emp = pre;
Ekplisit casting
pre = (VicePresident) emp;
4.Pengertian OVERLOADING DAN OVERRIDING
Overloading adalah method dengan nama yang sama dengan method lain pada suatuclass tetapi dengan parameter yang berbeda. Tujuan dibuatnya overloading yaitu memudahkan penggunaan method dengan fungsi yang hampir sama.
Berikut Contoh dari Overloading pada java.
class Pertambahan{
public void tambah1(){
int a=5, b=10;
System.out.println("Hasil Pertambahann dari metod tambah1 ke-1 = "+(a+b));
}
//Metod tambah1 di overloading dengan 2 parameter (int x, int y)
public void tambah1(int x, int y){
System.out.println("Hasil Pertambahann dari metod tambah1 ke-2 = "+(x+y));
}
public static void main(String [] args){
Pertambahan pp;
pp = new Pertambahan();
pp.tambah1();//memanggil metod tambah1 ke-1
pp.tambah1(5,5);//memanggil metod tambah1 ke-2
}
}
Dari contoh di atas, method tambah1 pada class Pertambahan dioverloading, sehingga ada perbedaan parameter antara metod
tambah1() dengan metod
tambah1(int x, int y).Output program overloading:
Overriding adalah method subclass sama dengan method super class, parameternya sama tetapi pernyataan atau implementasinya berbeda.
Berikut contoh dari Overriding pada java dengan nama super calss nya adalah Nama dan sub class nya adalah Siapa.
class Nama{
public void Sapa(){
System.out.println("Achmad Cahya Aditya");
}
public static void main(String [] args){
Siapa ss;
Nama nn;
ss = new Siapa();
nn = new Nama();
ss.Sapa();//memanggil method Sapa() pada class Siapa
nn.Sapa();//memanggil method Sapa() pada class Nama
}
}
class Siapa extends Nama{
//Method Sapa() pada class Nama di override
public void Sapa(){
System.out.println("Yesica Dwi Lestari");
}
}
Pada program di atas terlihat bahwa method Sapa() pada super class(class Nama) di override disub class(class Siapa) . Parameter pada kedua class tersebut sama yaitu tidak mempunyai paramater alias kosong, tetapi perbedaannya adalah implementasinya yaitu mencetak kalimat yang berbeda.
Output program overriding:
5.Pengertian Pewarisan Interface
Interface adalah wadah dari kumpulan method yang bersifat abstrak atau tidak memiliki implementasi. Sedangkan method yang didefinisikan di dalam interface tersebut akan diimplementasikan oleh class yang mengimplementasikan interface tersebut. Interface merupakan bentuk perluasan dari kelas abstrak.
Selain method, interface juga dapat berisi sekumpulan variable, namun variable yang dideklarasikan di dalam interface harus bersifat final(nilainya tidak dapat diubah /konstan).
Sebagai contoh : Dalam kehidupan nyata dapat diketahui ada manusia yang bekerja sebagai tentara, penyanyi, pengacara, dan sebagainya, tentunya manusia-manusia tersebut selain harus memiliki method standard sebagai seorang manusia, juga harus memiliki method yang sesuai dengan pekerjaannya. Dengan demikian untuk membuat objek manusia yang bekerja sebagai penyanyi, harus dibuat kelas yang merupakan turunan kelas manusia yang meng-implementasikan interface penyanyi
Ciri-ciri dari interface
Method interface tidak punya tubuh, sebuah interface hanya dapat mendefinisikan konstanta dan interface tidak langsung mewariskan hubungan dengan class istimewa lainnya, mereka didefinisikan secara independent.
Tidak bisa membuat instance atau objek baru dari sebuah interface.
Ciri umum lain adalah baik interface maupun class dapat mendefinisikan method. Bagaimanapun, sebuah interface tidak punya sebuah kode implementasi sedangkan class memiliki salah satunya.
Beberapa perbedaan Interface dan Abstract Class :
- Interface hanya bisa mendefinisikan Method, tidak bisa mengimplementasikan, sedangkan Abstrat Class bisa mengimplementasikan Method
- Interface tidak boleh terdiri dari field atau property, Abstract Class bias
- Interface tidak boleh terdiri dari konstruktor dan destruktor, sedangkan Abstract class bisa:
Abstract class
|
Interface
|
Bisa berisi abstract dan non-abstract method.
|
Hanya boleh berisi abstract method.
|
Kita harus menuliskan sendiri modifiernya.
|
Kita tidak perlu susah2 menulis public abstract di depan nama method. Karena secara implisit, modifier untuk method di interface adalah public danabstract.
|
Bisa mendeklarasikan constant dan instance variable.
|
Hanya bisa mendeklarasikan constant. Secara implisit variable yang dideklarasikan di interface bersifatpublic, static dan final.
|
Method boleh bersifat static.
|
Method tidak boleh bersifat static.
|
Method boleh bersifat final.
|
Method tidak boleh bersifat final.
|
Suatu abstact class hanya bisa meng-extend satu abstract class lainnya.
|
Suatu interface bisa meng-extend satu atau lebih interface lainnya.
|
Suatu abstract class hanya bisa meng-extend satu abstract class dan meng-implement beberapa interface.
|
Suatu interface hanya bisa meng-extend interface lainnya. Dan tidak bisa meng-implement class atau interface lainnya.
|
6. Pengertian Konstruktor
Konstruktor (construct) adalah
sebuah method yang secara otomatis akan dijalankan ketika object dibuat (instansiasi). yaitu pada
saat perintah new dijalankan.
Biasanya konstruktor digunakan untuk
memberikan nilai awal pada sebuah objek. seperti pemberian nilai pada property atau pemanggilan method internal (method dalam class yang
sama).
Karakteristik / sifat Konstruktor
· nama
konstruktor sama dengan nama kelas
· tidak
menggunakan kata kunci void.
· tidak
memiliki nilai balik
Penggunaan Konstruktor
class NamaKelas {
NamaKelas()
{
//
Lakukan Sesuatu
}
}
membuat construct sama halnya dengan
membuat method biasa akan tetapi nama method harus sama dengan nama kelas
Contoh :
class Kendaraan {
// property
int jumlah_roda;
// membuat konstruktornya dengan parameter jml_roda
Kendaraan(int jml_roda) {
jumlah_roda = jml_roda;
}
// method (prosedur) untuk
menampilkan jumlah_roda
void tampilkanJumlahRoda() {
System.out.print(jumlah_roda);
}
}
class Contoh {
public static void main(String[] args) {
// membuat objek dengan nama motor dari kelas
kendaraan dengan mengisi konstruktornya
Kendaraan motor = new Kendaraan(2);
// memanggil method untuk menampilkan
motor.tampilkanJumlahRoda();
}
}
Hasil :
7.Pengertian Modifier
Access Modifier
Ada 4 Macam Acces Modifier di Java sesuai gambar di atas, yaitu:
- public
Kelas, method maupun atribut yang mempunyai access modifier public dapat diakses dari manapun dan oleh kelas apapun.
- protected
Atribut dan method yang mempunyai access modifier protected, artinya bahwa atribut dan method tersebut dapat diakses oleh kelas yang sama, package yang sama, dan kelas turunannya (subclass).
- default / no access
Atribut dan method yang mempunyai access modifier default, artinya bahwa atribut dan method tersebut dapat diakses oleh kelas yang sama dan package yang sama.
- private
Atribut dan method yang mempunyai access modifier default, artinya bahwa atribut dan method tersebut dapat diakses oleh kelas yang sama dan package yang sama.
Contoh Program
public class Manusia{
//bersifat private agar dapat diakses hanya kelas Manusia
private String nama;
//bersifat protected agar dapat diakses oleh subclass nya
protected String jenisKelamin;
public Manusia(String nama, String jenisKelamin){
nama = nama;
jenisKelamin = jenisKelamin;
}
public void setNama(String nama){
this.nama = nama;
}
public String getNama(){
return nama;
}
public void setJenisKelamin(String jenisKelamin){
this.jenisKelamin = jenisKelamin;
}
public String tampilkan(){
return("Nama : "+nama +"\nJenis Kelamin : "+jenisKelamin);
}
}
Non Access Modifier
Java menyediakan beberapa macam Non-Access Modifier, yaitu:
- static
Static adalah salah satu jenis modifier di Java yang digunakan agar suatu atribut atau pun method dapat diakses oleh kelas atau objek tanpa harus melakukan instansiasi terhadap kelas tersebut.
Method main adalah salah satu contoh method yang mempunyai modifier static.
- final
Final adalah salah satu modifier yang digunakan agar suatu atribut atau method bersifat final atau tidak bisa diubah nilainya. Modifier ini digunakan untuk membuat konstanta di Java.
- abstract
Abstract adalah modifier yang digunakan untuk membuat kelas dan method abstrak
- synchronized
Synchronized adalah modifier yang digunakan dalam aplikasi Java berbasis thread. Modifier ini menspesifikasikan bahwa method merupakan thread safe. Artinya bahwa hanya ada satu jalur eksekusi pada method yang menggunakan modifier jenis ini dan memaksa thread thread lain menunggu giliran.
- native
Modifier Native digunakan untuk spesifikasi method dengan implementasi di bahasa lain, seperti C, C++.
- transient
Modifier ini digunakan agar suatu variable tidak bisa di serialisasi. Serialization adalah konsep dimana sebuah objek dapat ditransfer dari suatu aplikasi ke aplikasi lainnya atau dari suatu workstation ke workstation lainnya. Konsep ini sangat diperlukan ketika membuat aplikasi client server.
Salah satu tujuan serialization adalah bahwa tidak boleh ada perubahan terhadap atribut pada saat objek di transformasikan menjadi stream.
- volatile
- implements
- extends
8.Bentuk Umum Konstruktor
Konstruktor adalah method yang dieksekusi pertama kali setelah method main. Biasanya method konstruktor digunakn untuk memberikan nilai inisialisasi program. Nama dari method konstruktor harus sama dengan nama kelas.
Bentuk Umum:
class NamaKelas {
NamaKelas() {
// Lakukan Sesuatu
}
}
Contoh kode
class Kendaraan {
// property
int jumlah_roda;
// membuat konstruktornya dengan parameter jml_roda
Kendaraan(int jml_roda) {
jumlah_roda = jml_roda;
}
// method (prosedur) untuk menampilkan jumlah_roda
void tampilkanJumlahRoda() {
System.out.print(jumlah_roda);
}
}
class Contoh {
public static void main(String[] args) {
// membuat objek dengan nama motor dari kelas kendaraan dengan mengisi konstruktornya
Kendaraan motor = new Kendaraan(2);
// memanggil method untuk menampilkan
motor.tampilkanJumlahRoda();
}
KEKesimpulan
Dari semua pengertian di atas ada banyak pengertian yang kalian pahami dan dapat kalian gunakan buat membikin suatu program di dalam OOP
Tidak ada komentar:
Posting Komentar