Master OOP in JavaScript: Unlock Key Concepts for Interviews

Pelajari konsep kunci OOP dalam JavaScript untuk mempersiapkan wawancara. Tingkatkan keterampilan Anda dan raih peluang baru! Klik untuk mengetahui lebih lanjut!

By WGS INDONESIA
4.9/4.9
Indonesia
Rp 43,750.00 GRATIS
E-COURSE banner with text and icons representing Artificial Intelligence and video learning

Detail Pembelajaran

Master OOP in JavaScript: Unlock Key Concepts for Interviews
  • Pemrograman, JavaScript, OOP, Wawancara, Pengembangan Perangkat Lunak

Baca Online

Master OOP in JavaScript: Unlock Key Concepts for Interviews

Daftar Isi

  1. Pengantar Object-Oriented Programming (OOP) di JavaScript
  2. Konsep Dasar OOP
  3. Class dan Object
  4. Inheritance (Pewarisan)
  5. Encapsulation (Enkapsulasi)
  6. Polymorphism (Polimorfisme)
  7. Abstraction (Abstraksi)
  8. Step by Step Membuat Program OOP di JavaScript
  9. Best Practices dan Tips Interview
  10. Sumber Belajar dan Channel Rekomendasi

1. Pengantar Object-Oriented Programming (OOP) di JavaScript

Object-Oriented Programming (OOP) adalah paradigma pemrograman yang menggunakan objek dan kelas untuk memodelkan data dan perilaku. JavaScript mendukung OOP dengan fitur seperti class, prototype, dan inheritance. Menguasai OOP sangat penting untuk wawancara kerja dan pengembangan aplikasi yang terstruktur.

Ilustrasi diagram konsep OOP dengan objek dan kelas berwarna ungu dan ikon kode JavaScript

Dalam ebook ini, Anda akan belajar konsep utama OOP di JavaScript secara lengkap dan praktis.

2. Konsep Dasar OOP

Ada empat pilar utama OOP yang harus Anda pahami:

  • Class: Blueprint atau template untuk membuat objek.
  • Object: Instance dari class yang memiliki properti dan metode.
  • Inheritance: Pewarisan properti dan metode dari class induk ke class anak.
  • Encapsulation: Menyembunyikan data dan hanya menyediakan akses melalui metode tertentu.
  • Polymorphism: Kemampuan objek untuk menggunakan metode yang sama dengan implementasi berbeda.
  • Abstraction: Menyembunyikan detail kompleks dan hanya menampilkan fitur penting.

Mari kita bahas satu per satu dengan contoh kode.

3. Class dan Object

Class adalah cetak biru untuk membuat objek. Objek adalah instance dari class yang memiliki data dan fungsi.

3.1. Membuat Class dan Object

class Mobil {
  constructor(merk, warna) {
    this.merk = merk;
    this.warna = warna;
  }
  info() {
    return `Mobil ini merk ${this.merk} dan warnanya ${this.warna}.`;
  }
}

const mobilSaya = new Mobil('Toyota', 'Merah');
console.log(mobilSaya.info());
    

Output:

Mobil ini merk Toyota dan warnanya Merah.

4. Inheritance (Pewarisan)

Inheritance memungkinkan class anak mewarisi properti dan metode dari class induk.

4.1. Contoh Inheritance

class Kendaraan {
  constructor(merk) {
    this.merk = merk;
  }
  bergerak() {
    return `${this.merk} sedang bergerak.`;
  }
}

class Motor extends Kendaraan {
  constructor(merk, tipe) {
    super(merk);
    this.tipe = tipe;
  }
  info() {
    return `Motor merk ${this.merk} tipe ${this.tipe}.`;
  }
}

const motorSaya = new Motor('Honda', 'Sport');
console.log(motorSaya.bergerak());
console.log(motorSaya.info());
    

Output:

Honda sedang bergerak.
Motor merk Honda tipe Sport.
    

5. Encapsulation (Enkapsulasi)

Encapsulation menyembunyikan data agar tidak bisa diakses langsung dari luar class, biasanya menggunakan properti private.

5.1. Contoh Encapsulation dengan Private Field

class BankAccount {
  #saldo = 0; // private field

  constructor(nama) {
    this.nama = nama;
  }

  deposit(jumlah) {
    if (jumlah > 0) {
      this.#saldo += jumlah;
      console.log(`Deposit sebesar ${jumlah} berhasil.`);
    }
  }

  getSaldo() {
    return this.#saldo;
  }
}

const akunSaya = new BankAccount('Andi');
akunSaya.deposit(1000);
console.log('Saldo saya:', akunSaya.getSaldo());
console.log('Coba akses saldo langsung:', akunSaya.#saldo); // Error
    

Catatan: Akses langsung ke #saldo akan error karena private.

6. Polymorphism (Polimorfisme)

Polymorphism memungkinkan objek dari class berbeda menggunakan metode dengan nama sama tapi implementasi berbeda.

6.1. Contoh Polymorphism

class Hewan {
  suara() {
    return 'Suara hewan';
  }
}

class Kucing extends Hewan {
  suara() {
    return 'Meong';
  }
}

class Anjing extends Hewan {
  suara() {
    return 'Guk guk';
  }
}

const hewan1 = new Kucing();
const hewan2 = new Anjing();

console.log(hewan1.suara());
console.log(hewan2.suara());
    

Output:

Meong
Guk guk
    

7. Abstraction (Abstraksi)

Abstraction menyembunyikan detail kompleks dan hanya menampilkan fitur penting ke pengguna.

7.1. Contoh Abstraction dengan Method Protected

class Mesin {
  #start() {
    return 'Mesin menyala';
  }

  jalankan() {
    return this.#start() + ' dan berjalan';
  }
}

const mesin = new Mesin();
console.log(mesin.jalankan());
console.log(mesin.#start()); // Error, private method
    

Pengguna hanya perlu memanggil jalankan() tanpa tahu detail #start() .

8. Step by Step Membuat Program OOP di JavaScript

Berikut contoh membuat program OOP sederhana yang mengelola data karyawan.

8.1. Buat Class Karyawan

class Karyawan {
  constructor(nama, jabatan, gaji) {
    this.nama = nama;
    this.jabatan = jabatan;
    this.gaji = gaji;
  }

  info() {
    return `${this.nama} bekerja sebagai ${this.jabatan} dengan gaji Rp${this.gaji}.`;
  }
}
    

8.2. Buat Class Manager yang Mewarisi Karyawan

class Manager extends Karyawan {
  constructor(nama, jabatan, gaji, divisi) {
    super(nama, jabatan, gaji);
    this.divisi = divisi;
  }

  info() {
    return `${super.info()} Mengelola divisi ${this.divisi}.`;
  }
}
    

8.3. Gunakan Class dan Tampilkan Info

const karyawan1 = new Karyawan('Sari', 'Staff IT', 5000000);
const manager1 = new Manager('Budi', 'Manager IT', 10000000, 'Teknologi');

console.log(karyawan1.info());
console.log(manager1.info());
    

Output:

Sari bekerja sebagai Staff IT dengan gaji Rp5000000.
Budi bekerja sebagai Manager IT dengan gaji Rp10000000. Mengelola divisi Teknologi.
    

9. Best Practices dan Tips Interview

  • Pelajari konsep OOP secara mendalam dan pahami perbedaan antara class dan prototype.
  • Biasakan menulis kode yang bersih dan mudah dibaca.
  • Gunakan private fields dan methods untuk enkapsulasi data.
  • Berlatih membuat contoh-contoh kecil yang mengimplementasikan inheritance dan polymorphism.
  • Siapkan jawaban untuk pertanyaan umum seperti "Apa itu closure?", "Bagaimana prototype bekerja?", dan "Jelaskan perbedaan antara class dan object".
  • Gunakan analogi sederhana saat menjelaskan konsep OOP saat interview.
  • Praktikkan live coding dan debugging di lingkungan seperti VS Code atau browser console.

10. Sumber Belajar dan Channel Rekomendasi

Berikut beberapa sumber belajar dan channel YouTube yang sangat membantu untuk menguasai OOP di JavaScript:

Teruslah berlatih dan eksplorasi agar semakin mahir dan siap menghadapi interview dengan percaya diri!

Edukasi Terkait