1. Pengenalan
OOP Fundamental :
- Classes
- Object
- Method
- Visibility
- Inheritance
- Polymorphism
- Abstraction
- Encapsulation
2. Kelas dan Atribut
Membuat Sebuah Kelas :
- Nama kelas harus sama dengan nama file.
- Nama kelas tidak boleh mengandung suatu simbol, whitespace (spasi, enter, tab).
class NamaKelas{
//isi kelas
}
Atribut...
- Atribut merupakan data pendukung yang dimiliki oleh kelas.
- Atribut dibuat seperti membuat suatu variabel.
Membuat suatu Atribut :
class NamaKelas{
tipeData namaAtribut;
tipeData namaAtribut2;
dll
}
Kelas dapat memiliki beberapa variabel (atribut/sifat) :
a. Lokal variabel : variabel yang dideklarasikan di dalam sebuah method, constructor, atau block ({}).
b. Instance variabel :
- variabel dalam class, namun diluar method.
- variabel instance bisa dibaca di semua method, constructor, atau block ({}).
c. Class variabel : variabel yang dideklarasikan dalam class, di luar method, dengan menggunakan static keywoard.
3. Objek dan memanggil atribut.
- Semua atribut/variabel yang ada dalam kelas dapat kita panggil di kelas yang lain menggunakan objek.
- untuk membuat objek di java, bisa menggunakan perintah keyword new.
- untuk memanggil atribut yang ada dalam sebuah kelas bisa menggunakan tanda Titik (.).
- variabel/atribut, method yang dipanggil via objek, hanya yang dideklarasikan dalam kelas.
Cara membuat objek untuk memanggil variabel yang ada dalam kelas :
NamaKelas objek = new NamaKelas();
objek.namaAtribut;
objek.namaAtribut = value;
4. Method
- Kumpulan beberapa perintah yang nantinya bisa dieksekusi secara bersama-sama di suatu class lain (dipanggil menggunakan objek).
- sebuah kelas dapat memiliki banyak method (lebih dari satu).
- nama method tidak boleh sama dengan method lain.
Method dibagi 2:
a. Procedure
- dideklarasikan dengan menggunakan keyword void dan diikuti nama procedurenya.
- dapat menjalankan lebih dari satu perintah.
class Mobil{
void namaProsedur(){
//isi perintah prosedur
}
}
b. Function
- dideklarasikan dengan menggunakan tipeData dan diikuti nama function.
- hanya dapat menjalankan satu (1) hasil perintah atau satu (1) value.
- untuk menghasilkan nilai (value) bisa menggunakan perintah return.
- sebuah function wajib ada perintah return, untuk mencetak valuenya (hasil).
class Mobil{
int namaFunction(){
//code
return value(hasil);
}
}
Cara memanggil method:
NamaKelas objek = new NamaKelas();
objek.NamaMethod();
5. Parameter
Parameter adalah tipe data dan variabel yang disisipkan ke dalam suatu method.
Membuat Parameter:
void namaProsedur(tipeData namaVariabel){
//code
}
TipeData namaFunction (tipeData variabel, tipeData variabel2){
//code
return value;
}
#catatan : setiap jumlah parameter yang kita deklarasikan di method, ketika kita panggil dengan objek, maka objek tersebut harus wajib juga dideklarasikan jumlah parameternya sesuai dengan deklarasi parameter di method. jika tidak sesuai maka akan error.
6. Keyword this
- Keyword this , untuk mengakses kelas itu sendiri.
- biasanya penggunaan keyword this untuk mengakses atribut kelas, jika atribut dan parameter yang ada di method memiliki nama yang sama.
Membuat this:
Class namaKelas{
String nama;
void cariNama(String nama){
this.nama = nama;
}
}
7. Overloading
- Overloading adalah kemampuan membuat dengan nama method yang sama pada satu kelas, namun berbeda parameternya (nama method bisa sama, parameter berbeda).
- bisa juga method sama jumlahnya, namun tipe datanya berbeda.
- intinya, tidak boleh sama persis, bila ada yang berbeda dalam parameternya, maka itu diperbolehkan.
- java mendukung fitur overloading.
Contoh Overloading:
void nama(String nama){
}
void nama(String nama, String alamat){
}
void nama(int umur){
}
8. Constructor
- Constructor adalah method khusus yang dijalankan secara otomatis saat sebuah objek dibuat.
- constructor mirip seperti method, perbedaannya dapat langsung diakses dengan hanya mendeklarasikan objeknya.
- constructor memiliki parameter dan dapat juga di overloading.
Pembuatan constructor:
- pembuatan constructor harus sesuai dengan nama kelasnya, tidak ada void, dan tidak ada return value.
class User{
User(){
}
User(String nama){
}
}
Memanggil Constructor:
NamaKelas objek = new NamaConstructor();
NamaKelas objek = new NamaConstructor("Parameter");
9. Package
- Package digunakan untuk mengelompokkan atau mengatur letak sebuah class di java.
- Package berupa folder atau sub folder yang berada di projek aplikasi java.
Deklarasi Package: Package namaPackage.subPackage.FileJava;
Memanggil Kelas dari file beda package:
- untuk menggunakan (memanggil) kelas yang berbeda package, maka perlu kita kasih tahu letak package alamat kelas yang kita panggil.
- untuk menggunakan atau memanggil kelas yang berbeda packagenya, perlu diimport kelasnya, alamat packagenya, disertai nama file classnya.
- gunakan keyword import namaPackage.subPackage.namaKelas;
contoh: import informasi.data.Mahasiswa;
10. Akses Modifier
Di Java ada 4 hak akses:
- Default (tanpa hak akses) : hanya dapat diakses oleh package dan kelas sendiri.
- Private : Hanya bisa diakses di kelas sendiri.
- Public : bisa diakses disemuanya.
- Protected : bisa diakses didalam satu package dan sub kelas (turunan kelas).
Yang bisa diberi hak akses : variabel, method, class.
11. Keyword static
- keyword static dapat digunakan untuk mebuat sebuah atribut (variabel), method, dan nested class (inner class) atau kelas dalam kelas.
- atribut (variabel), method, dan nested class (inner class) yang telah diberi keyword static, maka dapat langsung diakses tanpa membuat objeknya.
- atribut (variabel), method, dan nested class (inner class) yang telah diberi keyword static, maka tidak akan dapat mengakses data pada kelas tersebut secara langsung. data yang akan kita ambil juga mesti diubah menjadi static agar bisa mengakses data tersebut.
12. Enscapsulation
- Adalah suatu proses membungkus sebuah atribut (variabel) ke dalam suatu method.
- di enscapsulation variabel akan disembunyikan dari kelas dan package lain (private), dan hanya dapat diakses dan dirubah value atributnya bila menggunakan sebuah method.
Proses Enscapsulation:
- deklarasi atrobutnya menggunakan hak akses private.
- buatkan 2 method (per atribut), untuk mengambil value atribut (variabel) dan untuk mengubah/memodofikasi value dari atribut (variabel).
Fungsi enscapsulation:
- bisa digunakan untuk melakukan sebuah perintah tertentu sebelum method dijalankan.
- di dalam method, kita dapat melakukan kontrol apapun sebelum sebuah data disimpan.
- biasanya digunakan untuk melakukan validasi di dalam method tersebut.
- lebih secure, karena atributnya dibungkus ke dalam suatu method dan di method kita bisa lebih leluasa melakukan modifikasi perintah tertentu.
Contoh Enscapsulation:
public class NamaKelas{
String nama;
public String getCariNama(){
return this.nama;
}
public void ModifikasiNama(String nama){
this.nama = nama;
}
}
13. Java Beans
- Java beans merupakan implementasi dari enscapsulation, bedanya hanya java beans sudah di set dalam pembuatan methodnya, menggunakan getNamaAtribut (untuk mengambil data) dan setNamaAtribut (untuk memodifikasi data).
- kecuali untuk atribut tipe data boolean, menggunakan isNamaAtribut (untuk ambil atribut) dan setNamaAtribut (memodifikasi atribut) untuk pembuatan methodnya.
- dalam pembuatan atributnya sama seperti enscapsulation, semua atribut dibuat menggunakan hak akses private.
14. Inner Class
- merupakan kelas yang letak pembuatannya di dalam kelas.
- cara pembuatan inner class sama seperti membuat class biasa, bedanya jika inner class dibuat di dalam suatu kelas yang sudah dibuat.
Contoh:
public class Mahasiswa{
public class dosen{
}
}
Cara memanggil inner class:
NamaKelas objek = new NamaKelas();
NamaInnerClass objekInner = objek.new NamaInnerClass();
15. Pewarisan
- merubah suatu proses menurunkan sifat (atribut, method) dari kelas utama ke suatu kelas lainnya.
- atau bisa dibilang, kelas orang tua mewarisi atribut dan method ke suatu kelas anaknya.
- setiap kelas utama (orang tua) dapat mewarisi lebih dari satu kelas anak.
- namun, setiap kelas anak, hanya dapat mewarisi satu kelas orang tua.
- di java untuk melakukan pewarisan dapat menggunakan keword extends.
Contoh kelas orang tua:
public class OrangTua{
public void makan(){
System.out.println("Makan Lauk Sate");
}
}
contoh kelas anak:
public class Anak extends OrangTua{
//maka semua sifat kelas orang tua (method makan) sudah diwarisi ke kelas anak
}
16. Overriding dan Keyword super
- Overriding merupakan suatu proses mendeklarasikan ulang suatu method yang sudah ada di kelas orang tua.
- yang akan dibaca ketika dipanggil adalah method kelas di anak (setelah method dideklarasikan ulang), sedangkan method yang dipanggil di kelas orang tua, valuenya akan berubah sesuai isi value deklarasi ulang di kelas anak.
- keyword super adalah keyword untuk memanggil method di kelas orang tua.
- di deklarasikan (dibuat) di kelas anak.
- fungsinya untuk menandakan bahwa method tersebut adalah valuenya milik kelas orang tua.
Contoh kelas orang tua:
public class OrangTua{
public void makan(){
System.out.println("Makan Lauk Sate");
}
}
contoh kelas anak:
public class Anak extends OrangTua{
public void makan(){
System.out.println("Makan daging");
}
public void makanOrangTua(){
super.makan();
}
17. Polymorphism
- objek banyak bentuk, sebuah objek bisa memilih banyak bentuk, bisa dari kelas parrent / orang tua (super class) namun valuenya bisa dipanggil menggunakan kelas turunannya.
- sebuah kelas bisa bertingkah laku atau memiliki sifat kelas turunannya (kelas parrent atau super namun bisa memiliki kelas turunannya).
- sebuah class dapat disamarkan menjadi class parentnya (super).
Contoh:
Parent objek = new classTurunannya();
18. Kelas abstrack dan Method abstrak
Yang bisa dibuat abstrak : kelas abstrack, method abstrak.
- Abstraction merupakan kelas yang tidak dapat digunakan objek kelasnya (tidak dapat diinstantiaed objeknya), kecuali dari kelas turunannya.
- untuk menggunakan kelas abstrak, hanya bisa digunakan dari kelas turunannya, beserta mengimplementasikan abstrak methodnya (jika ada).
- jika ada sebuah method di kelas abstrak, maka semua methodnya wajib dideklarasikan di kelas objek pemanggilannya.
- untuk pembuatan method abstrak hanya bisa dibuat di kelas abstrak.
- jadi kelas abstrak biasanya selalu menjadi kelas super (parent/orangtua).
- untuk membuat kelas atau method abstrak dapat menggunakan keyword : abstract.
Contoh Abstrack:
public abstract class Mahasiswa{
public abstract void namaMethod();
public abstract void namaMethod2();
}
Contoh Implementasi:
public class Matakuliah extends Mahasiswa{
public void namaMethod(){
}
public void namaMethod2(){
}
}
19. Interface dan turunan kelas
- Interface bukan sebuah kelas, tapi bisa dibilang tipe kelas.
- interface merupakan salah satu tipe kelas di Java, mirip seperti class.
- isi dari interface biasanya kumpulan method yang belum dideklarasikan isi methodnya (mirip method abstract).
- interface tidak bisa di instace secara langsung objeknya, namun bisa menggunakan interface turunannya.
- pembuatan interface menggunakan keyword interface, tidak menggunakan keyword class.
Aturan inheritance(pewarisan) di interface (turunan)
- sebuah interface dapat diturunkan ke sebuah class dengan menggunakan keyword implements.
- sebuah interface dapat mewarisi lebih dari satu interface ke suatu class.
- semua method di inteface, wajib dideklarasikan semua methodnya di kelas turunannya.
- namun jika yang diturunkan (diwarisi) adalah kelas abstract, maka methodnya tidak wajib dideklarasikan, tapi kelas turunan dari method abstract tersebut wajib mendeklarasikan semua method yang ada di interface.
Contoh interface:
public interface Mahasiswa{
public void namaMethod();
public void namaMethod2();
}
Contoh implementasi interface:
public class Matakuliah implements Mahasiswa{
public void namaMethod(){
}
public void namaMethod2(){
}
}
20. Pewarisan antar interface
- interface, bisa diwariskan antar sesama interface lainnya.
- untuk melakukan pewarisan antar interface, emnggunakan keyword extends.
- interface dapat mewarisi (menurunkan) ke lebih dari satu interface (banyak).
Contoh pewarisan antar interface:
public interface Mahasiswa{
public void namaMethod();
public void namaMethod();
}
public interface Dosen{
int NIK();
}
Contoh Implementasi interface:
public class Matakuliah extends Mahasiswa, Dosen{
public void namaMethod(){
}
public void namaMethod2(){
}
public int NIK(){
return NIK;
}
}
21. Konversi kelas objek polymorphism
- Konversi kelas merupakan pengembalian objek ke kelas semula, sehingga kita bisa mengakses method yang ada di dalam objek polymorphismnya.
- jika tidak dikonversi, maka tidak dapat mengakses method selain yang tidak ada di kelas super (induk) atau tidak bisa mengakes method yang ada di kelas objek polymorphism (kecuali method tersebut ada di kelas super/induk).
Cara Konversi kelas polymorphism:
KelasParrent parrent = new KelasPoly();
KelasPoly poly = (KelasPoly) parrent;
0 Comments