DASAR PEMOGRAMAN BERORIENTASI OBJEK
Dasar Pemrograman Berorientasi Objek (PBO)
Pada artikel sebelumnya saya telah
menyampaikan mengenai perulangan (loop) , kali
ini saya akan menyampaikan materi dasar pemrograman berorentasi objek.
Apa yang di maksud dengan Pemrograman Berorientasi Objek?
•Pemrograman Beroroentasi Objek
adalah sebuah paradigma pemrograman yang berorientasikan kepada objek.
•Semua atribut, prosedur dan fungsi
dibungkus dalam objek.
•Interaksi tiap data, prosedur dan
fungsi dilakukan melalui objek.
Kelas
Pengenalan Kelas
•Kelas merupakan kerangka kode yang
berisikan struktur atribut, struktur prosedur dan struktur fungsi yang
digunakan untuk membuat objek.
•Sebuah kelas dapat menghasilkan
lebih dari satu objek.
Membuat Kelas
•Nama kelas harus sama dengan nama
File.
•Nama kelas tidak boleh mengandung
huruf unik (@, #, $, %, &, dll) dan huruf whitespace (spasi, enter, tab,
dll)
class NamaKelas {
// isi
kelas
}
Objek
Pengenalan Objek
•Objek merupakan hasil
instansiasi dari kelas.
•Untuk membuat objek, di Java dapat menggunakan perintah new.
•Atribut, metode dan fungsi yang
dimiliki oleh objek, hanya yang dideklarasikan dalam kelas.
Membuat Objek
•Objek merupakan variabel yang
memiliki tipe data Kelas
•Kriteria pembuatan objek sama
seperti pembuatan variabel.
NamaKelas object = new
NamaKelas();
Atribut
•Atribut merupakan data atau sifat
yang dimiliki oleh sebuah kelas.
•Atribut dibuat layaknya sebuah
variabel.
Membuat Atribut
class NamaKelas {
TipeData namaAtribut;
}
Manipulasi Atribut
•Atribut dapat diakses lewat kelas.
•Untuk mengakses atribut, dapat
menggunakan tanda . (titik)
NamaKelas objek = new NamaKelas();
objek.namaAtribut = …;
Konstanta
•Sebuah atribut dapat dijadikan
sebagai konstanta.
•Caranya sama dengan membuat
variabel konstanta, yaitu dengan menambahkan perintah final.
Membuat Konstanta
class NamaKelas {
TipeData namaAtribut;
final
TipeData namaKonstanta = …;
}
Prosedur
•Prosedur merupakan sebuah kode
program yang dapat digunakan untuk menjalankan instruksi program dalam sebuah
kelas.
•Sebuah kelas dapat memiliki lebih
dari satu prosedur.
•Nama prosedur tidak boleh sama
dengan prosedur lain.
Membuat Prosedur
class NamaKelas {
void
namaProsedur(){
// isi prosedur
}
}
Menggunakan Prosedur
NamaKelas objek = new
NamaKelas();
objek.namaProsedur();
Fungsi
•Fungsi merupakan kode program yang
digunakan untuk menghasilkan sesuatu.
•Untuk mengembalikan hasil, dapat
menggunakan perintah return diikuti dengan data yang dihasilkan.
•Fungsi hanya dapat menghasilkan
sebuah nilai.
•Sebuah kelas dapat memiliki lebih
dari satu fungsi.
•Nama fungsi tidak boleh sama dengan
fungsi yang lain.
Membuat Fungsi
class NamaKelas {
TipeData namaFungsi(){
// kode program
return hasil;
}
}
Menggunakan Fungsi
NamaKelas objek = new
NamaKelas();
TipeData hasil =
objek.namaFungsi();
Parameter
•Parameter merupakan data yang dapat
disisipkan ke dalam prosedur dan fungsi.
•Jumlah parameter dalam prosedur dan
fungsi dapat lebih dari satu.
Membuat Parameter
class NamaKelas {
void
NamaProsedur(TipeData parameter){
// kode program
}
TipeData namaFungsi(TipeData param1,
TipeData param2){
// kode program
return hasil;
}
}
Menggunakan Parameter
NamaKelas objek = new
NamaKelas();
objek.namaProsedur(“String”);
TipeData hasil =
objek.namaFungsi(100, 300);
TIpeData variabel = …;
objek.namaProsedur2(variabel);
this
Kata Kunci this
•Kata kunci this digunakan untuk
mengakses kelas itu sendiri.
•Biasanya kata kunci this digunakan
ketika mengakses sebuah sebuah atribut kelas, dimana nama atribut tersebut sama
dengan nama parameter.
Menggunakan this
class NamaKelas {
String
nama;
void
ubahNama(String nama){
this.nama = nama;
}
}
Overloading
•Overloading merupakan kemampuan
membuat prosedur dan fungsi dengan nama yang sama, namun berbeda jumlah
parameter.
•Parameter dengan jumlah yang sama
diperbolehkan dengan ketentuan tipe data parameternya harus berbeda.
Membuat Overloading (1)
class NamaKelas {
void
NamaProsedur(){
}
void
NamaProsedur(TipeData param){
}
void
NamaProsedur(TipeData param1,
TipeData param2){
}
}
Membuat Overloading (2)
class NamaKelas {
TipeData namaFungsi(){
return hasil;
}
TipeData namaFungsi(TipeData param){
retur hasil;
}
TipeData namaFungsi(TipeData param1,
TipeData param2){
return hasil;
}
}
Menggunakan Overloading
NamaKelas objek = new
NamaKelas();
objek.namaProsedur();
objek.namaProsedur(“String”);
objek.namaProsedur(100,
200);
TipeData hasil1 =
objek.namaFungsi();
TipeData hasil2 =
objek.namaFungsi(“String”);
TipeData hasil3 =
objek.namaFungsi(100, 200);
Konstruktor
•Konstruktor merupakan prosedur yang
diakses secara langsung ketika membuat sebuah objek dibuat.
•Konstruktor dapat memiliki
parameter dan juga dapat di overloading.
•Nama konstruktor harus sama dengan
nama kelas.
Membuat Konstruktor
class NamaKelas {
NamaKelas(){
}
//
overloading konstruktor
NamaKelas(TipeData parameter){
}
}
Menggunakan Konstruktor
NamaKelas objek1 = new
NamaKelas();
NamaKelas objek2 = new
NamaKelas(“parameter”);
Paket
•Paket merupakan fitur yang dapat
digunakan untuk memanajemen file Kelas.
•Biasanya kelas-kelas yang sejenis
dikumpulkan dalam sebuah paket, misal kelas-kelas data disimpan dalam paket
data, kelas-kelas form disimpan dalam paket gui, dan sebagainya.
Membuat Paket
•Membuat paket dilakukan pada kelas,
dan dapat menggunakan perintah package diikuti dengan nama paket nya.
package namapaket;
class NamaKelas {
}
Paket Bertingkat
•Sebuah paket dapat dibuat didalam
paket lagi dengan menggunakan tanda . (titik).
package paket.subpaket;
class NamaKelas {
}
Mengakses Kelas dari Luar Paket
•Secara default, sebuah kelas tidak
dapat menggunakan kelas yang berada dalam luar paket.
•Untuk menggunakan kelas di luar
paket, perlu menggunakan perintah import diikuti dengan nama paket dan
kelasnya.
import
namapaket.subpaket.NamaKelas;
NamaKelas objek = new
NamaKelas();
Visibility
•Visibility merupakan kemampuan
untuk mengontrol sebuah akses ke kelas, atribut, prosedur dan fungsi.
•Java mendukung beberapa visibility,
yaitu :
- Default
- Public
- Private, dan
- Protected
Hak Akses Visibility
|
Visibility
|
Kelas
|
Paket
|
Sub
Kelas
|
Umum
|
|
Private
|
Y
|
|||
|
Default
|
Y
|
Y
|
||
|
Protected
|
Y
|
Y
|
Y
|
|
|
Public
|
Y
|
Y
|
Y
|
Y
|
Visibility Public
Membuat Public
public class NamaKelas {
public
TipeData namaAtribut;
public
void namaProsedur(){
}
public
TipeData namaFungsi(){
return hasil;
}
}
Visibility Private
Membuat Private
public class NamaKelas {
private
TipeData namaAtribut;
private
void namaProsedur(){
}
private
TipeData namaFungsi(){
return hasil;
}
}
Static
Kata Kunci static
•Kata kunci static dapat digunakan
untuk membuat sebuah atribut, fungsi dan prosedur dapat diakses secara langsung
tanpa membuat objek.
•Atribut, fungsi dan prosedur yang
telah diberi kata kunci static, tidak akan dapat mengakses data pada kelas
tersebut secara langsung.
Membuat static
public class NamaKelas {
public
static TipeData namaAtribut;
public
static void namaProsedurStatic(){
}
public
static TipeData namaFungsiStatic(){
return hasil;
}
}
Menggunakan static
// atribut static
NamaKelas.namaAtributStatic;
// prosedur static
NamaKelas.namaProsedurStatic();
// fungsi static
TipeData hasil = NamaKelas.namaFungsiStatic();
Enum
•Enum merupakan jenis kelas yang
hanya memiliki atribut dia sendiri.
•Enum digunakan sebagai pengganti
konstanta.
Membuat Enum
public enum NamaEnum{
ENUM_SATU,
ENUM_DUA,
ENUM_TIGA,
ENUM_EMPAT
}
Menggunakan Enum (1)
public class NamaKelas {
public
NamaEnum atribut;
}
Menggunakan Enum (2)
NamaKelas objek = new
NamaKelas();
// mengubah atribut enum
objek.atribut =
NamaEnum.ENUM_SATU;
Enkapsulasi
•Memastikan atribut objek tidak
dapat diubah dan diakses secara langung.
•Hanya prosedur dan fungsi tertentu
yang diberi izin untuk mengakses dan mengubah atribut objek.
Contoh Enkapsulasi
public class Orang {
private
String nama;
public
void ubahNama(String nama){
this.nama = nama;
}
public
String tanyaNama(){
return this.nama;
}
}
Java Beans
•Java Beans merupakan implementasi
dari enkapsulasi.
•Dalam Java Beans semua atribut
dibuat menjadi private.
•Untuk mengakses atribut dibuat
fungsi getNamaAtribut.
•Untuk mengubah atribut dibuat
prosedur setNamaAtribut.
•Untuk nilai boolean, fungsi yang
dibuat adalah isNamaBoolean.
Contoh Java Beans (1)
public class Orang {
private
String nama;
public
String getNama(){
return this.nama;
};
public
void setNama(String nama){
this.nama = nama;
}
}
Contoh Java Beans (2)
public class Orang {
private
boolean menikah;
public
boolean isMenikah(){
return this.menikah;
}
public
void setMenikah(boolean menikah){
this.menikah = menikah;
}
}
Inner Class
•Inner Class merupakan kelas yang
terdapat dalam sebuah kelas.
•Cara membuat inner class sama
seperti membuat kelas biasa, yang membedakan adalah kelas tersebut berada dalam
blok kelas yang sudah ada.
Membuat Inner Class
public class NamaKelas {
// isi
kelas
public
class NamaInnerClass{
// isi inner class
}
}
Menggunakan Inner Class
NamaKelas o1 = new
NamaKelas();
NamaInnerClass o2 = o1.new
NamaInnerClass()
Static Inner Class
•Kata kunci static dapat juga
digunakan untuk sebuah inner class.
•Dengan menggunakan kata kunci
static, maka inner class tidak akan bergantung lagi pada outer class.
Membuat Static Inner Class
public class NamaKelas {
// isi
kelas
public
static class NamaInnerClass{
// isi inner class
}
}
Menggunakan Static Inner Class
NamaKelas.NamaInnerClass
objek =
new
NamaKelas.NamaInnerClass();
Demikian Pembahasan kali ini
mengenai dasar pemrograman beroriantasi objek. Semoga penjelasan di atas
bisa membantu anda.
- See more at:
http://khairul87.blogspot.com/2017/04/dasar-pemrograman-berorientasi-objek-pbo.
semoga artikel ini bermanfaat....
BalasHapusBagus artikelnya
HapusSuper sekali.....
BalasHapusJos...mas choy
BalasHapusTerimakasih Agan , posting yg sangat membantu. . . Bgus
BalasHapusMinimal gak rugi lak melek an
BalasHapusSaya suka saya suka
BalasHapusTerimakasih Agan , posting yg sangat membantu. . . Bgus
BalasHapusMinimal gak rugi lak melek an
BalasHapusMantabbb ��
BalasHapus👌
BalasHapusIstimewa gan
BalasHapusAda ubi ada talas ada budi balas dong TI09
BalasHapusAda ubi ada talas ada budi balas dong TI09
BalasHapusSangat bermanfaat 👍
BalasHapusBagus dan bermanfaat
BalasHapusini sebuah dasar untuk menuju pembuatan ide ide yg lebih bagus dan kompleks, smga postingan ini bisa dikembangkan lagi untuk kemaslahatan ilmu pendidikan, lanjutkan !!!
BalasHapusThank, artikelnya sgt membantu 😊😀
BalasHapusBagus banget mas, semoga bermanfaat untuk kita semua
BalasHapusMantaps
BalasHapusMantaps
BalasHapusWooooooooooooooooooooooooooooooooooooooooooooooowwwwwwww
BalasHapustrims..atas berbagai pengetahuan yg dibagi.
BalasHapustrims..atas berbagai pengetahuan yg dibagi.
BalasHapusSangat menambah wawasan, ijin copas ya bang
BalasHapuschoy.. mantafff..
BalasHapusMantappp
BalasHapusNice
BalasHapusCukup bagus dan sangat bermanfaat
BalasHapusCukup bagus dan sangat bermanfaat
BalasHapusManis artikel nya gan,sippp
BalasHapus