Skip to main content

Object Oriented Programming

Dalam OOP banyak mengenal class, class ini merupakan sebuah blueprint yang bisa digunakan berkali kali jika cara kerja sebuah object sama dan hanya memiliki perbedaan di valuenya

sebagi contoh seperti ini, ada sebuah pabrik yang ingin membuat mobil, kalau dilihat pada pembuatan tersebut memiliki spesifikasi yang sama namun warna dan mesinnya saja berbeda. dengan demikian maka pabrik pun membuat sebuah cetakan yang bisa digunakan berkali kali. Atau lebih dikenal sebagai template/blueprint

Dijavascript memiliki 2 blueprint yaitu function constructor dan class

Function constructor

function Car() {}

secara sekilas mirip seperti function biasa, namun jika dilihat dengan seksama, terdapat perbedaan pada penamaannya yaitu menggunakan huruf kapital.

// function constructor
function Car() {}

// function biasa
function Car() {}

Class

untuk class sendiri seperti ini

class Car {}

bagaimana untuk penggunaannya

class Car {
constructor(name, engine, color) {
this.name = name;
this.engine = engine;
this.color = color;
}

buildCar() {
return `Build car ${this.name} with engine ${this.engine} and ${this.color} color`;
}
}

const car = new Car("Kangoroo", "t100", "orange");
console.log(car.buildCar());

// outpur
// Build car Kangoroo with engine t100 and orange color

Access Modifier

dalam oop juga terdapat sebuah konsep untuk mengatur akses properti dan method yang ada didalam sebuah class. Tujuan akses ini adalah untuk membatasi function dari luar untuk mengubah nilai atau function yang ada didalam class.

Access modifier memiliki 2 akses yaitu public dan private Dengan akses public, property dan method yang ada di class dapat diakses dari luar class tersebut

jvascript
function Car(name, engine, color) {
// public property
this.name = name;
this.engine = engine;

// private property
var color = color;

// publict method
this.buildCar = () => {
return `Build car ${this.name} with engine ${this.engine} and ${color} color`;
};

function detail() {
return `Detail {this.car} engine ${this.engine} color ${colorProp}`;
}
}

const car = new Car("kangoroo", "t-100", "red");

console.log(car.buildCar());
// Output: Build car kangoroo with engine t-100 and red color
console.log(car.detail());
// Output: TypeError: car.detail is not a function