Object Oriented Programming (OOP) adalah salah satu paradigma pemrograman yang populer dan banyak digunakan dalam pengembangan perangkat lunak. Selain OOP, terdapat berbagai paradigma pemrograman lainnya seperti procedural programming dan functional programming. Meskipun ada banyak pendekatan dalam menulis program, OOP memiliki karakteristik unik yang membuatnya sangat efisien untuk organisasi dan pengelolaan kode.
Beberapa istilah yang perlu dimengerti dalam OOP yaitu: Object dan Class
Apa Itu Objek?
Untuk memahami OOP, kita perlu terlebih dahulu memahami konsep objek. Dalam JavaScript, terdapat dua jenis tipe data: data primitif dan objek. Data primitif mencakup string, number, boolean, null, undefined, dan symbol. Sementara itu, objek adalah kumpulan data yang saling berhubungan, yang terdiri dari pasangan properti dan nilai.
Sebagai contoh, mari kita ambil sebuah barang yang dijual di toko online. Kita dapat mengumpulkan data atau informasi yang berhubungan dengan barang tersebut, seperti nama, harga, berat, dan warna:
- Nama: Lenovo Thinkpad X230
- Harga: 2.300.000
- Warna: Hitam
- Berat: 2 kg
Jika kita terjemahkan data di atas menjadi objek dalam JavaScript, hasilnya akan terlihat seperti berikut:
const barang = {
name: "Lenovo Thinkpad x230",
harga: 2300000,
warna: "hitam",
berat: "2kg"
};
Dalam contoh ini, barang adalah nama objeknya, dengan name, harga, warna, dan berat sebagai properti. Nilai dari setiap properti dapat berupa data primitif, fungsi, atau objek itu sendiri.
Object adalah kumpulan nilai yang memiliki nama, bukan indeks seperti pada array. Objek juga dapat dilihat sebagai array yang lebih “sakti”, karena memungkinkan kita untuk memberikan nama pada setiap nilai.
Object adalah data yang berisi (field/properties/atributes) dan (method/function/behavior).
Objek di JavaScript merupakan sebuah variabel yang dapat menyimpan nilai (disebut properti) dan fungsi (disebut method).
Function Constructor dan Class
Ketika kita perlu membuat beberapa objek dengan model yang sama namun dengan nilai yang berbeda, kita bisa menggunakan dua metode utama dalam JavaScript: function constructor dan class.
Function Constructor
Function constructor adalah fungsi yang digunakan untuk membuat objek baru. Nama function constructor biasanya dimulai dengan huruf kapital untuk membedakannya dari fungsi biasa. Dengan menggunakan function constructor, kita bisa membuat beberapa instance objek dengan mudah:
function Barang(name, harga, warna, berat) {
this.name = name;
this.harga = harga;
this.warna = warna;
this.berat = berat;
}
const barang1 = new Barang("Lenovo Thinkpad x230", 2300000, "hitam", "2kg");
const barang2 = new Barang("Asus Zenbook", 2500000, "silver", "1.5kg");
const barang3 = new Barang("MacBook Pro", 3000000, "abu-abu", "1.4kg");
Setiap objek baru yang dibuat dari constructor disebut sebagai instance.
Classes
Classes adalah fitur yang lebih baru yang diperkenalkan dalam JavaScript ES6. Class memberikan sintaks yang lebih sederhana dan rapi untuk membuat blueprint objek. Meskipun secara teknis class adalah fungsi, mereka menggunakan sintaks yang berbeda:
class Barang {
constructor(name, harga, warna, berat) {
this.name = name;
this.harga = harga;
this.warna = warna;
this.berat = berat;
}
}
const barang1 = new Barang("Lenovo Thinkpad x230", 2300000, "hitam", "2kg");
const barang2 = new Barang("Asus Zenbook", 2500000, "silver", "1.5kg");
const barang3 = new Barang("MacBook Pro", 3000000, "abu-abu", "1.4kg");
Keyword this
Keyword this sangat penting dalam OOP. Nilai this bergantung pada konteks di mana ia digunakan. Dalam method, this merujuk pada objek pemiliknya. Jika digunakan di dalam function biasa, this merujuk pada objek global (window). Dalam function constructor dan class, this mengacu pada instance objek yang baru dibuat.
Akses Modifier: Private dan Public
Dalam OOP, terdapat konsep access modifier atau visibility yang mengatur akses terhadap properti atau method dalam objek. Ada dua jenis access modifier yang umum digunakan:
- Private: Properti atau method hanya dapat diakses dalam fungsi tersebut.
- Public: Properti atau method dapat diakses dari luar fungsi.
Contoh penggunaan access modifier dapat dilihat dalam kode berikut:
class Barang {
constructor(name, harga) {
this.name = name; // Public
let pajak = 500; // Private
this.harga = harga;
this.tampilBiaya = function() {
return this.harga + pajak;
};
}
}
Pilar OOP
Ada empat pilar dasar yang perlu dipahami saat belajar OOP:
- Encapsulation: Membatasi akses langsung ke properti atau method dari sebuah objek.
- Inheritance: Proses di mana sebuah class mewariskan properti dan methodnya ke class lain.
- Polymorphism: Kemampuan untuk membuat variabel, fungsi, atau objek yang dapat memiliki banyak bentuk.
- Abstraction: Menyembunyikan detail tertentu dari sebuah objek dan hanya menampilkan fungsionalitas penting.
Kesimpulan
OOP adalah paradigma yang kuat dan fleksibel dalam pengembangan perangkat lunak. Dengan memahami konsep objek, function constructor, class, dan pilar-pilar OOP, Anda dapat menulis kode yang lebih terstruktur dan mudah dikelola. Teruslah belajar dan eksplorasi, karena OOP adalah alat yang sangat berharga dalam perjalanan pemrograman Anda.
Terima kasih telah membaca! Jika Anda memiliki saran atau koreksi, saya akan sangat menghargainya. Arigatō!
