0% menganggap dokumen ini bermanfaat (0 suara)
109 tayangan58 halaman

Pertemuan 5 Fix

Dokumen tersebut membahas tentang tiga karakteristik utama dari pemrograman berorientasi objek yaitu encapsulation, inheritance, dan polymorphism.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
109 tayangan58 halaman

Pertemuan 5 Fix

Dokumen tersebut membahas tentang tiga karakteristik utama dari pemrograman berorientasi objek yaitu encapsulation, inheritance, dan polymorphism.
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PPTX, PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 58

OBJECT ORIENTED (2)

AHYAR MUAWWAL S.KOM M.T


Ada 3 sifat utama kelas - objek
1.Encapsulation
2.Inheritance
3.Polymorphism
1. Encapsulation
Dapat diartikan sebagai bungkusan (wrapper)
pelindung program dan data yang sedan di olah.
Pembungkus ini mendefinisikan perilaku dan
melindungi program dan data yang sedang di olah
agar tidak di akses sembarangan oleh program lain
Access Specifiers dan Access
Modifiers
Kelas memungkinkan obyek untuk mengakses atribut atau
method dari kelas lain. Java menyediakan Access Specifiers
dan Modifiers untuk menentukan bagian dari kelas yang
boleh diakses oleh kelas lain dan bagaimana penggunaan
atribut dan method tersebut. Penggunaan Access Specifiers
merupakan implementasi dari fitur OOP Encapsulation.
1.1 Access Specifiers
Access Specifiers mengontrol pengaksesan dari
bagian kelas oleh obyek yang lain. Access Specifiers di
Java adalah :
1. Public
2. Private
3. Protected
4. Friendly
Access Specifiers Public
Access Specifiers public membuat kelas dapat diakses dari manapun termasuk dari kelas lain dan
kelas-kelas yang berada dalam package yang berbeda. Keyword public digunakan untuk
mendeklarasikan bahwa bagian kelas tersebut public. Access Specifiers ini dapat digunakan baik
untuk method, atribut, maupun kelas.

public <data type> <variable name>;


public string librarianName;
Access Specifiers Private
Access Specifiers Private digunakan untuk menyediakan akses yang sangat terbatas. Bagian yang
dideklarasikan sebagai private hanya dapat diakses oleh anggota kelas itu sendiri. Keyword
private digunakan untuk mendeklarasikan Access Specifiers private.

private <data type> <variable name>;


private int librarianID;
Access Specifiers Protected
Access Specifiers protected digunakan jika anggota kelas dapat diakses oleh kelas turunan.
Keyword protected digunakan untuk mendeklarasikan anggota sebagai protected

protected <data type> <variable name>;


protected string librarianName;
Access Specifiers Friendly
Jika kita lupa memberikan atau tidak memberikan suatu Access Specifier pada anggota kelas,
maka secara otomatis Access Specifiersnya adalah friendly. Access Specifiers ini mempunyai
akses seperti Public tetapi hanya untuk kelas yang berada dalam satu package. Access Apecifiers
friendly tidak memerlukan keyword, karena ini hanya jenis akses level. Friendly merupakan
default Access Specifiers pada Java.

<data type> <variable name>;


int librarianID;
1.2. Access Modifiers
Access Modifiers digunakan untuk mendefinisikan bagaimana suatu atribut dan method
digunakan oleh kelas dan obyek yang lain. Perbedaan utama Access Specifiers dan Modifiers
adalah, Access Specifiers mendefinisikan hak akses anggota kelas, sedangkan Modifiers
digunakan untuk mendefinisikan bagaimana suatu method atau atribut dapat dimodifikasi oleh
kelas yang lain. Modifiers di Java adalah :
1. Static
2. Final
3. Abstract
4. Native
5. Synchronized
Access Modifiers Static
Atribut dan method dapat menjadi statik atau tidak statik. Bagian kelas (atribut dan method) yang
tidak statik disebut sebagai atribut instance dan method instance, sedangkan bagian kelas yang statik
disebut sebagai atribut kelas dan method kelas yang dimiliki oleh kelas dan bukan instance dari kelas.
static int LibrarianID;//static attribute
int LibrarianID; //non static attribute
static void getLibrarianName();//static methods
void getLibrarianName(); //non static method
Setiap instance dari kelas (object) mendapatkan copy-an atribut instance dan method instance yang
didefinisikan di dalam kelas. Atribut kelas membawa informasi yang dibagi ke semua instance dari
kelas, jika satu obyek mengubah atribut maka akan mengubah semua obyek yang berasal dari kelas
yang sama. Method kelas dapat digunakan secara langsung tanpa harus membuat instance (obyek),
sedangkan jika akan mengakses method instance maka harus membuat instance dari kelas terlebih
dahulu (obyek).
Access Modifiers Final
Modifiers final mengindikasikan bahwa anggota kelas tidak dapat dimodifikasi. Keyword final
digunakan dalam method, atribut, dan kelas. Jika sebuah atribut telah dideklarasikan final maka
kita tidak dapat mengubah nilai atribut tersebut, final juga membuat kelas tidak dapat
diturunkan (inheritance) karena method yang final tidak dapat dimodifikasi di dalam kelas
turunan.
Access Modifiers Abstract
Kelas abstract digunakan sebagai kelas dasar yang nantinya akan diturunkan ke kelas lainnya.
Kelas abstrak selalu mempunyai kelas turunan.
Access Modifiers Native
Modifier native digunakan hanya untuk method. Modifier ini digunakan untuk
menginformasikan compiler bahwa method tersebut telah dikodekan dengan bahasa
pemrograman selain Java, seperti C atau C++.
Access Modifiers Synchronized
Modifier synchronize digunakan hanya untuk method. Modifier ini digunakan untuk mengontrol
akses ke bagian kode ketika sedang menjalankan sistem secara multithread (banyak thread).
Contoh encapsulation
Modifier public
2. INHERITANCE
Contoh kita akan mengambil lampu dan
lampupijar sebagai kasus

Lampu

LampuPijar LampuBohlam
Kita membuat superclass lampu
dengan sifat dari konstuctornya
adalah protected
public class LampuPijar extends Lampu{ Lampupijar disini adalah
protected String nama; turunan dari lampu dengan
public LampuPijar(){ modifier protected.
System.out.println("Inside LampuPijar :
Constructor");
}
public void setNama(String nama){
this.nama = nama;
}
public String getNama(){
return nama;
}
}
Buat program ekseskuinya
dengan perintah main.

Kemudian lihat hasilnya


bahwa data protected pun
dapat diakses oleh anak kelas
(subclass) berdasarkan
turunan dari parent kelas
(superclass)
Method Overriding
Method subclass override terhadap method superclass
ketika subclass mendeklarasikan method yang signaturenya
serupa ke method dalam superclass. Signature dari method
hanyalah informasi yang ditemukan dalam definisi method
bagian atas. Signature mengikutkan tipe return, nama dan
daftar parameter method tetapi itu tidak termasuk acces
modifier dan tipe yang lain dari kata kunci seperti final dan
static. Inilah perbedaan dari method overloading. Method
overloading secara singkat didiskusikan dalam sub bagian
pada kata kunci this.
Method overloading
pengertian method overloading. Konstruktor seperti juga method dapat juga menjadi overload. Method yang berbeda
dalam class dapat memberi nama yang sama asalkan list parameter juga berbeda. Method overloaded harus berbeda
dalam nomor dan/atau tipe dari parameternya. Contoh selanjutnya memiliki konstruktor overloaded dan referensi this
yang dapat digunakan untuk menunjuk versi lain dari konstruktor.
Inheritance ( kata kunci SUPER)
Penggunaan kata kunci super berhubungan dengan
pewarisan. Super digunakan untuk meminta
konstruktor superclass. Super juga dapat digunakan
seperti kata kunci this untuk menunjuk pada
anggota dari superclass. Program berikut
mendemonstrasikan bagaimana referensi super
digunakan untuk memanggil konstruktor superclass.
Perhatikan kata super(frame, lname)
Memangggil konstruktor dari superclass
POLIMORFISME
Adalah nama kelas yang dapat digunakan untuk
tujuan yang berbeda.

berarti satu objek dengan banyak bentuk yang berbeda,


adalah konsep sederhana dalam bahasa pemrograman
berorientasi objek yang berarti kemampuan dari suatu
variabel referensi objek untuk memiliki aksi berbeda bila
method yang sama dipanggil, dimana aksi method tergantung
dari tipe objeknya.
Kondisi yang harus dipenuhi untuk
polimorphisme antara lain :
1. Method dari kelas turunan yang akan dieksekusi, dipanggil harus melalui variabel
dari basis class/ class induk atau superclass
2. Method yang dipanggil harus merupakan member dari kelas induk atau
superclass
3. Nama method di kelas induk harus sama dengan ada di kelas turunan
4. Method access attribute pada subclass/ turunan tidak boleh lebih terbatas dari
superclass / kelas induk
Hak akses protected lebih terbatas dari public
Dan hak akses private lebih terbatas dari protected
Perbedaan polimorfisme & inheritance
Inheritance (Pewarisan) adalah salah satu bentuk penggunaan kembali
perangkat lunak dimana suatu kelas baru dibuat dari kelas yang sudah ada
dengan memakai variabel data fungsi (method) dari kelas yang sudah ada
tersebut serta menambah atribut/pelaku yang baru, kelas baru otomatis
memiliki variabel atau fungsi yang dimiliki kelas asal. Misalkan saja contohnya
pada mobil. Mobil mempunyai atribut dan method yang umum dibandingkan
truk, sedan atau bus. Mobil sebagai kelas yang mewarisi atau disebut dengan
super class. Truk, sedan, atau bus adalah turunannya yang disebut sub class
yaitu kelas yang diwarisi. Artinya class yang mengandung member yang sama
dinamakan superclass dan class yang diturunkan dinamakan subclass. Jadi jika
kita sudah membuat class, tidak perlu membuat class lagi, hanya menambahkan
fungsi/method yang dibutuhkan saja. Dan tentu kita tidak perlu bersusah-susah
menulis ulang semua syntax-nya.
Polimorfisme memiliki kemampuan untuk memiliki bentuk atau wujud berbeda.
Dalam istilah pemrograman, kata ini memiliki arti kemampuan dari suatu
variabel referensi objek untuk memiliki aksi berbeda bila method yang sama
dipanggil, dimana aks method tergantung dari tipe objeknya atau Polymorphic
dapat berarti banyak bentuk, maksudnya yaitu kita dapat menimpa (override),
suatu method yang berasal dari parent class (super class) dimana object
tersebut diturunkan, sehingga memiliki kelakuan yang berbeda. Misalkan, di
dalam sebuah rumah terdapat 4 orang yaitu Ibu, ayah, kakak, dan adik. Kita
minta untuk melakukan sesuatu, ibu sedang menyapu, ayah sedang
memperbaiki mobil, kakak sedang membereskan kamar dan adik sedang
bermain. Jadi method yang sama mungkin bisa diterapkan secara lain jika objek
yang menerapkannya berlainan.
Pada inheritance ada 2 macam yaitu overriding dan overloading. Overriding adalah menulis
kembali fungsi yang sudah ada pada superclass dengan menghasilkan hasil yang berbeda.
Overloading adalah mengijinkan superclass mempunyai method dengan nama yang sama tetapi
penulisan parameter yang berbeda yaitu tipe data dan jumlah parameternya. Suatu superclass
dapat mewarisi kepada banyak subclass, dimana subclass tersebut mewarisi semua sifat
superclass. Inheritance hanya mewarisi sifat induk ke anaknya tidak merubah bentuk anaknya,
jadi bentuk pada object subclassnya sama dengan bentuk induknya. Berbeda dengan
Polymorphisme yang dapat merubah bentuk object subclassnya yaitu untuk memerintah objek
agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses
berbeda. Perlu diperhatikan bahwa dalam polymorphisme, satu object hanya boleh mempunyai
satu bentuk saja yaitu bentuk yang diberikan ketika object itu dibuat, dan reference variable bisa
menunjuk ke bentuk yang berbeda.
HADIAH
buatlah aplikasi polimorphisme dan inheritance
untuk mencari volume bola dengan masing –
masing data di inputkan.

Anda mungkin juga menyukai