1. Pemrograman berorientasi objek
Pemrograman berorientasi objek merupakan pemrograman yang menjadikan objek
sebagai komponen utama dalam sistem. Objek merupakan gabungan data dan fungsi, dimana sebuah objek dibuat dari sebuah kelas
1.1.Object/Objek
Objek merupakan hasil dari sebuah kelas, jika diibaratkan Objek adalah kue, maka kelas adalah cetakan kuenya, dimana kue dibuat menggunakan cetakan tersebut. Dan sebuah cetakan kue dapat membuat beberapa kue, artinya sebuah kelas dapat membuat beberapa objek
Sebuah objek adalah software yang menggabungkan keadaan yang saling terkait dengan perilakunya ( state and behaviour ). Software Object sering dijelaskan dengan memodelkan bendadi dunia nyata yang kita temukan dalam kehidupan sehari-hari. Software Object secara konseptual mirip dengan objek di dunia nyata. Mereka juga terdiri dari perilaku, keadaan dan keterkaitan. Sebuah objek menyimpan keadaan dalam sebuah bidang (variabel dalam beberapa bahasa pemrograman) dan menghadapkan perilakunya melalui metode (fungsi dalam beberapa bahasa pemrograman). Metode-metode pengoperasiannya pada keadaan internal objek dan berfungsi sebagai mekanisme utama untuk komunikasi objek ke objek. Menyembunyikan keadaan internal dan membutuhkan semua interaksi yang akan dilakukan melalui metode objek ke objek dikenal sebagai enkapsulasi data ( prinsip dasar pemrograman berorientasi obyek ).
Untuk membuat objek dalam java diperlukan sebuah perintah new, dimana cara pembuatannya sama dengan pembuatan variable
Kelasobjek = new kelas();
1.2.Atribut/Property
Property (atau disebut juga dengan atribut) adalah data yang terdapat dalam sebuah class.
Atribut/Property yaitu data yang membedakan objek yang satu dengan yang lain. Property ini adalah variable
Contoh : Manusia Salah satu mahluk hidup.
Atributnya: status, berat badan, dan tinggi badan.
Instance Variable
1. Atribut untuk tiap objek dari class yang sama.
2. Tiap objek menyimpan dan mempunyai nilai
atributnya sendiri.
3. Tiap objek dari class yang sama boleh mempunyai
nilai yang sama ataupun berbeda
1.3.Metode/Behaviour
Metode/behavior merupakan hal-hal yang bisa dilakukan sebuah object dari sebuah class.
Dalam java terdapat dua buah metode
1. Fungsi, merupakan metode yang memiliki nilai balik jika metode tersebut dipanggil, cara pembuatan sebuah fungsi adalah dengan cara menentukan nilai baliknya, lalu membuat nama metodenya
2. Prosedur, merupakan metode yang tidak memiliki nilai balik, cara pembuatan prosedur sama dengan fungsi namun bedanya, nilai baliknya menggunakan kata kunci void
Contoh :
2. Konsep Pemrograman berorientasi objek
2.1. Enkapsulasi/Pembungkusan
Enkapsulasi : Pembungkusan variabel dan method dalam sebuah objek yang terlindungi serta menyediakan interface untuk mengakses variabel tersebut.
Variabel dan method yang dipunyai suatu objek, bisa ditentukan hak aksesnya
Contoh : Jam Tangan
Digunakan untuk mengetahui waktu
Cara jam mencatat waktu baik yang analog maupun digital tidak
penting kita ketahui
2.2. Inheritance/Pewarisan
Pewarisan sifat merupakan pewarisan atribut dan method dari sebuah class ke class lainnya
Class yang mewarisi = superclass
Class yang diwarisi = subclass
Subclass bisa berlaku sebagai superclass bagi class lainnya
Contoh : terdapat class sepeda dan sepeda gunung
Sepeda = superclass
Sepeda gunung = subclass
Sepeda gunung memiliki variabel dan method yang dimiliki oleh sepeda
2.2.1.Keuntungan pewarisan sifat
1. Subclass menyediakan state/behavior yang spesifik yang membedakan dengan superclass -> memungkinkan programmer menggunakan ulang source code dari supercass yang telah ada
2. Programmer dapat mendefinisikan superclass khusus yang bersifat
generik yang disebut abstarct class, untuk mendefinisikan class dengan tingkah laku dan state secara umum
Bahasa Java : single inheritance
Suatu class hanya boleh mempunyai satu superclass
2.3. Inner Class
Java mendukung pembuatan kelas didalam kelas. Cara membuat kelas didalam kelas sama dengan membuat kelas seperti biasanya, hanya lokasinya berada dalam sebuah badan kelas
2.4. Abstract Class/Kelas Abstraksi
Kelas abstract merupakan kelas dimana memiliki metode-metode namun tidak dideklarasikan, pendeklarasiannya terjadi pada kelas turunannya. Untuk membuat kelas abstract sama dengan membuat kelas biasanya, namun diawali dengan kunci abstract pada kelasnya dan diawali dengan kata kunci abstract pada metode yang akan dibuat namun tidak akan dideklarasikan. Metode abstract tidak perlu deklarasinya.
2.5. Interface
Interface merupakan mekanisme dimana kita dapat menentukan metode-metode yang harus ada pada kelas. interface hampir mirip dengan kelas abstrak,
ada beberapa perbedaan pada interface dan kelas abstrak
1. kelas abstrak bisa mengandung metode abstrak dan metode tidak abstrak, sedangkan pada interface harus semua metode abstrak
2.kelas abstrak dapat memiliki atribut, sedangkan interface tidak boleh memiliki atribut
3.kelas abstrak digunakan oleh kelas lain menggunakan pewarisan, sedangkan interface menggunakan implementasi.
2.6. Polimorfisme/Banyak bentuk
Polimorfisme adalah kemampuan suatu objek untuk mempunyai lebih dari satu bentuk
Dengan polimorfisme, suatu interface yang sama untuk memerintah objek agar melakukan aksi atau tindakan yang mungkin secara prinsip sama namun secara proses berbeda
Contoh : Penyanyi melakukan aktivitasnya dengan bernyanyi. Kita
baru mengetahui penyanyi tersebut adalah penyanyi jazz setelah
mendengarkannya menyanyikan lagu jazz, demikian pula dengan
penyanyi dangdut atau penyanyi pop. Namun demikian
kesemuanya memiliki aktivitas yang sama, yaitu bernyanyi.
2.7. Package/Paket
Package menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya dapat disamakan dengan direktorinya.
Dalam java, beberapa kelas dapat digabungkan dalam sebuah unit bernama paket(package). Penggunaan paket sangat dianjurkan
agar kelas-kelas terlihat lebih teratur.
untuk mendeklarasikan paket, hanya perlu menggunakan kunci package pada bagian atas file java diikuti nama paket.
Nama paket tidak boleh diawali dengan nomor dan tidak boleh mengandung karakter unik dan spasi. paket biasanya bertingkat,
untuk memeberikan tingkatan pada paket kita dapat menggunakan tanda titik, misal aplikasi.data
dianjurkan jika kita membangun sebuah sistem yang besar, maka diperlukan pengelompokan jenis-jenis kelas dalam paket. Misal untuk kelas-kelas
tabel dapat dimasuukkan kepaket data, kelas-kelas form bisa dimasukkan ke paket form dan lain-lain. jika kita akan menggunakan kelas
dengan lokasi paket yang sama, kita dapat menggunakannya langsung, namun jika kita akan menggunakan kelas dengan
paket yang berbeda, maka kita perlu menggunakan import disertai lokasi paket dan nama kelasnya
2.8. Konstruktor
Konstruktor merupakan metode yang secara otomatis dipanggil ketika sebuah objek dipanggil. Cara membuat metode konstruktor adalah nama metode harus sama dengan nama kelas dan tidak mengembalikan nilai balik dan tidak pula menggunakan kunci void
2.9. Overloading Konstruktor
Overloading merupakan mekanisme dimana kita dapat membuat lebih dari satu buah konstruktor pada sebuah kelas. Namun dengan
ketentuan, setiap konstruktor harus memiliki parameter yang berbeda, bisa berbeda jumlah parameternya ataupun bisa berbeda tipe data parameternya
2.10. Overloading Metode
Selain pada konstruktor, overloading juga bisa dilakukan pada metode, misal kita akan membuat dua buah metode ubah, metode pertama menggunakan parameter nama dan metode kedua menggunakan parameter nama dan alamat
2.11. Overriding
Overriding tidak sama dengan overloading, overloading merupakan mekanisme dimana sebuah metode dapat dideklarasikan ulang pada kelas turunannya. Misal ada dua buah kela Bayi dan Dewasa, pada kelas bayi tersebut terdapat metode lari() yang memerintahkan untuk lari