Object Oriented Programming (OOP) dasar Javascript
OOP (Object Oriented Programming) adalah suatu metode pemrograman yang berorientasi kepada objek.
Tujuan dari OOP diciptakan yaitu untuk mempermudah dalam pengembangan program dengan cara mengikuti model yang telah ada di kehidupan sehari-hari.
Javascript adalah suatu bahasa pemrograman yang berjalan dalam sisi browser (Frontend), JavaScript juga mendukung pemrograman berorientasi objek, karena mengenal konsep object, property, method, dan inheritance/prototype yaitu sebuah pewarisan dalam JavaScript
Dalam penggunaan Javascript, kita tidak akan lepas dari object. Object memungkinkan para programer untuk menggunakan kembali kode-kode yang pernah ditulis, re-used, inilah yang merupakan sifat dasar dari OOP, enkapsulasi (encapsulation).
Contoh tipe data dalam Property yaitu string, number, dan boolean dll. Berikut ini adalah cara mendeklarasikan sebuah variabel sesuai tipe datanya.
var kata = "jalan"; //string var angka = 153; //number var jawaban = true; //boolean
Setelah kita tahu tipe data seperti contoh diatas, Kita akan membuat sebuah Object kendaraan
var mobil = {};
Pada contoh di atas kita telah membuat sebuah objek kosong yang diberi nama “mobil”.
Dalam dunia nyata tentu saja tidak ada objek kosong, maka dari itu pada tipe data object juga dikenal property dan method. Property yaitu variable dan method adalah function yang berada di dalam object.
var mobil = { roda: 4, warna: "merah", klakson: function() { return "tiin"; } };
Maka jadilah sebuah object mobil yang memiliki 2 property, yaitu roda dan warna; dan sebuah method klakson. kemudian cara untuk mengakses property dan method dari sebuah object yaitu dengan menggunakan dot notation dengan formula sebagai berikut.
//untuk mengakses property dari sebuah object nama_object.nama_property //untuk mengakses method dari sebuah object nama_object.nama_method()
Jadi kita dapat mengakses property dengan cara menulis mobil.roda atau mobil.warna dan mobil.klakson() untuk mengakses method.
Selain menggunakan dot notation, property juga dapat diakses menggunakan bracket notation, dengan formula sebagai berikut.
nama_object[“nama_property”]
var mobil = { roda: 4, warna: "merah", klakson: function() { return "tiin"; } }; var roda_mobil_saya = mobil.roda; // dot notation var warna_mobil_saya = mobil["warna"]; // bracket notation console.log(mobil.klakson()); // mencetak method suara ke console
Cara mendeklarasikan object seperti di atas adalah dengan menggunakan Literal Notation.
Cara lain untuk menciptakan object adalah dengan menggunakan kata kunci new. Cara ini disebut sebagai menciptakan object dengan constructor. Formulanya adalah sebagai berikut.
var nama_object = new Object();
Contoh di atas jika diubah ke cara kedua menjadi sebagai berikut.
var mobil = new Object(); mobil.roda = 4; mobil.warna = "merah"; mobil.klakson = function() { return "tiin"; };
Seperti halnya pada function, sebuah method juga dapat diberikan 1 atau lebih parameter. Parameter adalah variabel yang dilewatkan pada function atau method. Pada contoh di atas, method suara akan ditambahkan sebuah method dengan parameter. Method ini berfungsi untuk mengubah warna mobil.
var mobil = new Object(); mobil.roda = 4; mobil.warna = "merah"; mobil.klakson = function() { return "tiin"; }; mobil.ubahWarna = function(warna_baru) { mobil.warna = warna_baru; };
Jadi property “warna” pada object “mobil” dapat diubah dengan memanggil method “ubahWarna”.
mobil.ubahWarna("hijau"); console.log(mobil.warna);
Pada tulisan yang kita pelajari diatas belum sepenuhnya merangkum konsep Object dalam OOP ,
sebagai contoh Method
“ubahWarna” tidak bisa digunakan pada “mobil” yang lainya (atau dengan kata lain, hanya ada 1 mobil di dunia ini).
Jadi kode tersebut belum memiliki sifat dasar OOP yang memungkinkan setiap object
dapat digunakan kembali. Object
“mobil” harus diubah menjadi lebih universal, sehingga dapat digunakan oleh semua mobil di dunia.
Untuk membuat sebuah object mobil menjadi lebih universal, dibutuhkan kata kunci baru yaitu this. Kata kunci ini bertindak sebagai wadah yang mengacu pada objek yang bersangkutan. Selain itu juga perlu mengubah constructor standar new Object() sehingga menjadi custom constructor.
Custom constructor memiliki formula sebagai berikut.
var nama_object = function(nama_parameter) { this.nama_property = nama_parameter; };
Contoh
var Mobil = function (jumlah_roda_mobil_saya, warna_mobil_saya) { this.roda = jumlah_roda_mobil_saya; this.warna = warna_mobil_saya; this.keterangan = function(){ return "Mobil saya beroda " + this.roda + " dan berwana " + this.warna ; }; };
Sekarang object “Mobil” (huruf ‘M’ kapital menandakan bahwa itu adalah constructor, meskipun tidak diwajibkan) hal ini dapat digunakan untuk semua mobil yang ada di dunia. Contoh saya memiliki sebuah mobil yang berplatnopol “A17WAR” (string) yang beroda 4 dan berwarna “merah”, maka dapat dituliskan ke dalam kode sebagai berikut.
var A17WAR = new Mobil(4, "merah"); var detil = A17WAR.keterangan(); console.log(detil);
Sehingga keterangan object “Mobil” dengan platnopol “A17WAR” yaitu:
“Mobil saya beroda 4 dan berwana merah”
contoh kode diatas yang telah kita buat yaitu membahas tentang konsep enkapsulasi (encapsulation).
Pada postingan ini kita sudah mengenal istilah istilah OOP umum, yaitu object, property, method, dan constructor, serta kata kunci yang berhubungan dengannya, yaitu new dan this. juga kita telah membahas tentang encapsulation.
Pada postingan berikutnya, konsep yang kita telah di postingan ini akan diperdalam kemudian dilanjutkan tentang konsep pewarisan (inheritance).
referensi : https://blog.sibudi.net/javascript-dan-object-oriented-programming-oop/