Anda di halaman 1dari 40

JavaScript - OOP

Impact Byte
Apa itu OOP?
Object Oriented Programming (OOP)
adalah suatu paradigma dalam
pemrograman.

Kita telah mempelajari paradigma


seperti procedural, conditional, hingga
function.
Kita tahu bahwa tipe data dalam javascript terdiri
dari 6 tipe data primitive (value type):
string
number
boolean
null
undefined
Symbol (ES6)
Ada juga yang disbut reference
type:

Object
Function
Array
Object person yang terdiri dari property dan method
Console log object person1 dan person2
Bayangkan kamu diminta
membuat 100 objek yg memiliki
property dan method yang sama.

HMMM banyak ya.


Kita akan membuat hal diatas
menjadi lebih efektif dan powerful
dengan OOP
OOP adalah principle. Jadi dapat
diterapkan pada bahasa
programming selain Javascript
seperti Ruby, Python, dan Java.
4 pilar pada OOP
Ada 4 hal pilar dalam OOP:
Encapsulation
Abstraction
Inheritance
Polymorpishm
OOP pada Javascript
Saat ini OOP dapat dibuat
menggunakan:
function
class (ES6)
Membuat Object person menggunakan function
console log function object Person
Object dengan menggunakan class
console log class object Person
this keyword
This adalah sebuah keyword khusus yang merujuk pada pada objek
pemiliknya.

Maksudnya adalah nilai dari this sangat bergantung pada di mana


keyword this ini diletakkan atau di panggil.

Jika this di gunakan dalam sebuah method maka ia merujuk pada


objek pemiliknya.

Jika this di dalam sebuah function maka ia merujuk pada global


objek atau window.

Dalam kasus function constructor dan class maka keyword this ini
mengacu pada objek instannya.
Pilar 1 - Encapsulation
Encapsulation adalah cara untuk
membatasi akses langsung ke
properti atau method dari sebuah
objek.
Property pricePerKm nilainya menjadi 10000
Property pricePerKm tergantikan dengan nilai 10000 sehingga console.log menjadi 20000 pada method
price()
Seharusnya kita tidak bisa mengganti nilai property pada Class saat
membuat objek baru.

Nilai property dan method pada Class harus independen dan tidak
boleh diganti dari luar Class.

Untuk itu kita gunakan konsep Encapsulation dengan menghilangkan


this pada property dan method yang bernilai constant dan tidak
boleh diubah.
Lakukan encapsulation pada property pricePerKm
Property tetap menggunakan pricePerKm = 4000
Pilar 2 - Inheritance
Inheritance dalam OOP adalah
sebuah proses dimana sebuah class
mewariskan property dan
methodnya ke class lain atau
childnya.
Dari kode diatas, berarti class People mewariskan property name dan age ke class Person
Pilar 3 - Polymorpishm
Secara bahasa, polymorphism berasal dari dua
kata, yaitu poly yang berarti banyak dan morphism
yang berarti bentuk.

Polymorpish ini juga dikenal pada konsep OOP


yang berarti kemampuan dari suatu objek untuk
memiliki banyak bentuk
Pada pilar sebelumnya yaitu inheritance, child class
dapat mewarisi properti dan method dari parent
class.

Nah pada Polymorpishm, method yang diwariskan


bisa kita ubah dengan behaviour yang berbeda
menyesuaikan child class yang kita buat.
Contoh Polymorpishm
Pilar 4 - Abstraction
Abstraction adalah sebuah teknik untuk
menyembunyikan detail tertentu dari sebuah
objek/method dan hanya menampilkan
fungsionalitas atau fitur penting dari objek tersebut.

Terkadang method yang tidak memiliki body pada


parent class.
Kita analogikan seperti ini.

Setiap hari kamu berangkat ke kantor dengan mengendarai


mobil pribadimu.

Kamu sebenarnya tidak perlu tahu bagaimana mesin mobil


itu bekerja sampai membuat mobilnya bisa bergerak atau
bagaimana sistem pembakaran dalam mesinnya dan apa yang
terjadi di dalam mesin ketika kamu menginjak pedal gas.
Yang perlu kamu tahu adalah cara
menyalakan mobil dan tau cara
menyetir.
Contoh abstraction
Contoh abstraction

Anda mungkin juga menyukai