Cara menggunakan apakah javascript bisa oop?

Javascript adalah salah satu bahasa Object Oriented Programming. Sebuah bahasa pemrograman bisa digunakan secara object-oriented jika developer dapat menguasai kemampuan berikut ini

  1. Encapsulation : Kemampuan untuk menyimpan terkait informasi, apakah data atau method secara bersama-sama dalam sebuah objek. Pemahaman lainnya adalah sebuah mekanisme untuk membungkus sebuah data maupun function sehingga menyembunyikan alur secara lengkapnya dan hanya menampilkan property tertentu yang dapat digunakan. Berikut contoh sederhana encapsulation.
    var manusia = function () { //mulai membuat suatu object manusia
     
      var namaLengkap = "Joni Esmon"; 
      var reg = new RegExp(/\d+/);
      //definisi lokal variabel dan pemberian nilai
    
      return {
        "setNamaLengkap" : function (newValue) {
          if( reg.test(newValue) ) {
            alert("Nilainya salah");
          }
          else {
            namaLengkap = newValue;
          }
        }, //function ini digunakan untuk memberikan nilai pada lokal variabel namalengkap
    
        "getNamaLengkap" : function () {
         return namaLengkap;
        } //function ini digunakan untuk menampilkan atau memanggil nilai pada lokal variabel namalengkap
      }; 
    }(); 
     
    alert(manusia.getNamaLengkap());   // Joni Esmon
    manusia.setNamaLengkap( "Jim Backlin" );
    alert(manusia.getNamaLengkap());  // Jim Backlin
    manusia.setNamaLengkap( 42 ); // Nilainya salah; nama tidak berubah.
    manusia.namaLengkap = 42;     // tidak ada efek apapun karena tidak dapat merubah lokal variabel.
    alert(manusia.geNamaLengkap());  // Jim Backlin muncul kembali.
    
  2. Aggregation : Kemampuan menyimpan suatu objek di dalam objek lain
    var aggregate = function (objects) {
        var map = {}; // map untuk menyimpan data
        var a = [];   // array pemyimpan sementara 
        objects.forEach(function (d) {
            var key = d.a > d.c ? String(d.c) + d.a : String(d.a) + d.c;
            //digunakan untuk pemilihan key, jika a > c maka isi key = ca selainnya ac
            map[key] = (map[key] || 0) + d.count;
            //menyimpan kedalam variabel map berdasarkan key dan value
        })
        // misal, key === "bd"
            for (var key in map) {
            var k = key.toString().split("");
            // membelah key menjadi array ["b", "d"]
            a.push({ a: k[0], c: k[1], count: map[key] });
            // menyimpan penyimpan array sementara sebagai appropriate object
        }
        return a;
    }
    
    var objects = [{a:'b',c:'d',count:1},{a:'b',c:'d',count:2},{a:'y',c:'d',count:4}];
    console.log(aggregate(objects));
    
  3. Inheritance : Metode pewarisan dimana suatu class akan memiliki sifat yang serupa dengan class yang diturunkan
    //======================= Definisi ClassA ========================
    var ClassA = function() {
        this.name = "class A";
    }
    //membuat function utama dengan nama ClassA
    
    ClassA.prototype.print = function() {
        console.log(this.name);
    }
    
    var a = new ClassA();
    //inisiasi function ClassA
    
    a.print();
    //menjalankan function print pada ClassA
    //======================= Definisi ClassB ========================
    var inheritsFrom = function (child, parent) {
        child.prototype = Object.create(parent.prototype);
    };
    //function ini digunakan untuk menurunkan prototype atau sifat metode
    //yang terdapat pada kelas lebih tinggi
    
    var ClassB = function() {
        this.name = "class B";
        this.surname = "I'm the child";
    }
    //membuat function ClassB beserta nilai dari property
    
    inheritsFrom(ClassB, ClassA);
    //harus memanggil function diatas untuk mendapatkan sifat dari ClassA
    
    var b = new ClassB();
    //inisiasi variabel berdasarkan ClassB
    
    b.print();
    //menjalankan function print pada ClassB, function print tetap dapat dipanggil meski ClassB tidak membuat function print karena ClassB telah mendapatkan pewarisan sifat / property dari ClassA
    
    ClassB.prototype.print = function() {
        ClassA.prototype.print.call(this); 
    //memanggil function print yang terdapat ClassA
        console.log(this.surname);
    }
    //melakukan override atau menambahkan sifat asli / property dari Class yang sudah diwarisi
    
    b.print(); 
    //menjalankan function print setelah dilakuakn override
    
  4. Polymorphism : adalah kemampuan untuk membuat sebuah variabel, fungsi, atau sebuah benda yang memiliki lebih dari satu bentuk.
    Penggunaan utama dari Polymorphism dalam Object-Oriented Programming adalah kemampuan objek yang milik berbagai jenis respon untuk menanggapi metode, bidang, atau memanggil properti dengan nama yang sama, masing-masing sesuai dengan perilaku tipe tertentu yang sesuai.
    function Person(age, weight) {
        this.age=age;
        this.weight=weight;
        this.getInfo=function() {
          return "I am " + this.age + " years old " +
            "and weighs " + this.weight +" kilo.";
        }
      }
      //mmebuat function person 
      function Employee(age, weight, salary){
        this.salary=salary;
        this.age=age;
        this.weight=weight;
        this.getInfo=function() {
          return "I am " + this.age + " years old " +
            "and weighs " + this.weight +" kilo " +
            "and earns " + this.salary + " dollar.";
        }
      }
      //membuat function employee
      
      Employee.prototype= new Person();
      //function employee memiliki sifat yang menyerupai function Person
      Employee.prototype.constructor=Employee;
    
      function showInfo(obj) {
        document.write(obj.getInfo()+"
    ");
      }
    //argumen 'obj' bisa berisi  apapun
    //function getInfo akan dijalankan bergantung dengan isi objek
    
      var person = new Person(50,90);
      //memberikan nilai pada function person (age, weight)
      var employee = new Employee(43,80,50000);
      //memberikan nilai pada function employee(age, weight, salary)
      
      showInfo(person);
      showInfo(employee);
      //menampilan objek
    

Setelah memahami beberapa hal metode yang digunakan dalam OOP, masih terdapat beberapa hal yang diketahui salah satunya adalah langkah membuat Object pada javascript :

Apakah JavaScript mendukung OOP?

JavaScript adalah bahasa pemrograman yang paling penting dalam pengembangan website. JavaScript juga mendukung pemrograman berorientasi objek (object oriented programming), karena mengenal konsep object , property , dan method .

Apa itu OOP dalam JavaScript?

OOP atau Object Oriented Programming merupakan salah satu pattern pada programming yang sangat umum digunakan oleh developer di dunia. Kalau berbicara mengenai OOP pasti kaitannya sangat erat dengan bahasa pemograman Java. Ya secara bahasa Java itu adalah bahasa yang pure mengusung pattern OOP.

Apa saja pemrograman yang mendukung OOP?

Berikut ini adalah Bahasa pemrograman yang mendukung OOP antara lain seperti:.
Visual Foxpro..
Pascal (bahasa pemrograman).
SIMULA..
Smalltalk..
Python..

4 bahasa apa saja yang mendukung OOP selain Java?

Contoh bahasa pemrograman berorientasi objek antara lain Java, PHP, Python, dan Ruby.