Belajar Inheritance dengan JavaScript
Tags: javascript, oop, bahasa
Published: 2020-04-28 19:52:09

Halo. Artikel ini adalah percobaan saya untuk memahami _inheritance_ dengan JavaScript.

---

### Syarat untuk Memahami Inheritance

Syarat yang dibutuhkan untuk bisa memahami inheritance, minimal sudah merasa nyaman dalam membuat/menggunakan **fungsi** dan **objek** pada javascript.

### Inheritance itu Apa?

_Inheritance_ itu proses pewarisan. Ketika sesuatu mewarisi atribut atau fungsi dari sesuatu yang lain, itulah inheritance, dalam pemahaman saya. Sebagai contoh sederhana, seorang anak yang mewarisi rambut ikal dari orang tuanya, itu inheritance. Orang tua yang bisa berbicara karena seorang manusia, itu inheritance. 

### Lebih Memahami Objek dan Atribut Terlebih Dahulu

Sebuah objek bisa memiliki atribut maupun fungsi. 

Jika buah apel adalah objek, warna merah adalah atribut yang dimilikinya.

Jika mobil adalah objek, maka jumlah rodanya adalah atributnya. Sedangkan "bisa menyala" adalah fungsi yang dimiliki oleh objek mobil itu.

### Memahami Inheritance dengan Contoh

Unggas adalah objek. Memiliki bulu adalah atributnya, sedangkan bisa bertelur adalah fungsi yang bisa dilakukan unggas.

Burung adalah objek. Dengan mekanisme inheritance, burung mewarisi atribut dan fungsi dari unggas, yaitu berbulu dan bisa bertelur. 

### Objek, Atribut, dan Fungsi pada JavaScript

Berikut adalah beberapa cara untuk membuat objek, jenis objek, beserta atribut dan fungsinya pada javascript:

```javascript
// Ini jenis objek yang tidak menggunakan prototype
var objek = {
  atribut: "nilai atribut",
  fungsi: function() {
    return "nilai fungsi"
  }
}

...

// Ini adalah objek ber-prototype yang bisa digunakan untuk inheritance
function Objek() {
  this.atribut = "nilai atribut"
  this.fungsi = function() {
    return "nilai fungsi"
  }
}
```

### Berbasis Prototype

JavaScript menggunakan inheritance berbasis prototype. Setiap objek di javascript yang memiliki prototype, bisa diwariskan kepada objek lain.
Berikut contoh penggunaan prototype:

```javascript
const Objek = function(){}

Objek.prototype.atribut = function() {
  return "nilai atribut"
}

console.log(Objek.prototype)
```

### Inheritance pada JavaScript

Dari contoh pembuatan objek di atas, dapat dibuat contoh mekanisme inheritance seperti ini:

```javascript
const Objek = function(){}

Objek.prototype.atribut = function() {
  return "nilai atribut"
}

const Pewaris = function(){}

// Ini yang dimaksud dengan inheritance
Pewaris.prototype = new Objek()

Pewaris.prototype.atributKhusus = function() {
  return "nilai atribut khusus pewaris"
}

console.log(Pewaris)
```

### Manfaat Inheritance

Dalam penggunaan sehari-hari, salah satu manfaat inheritance bisa digunakan untuk mengurangi pengulangan penulisan kode. Sebagai contoh, kita harus membuat 100 objek B yang mewarisi atribut dari sebuah objek A.

Ketika harus merubah sebuah atribut dari objek B, kita tidak perlu melakukannya 100 kali. Cukup merubah atribut pada objek A, karena semua objek B mewarisi atribut yang sama dengan objek A.

---

Inheritance, juga semua konsep OOP yang lain, akan mudah dipahami jika kita sering meggunakannya. Setidaknya dengan memahami dulu apa itu inheritance, kita bisa melatihnya dengan membayangkan objek-objek yang ada di dunia dan mekanisme inheritance-nya.

Sekian tentang inheritance pada javascript. Jika ada kekurangan atau kesalahan, silakan mengirim pesan. Semoga bisa bermanfaat untuk diri sendiri maupun orang lain.

Salam