Tampilkan postingan dengan label OBJECT ORIENTED PROGRAMMING. Tampilkan semua postingan
Tampilkan postingan dengan label OBJECT ORIENTED PROGRAMMING. Tampilkan semua postingan

Senin, 26 Agustus 2019

Static Keyword


class merupakan template dari object. Jadi ketika membuat objek/menginstansiasi nah disitulah kita dapat menggunakan property dan method yang ada di dalam class. Tapi sebetulnya kita bisa mengakses property dan method dalam konteks class. Jadi kita tidak perlu menginstansiasi, dan langsung akses property dan methodnya.

untuk mengakses property atau method yang punya keyword static tambahkan " :: "

$angka adalah variable

gunakan " () " untuk method

Untuk apa static keyword?

Static keyword
- Member yang terkait dengan class, bukan dengan object
- Nilai static akan selalu tetap meskipun object di-instansiasi berulang kali
- Membuat kode menjadi 'procedural'
- Biasanya digunakan untuk membuat fungsi bantuan/helper
- Atau digunakan di class-class utility pada Framework



Visibility ( Access Modifier )


- Konsep yang digunakan untuk mengatur akses dari property dan method pada sebuah objek
- Ada 3 keyword visibility : public, protected, dan private
- public, dapat digunakan di mana saja, bahkan di luar kelas
- protected, hanya dapat digunakan di dalam sebuah kelas beserta turunannya
- private, hanya dapat digunakan di dalam sebuah kelas tertentu saja


Kenapa harus ada Access Modifier?
- Hanya memperlihatkan aspek dari class yang dibutuhkan oleh 'client'
- Menentukan kebutuhan yang jelas untuk objek
- Memberikan kendali pada kode untuk menhindari 'bug'

Minggu, 25 Agustus 2019

Jumat, 23 Agustus 2019

Property & Method


Property
- Merepresentasikan data / keadaan dari sebuah object
- Variable yang ada di dalam object (member variable)
- Sama seperti variable di dalam PHP, ditambah dengan visibility di depannya



Method
- Merepresentasikan perilaku dari sebuah object
- Function yang ada di dalam object
- Sama seperti function di dalam PHP, ditambah dengan visibility di depannya



Contoh :

Property dari mobil : ( properti adalah datanya )
- nama
- merk
- warna
- kecepatanMaksimal
- jumlahPenumpang


Method dari mobil : ( Method adalah perilakunya )
- tambahKecepatan
- kurangiKecepatan
- gantiTranmisi
- belokKiri
- belokKanan



Koding lanjutan



Hasil Cetak

Class & Object

CLASS
- Blue Print / Template untuk membuat instance dari object
- Class mendefinisikan Object
- Menyimpan data dan prilaku yang disebut dengan property dan method

MEMBUAT CLASS
- Diawali dengan menuliskan keyword class, diikuti nama dan dibatasi dengan { } untuk menyimpan property dan method
- Aturan penamaan class sama seperti variable

OBJECT
- Instance yang didefinisikan oleh class
- Banyak object dapat dibuat mengunakan satu class
- Object dibuat dengan menggunakan keyword new

Pengantar OOP

Catatan yang disampaikan oleh Pak Sandika Galih mengenai OOP Dasar

Paradigma dari Pemrograman prosedural
Procedural Programming
- Instruksi dilakukan langkah demi langkah
- memecah program menjadi bagian-bagian kecil
- Disebut prosedur, subroutine atau function
- Linear / Top-to-Bottom

Kelebihan Procedural Programming
- To-the-point
- Simplicity & kemudahan implementasi ( untuk compiler & intrepreter)
- Mudah ditelusuri kesalahannya
- Membutuhkan lebih sedikit memori (dibandingkan dengan OOP)


Karakteristik Object Oriented Programming
- Menyusun semua kode program dan struktur data sebagai objek
- Objek adalah unit dasar dari program
- Objek menyimpan data dan perilaku
- Objek bisa saling berinteraksi
- Bahasa pemrograman yang mengunakan OOP : Java, Ruby, Python, C++. Javascript, PHP5

Kelebihan Object Oriented Programming
- Representasi dunia nyata
- Enkapsulasi & Abstraksi Data
- Reusability
- Skalabilitas & Ekstensibilitas
- Kemudahan pengelolaan
- Kolaborasi/Teamwork
- Digunakan oleh framework php

Konsep OOP pada PHP?

Basic :
- Class & Object
- Property & Method
- Constructor
- Object Type
- Inheritence
- Overriding
- Visibility / Access Modifier
- Setter & Getter
- Static Method

Advanced :
- Abstaract & Interface
- Interceptor
- Object Cloning
- Callbacks & Closures
- Namespaces & Autoloding