Close Menu
  • Home
  • Programming
    • JavaScript
    • TypeScript
    • Node.js
    • Python
    • PHP
    • CSS
    • HTML
  • Framework
    • Express.js
    • Laravel
    • Nest.js
    • React.js
    • Expo
    • React Native
    • Next.js
    • Strapi (Headless CMS)
    • WordPress (CMS)
  • Hot Topics
    • Software Architect
    • Artificial Intelligence
    • Data Science
    • Chat Bot
    • Machine Learning
      • Library JS
        • Danfo.js
    • Natural Language Processing
    • Proof of Concept
    • Kampus
  • Roles
    • Data Engineer
    • Software Engineer
    • DevOps
      • Docker
      • Jenkins
      • VPS (Virtual Private Server)
      • Ubuntu Server
  • Databases
    • Postgre SQL
    • SQL
    • SQL Server
    • Redis

Subscribe to Updates

Get the latest creative news from FooBar about art, design and business.

What's Hot

Top 5 Framework Microservices di Tahun 2026

March 8, 2026

Belajar JavaScript: Pengenalan & Lingkungan Kerja JavaScript

March 7, 2026

Stop Pakai Satu Model AI untuk Semuanya! Pahami Konsep Ini Dulu

March 7, 2026
Facebook X (Twitter) Instagram
Lampung DevLampung Dev
  • Home
  • Programming
    • JavaScript
    • TypeScript
    • Node.js
    • Python
    • PHP
    • CSS
    • HTML
  • Framework
    • Express.js
    • Laravel
    • Nest.js
    • React.js
    • Expo
    • React Native
    • Next.js
    • Strapi (Headless CMS)
    • WordPress (CMS)
  • Hot Topics
    • Software Architect
    • Artificial Intelligence
    • Data Science
    • Chat Bot
    • Machine Learning
      • Library JS
        • Danfo.js
    • Natural Language Processing
    • Proof of Concept
    • Kampus
  • Roles
    • Data Engineer
    • Software Engineer
    • DevOps
      • Docker
      • Jenkins
      • VPS (Virtual Private Server)
      • Ubuntu Server
  • Databases
    • Postgre SQL
    • SQL
    • SQL Server
    • Redis
Facebook X (Twitter) Instagram
Lampung DevLampung Dev
Home ยป Pemrograman Berbasis Objek, Konsep Dasar dan Implementasinya
OOP

Pemrograman Berbasis Objek, Konsep Dasar dan Implementasinya

Abdan Zam Zam RamadhanBy Abdan Zam Zam RamadhanMay 16, 2024Updated:May 25, 2024No Comments5 Mins Read
Share Facebook Twitter Pinterest LinkedIn Tumblr Reddit Telegram Email
Pemrograman Berbasis Objek, Konsep Dasar dan Implementasinya
Pemrograman Berbasis Objek, Konsep Dasar dan Implementasinya
Share
Facebook Twitter LinkedIn Pinterest Email

Lampung Dev – Pemrograman Berbasis Objek (Object-Oriented Programming, OOP) adalah paradigma pemrograman yang menggunakan “objek” untuk merepresentasikan data dan metode. OOP membantu dalam membuat kode yang lebih modular, terorganisir, dan mudah dipelihara. Dalam artikel ini, kita akan membahas konsep dasar OOP dan bagaimana mengimplementasikannya menggunakan JavaScript.

Baca juga: Cara Menggunakan Foreach di Node.js?

Daftar Isi

Toggle
  • Konsep Dasar Pemrograman Berbasis Objek
  • Implementasi OOP dengan JavaScript
    • 1. Membuat Kelas dan Objek
    • 2. Enkapsulasi dengan Getter dan Setter
    • 3. Pewarisan
    • 4. Polimorfisme
  • Kesimpulan

Konsep Dasar Pemrograman Berbasis Objek

  1. Objek Objek adalah entitas yang memiliki atribut (properti) dan perilaku (metode). Objek adalah instansiasi dari sebuah kelas.
    • Contoh: Mobil memiliki atribut seperti warna dan model, serta metode seperti bergerak dan berhenti.
  2. Kelas (Class) Kelas adalah cetak biru atau template untuk membuat objek. Kelas mendefinisikan atribut dan metode yang akan dimiliki oleh objek.
    • Contoh: Kelas Mobil mendefinisikan atribut seperti warna dan model, serta metode seperti bergerak() dan berhenti().
  3. Enkapsulasi (Encapsulation) Enkapsulasi adalah konsep menyembunyikan detail implementasi dari pengguna dan hanya mengekspos metode dan properti yang diperlukan. Ini membantu dalam melindungi data dan memastikan integritas objek.
    • Contoh: Menggunakan metode getter dan setter untuk mengakses dan mengubah nilai properti secara aman.
  4. Pewarisan (Inheritance) Pewarisan adalah mekanisme dimana sebuah kelas dapat mewarisi properti dan metode dari kelas lain. Ini memungkinkan penggunaan kembali kode dan memperluas fungsionalitas kelas yang ada.
    • Contoh: Kelas MobilBalap mewarisi dari kelas Mobil dan menambahkan properti atau metode tambahan.
  5. Polimorfisme (Polymorphism) Polimorfisme memungkinkan objek untuk menggunakan metode yang sama dengan cara yang berbeda. Ini bisa dicapai melalui overloading (menimpa) metode di kelas anak.
    • Contoh: Metode bergerak() bisa diimplementasikan berbeda di kelas Mobil dan MobilBalap.

Implementasi OOP dengan JavaScript

Mari kita lihat bagaimana konsep-konsep ini dapat diimplementasikan dalam JavaScript.

1. Membuat Kelas dan Objek

class Mobil {
    constructor(merk, model, tahun) {
        this.merk = merk;
        this.model = model;
        this.tahun = tahun;
    }

    bergerak() {
        console.log(`${this.merk} ${this.model} bergerak.`);
    }

    berhenti() {
        console.log(`${this.merk} ${this.model} berhenti.`);
    }
}

// Membuat objek dari kelas Mobil
const mobilSaya = new Mobil('Toyota', 'Corolla', 2020);
mobilSaya.bergerak(); // Output: Toyota Corolla bergerak.
mobilSaya.berhenti(); // Output: Toyota Corolla berhenti.

Penjelasan:

  • Di sini, class Mobil mendefinisikan sebuah kelas dengan konstruktor yang menerima merk, model, dan tahun sebagai parameter.
  • Mobil memiliki dua metode: bergerak dan berhenti, yang mencetak pesan ke konsol.
  • const mobilSaya membuat instance baru dari kelas Mobil dengan nilai atribut yang diberikan dan kemudian memanggil metode bergerak dan berhenti.

Baca juga: Cara Install XAMPP (Apache, MariaDB, PHP dan Perl) pada Windows

2. Enkapsulasi dengan Getter dan Setter

class Mobil {
    constructor(merk, model, tahun) {
        this._merk = merk;
        this._model = model;
        this._tahun = tahun;
    }

    get merk() {
        return this._merk;
    }

    set merk(merkBaru) {
        this._merk = merkBaru;
    }

    bergerak() {
        console.log(`${this._merk} ${this._model} bergerak.`);
    }

    berhenti() {
        console.log(`${this._merk} ${this._model} berhenti.`);
    }
}

const mobilSaya = new Mobil('Honda', 'Civic', 2019);
mobilSaya.bergerak(); // Output: Honda Civic bergerak.
mobilSaya.merk = 'Nissan';
console.log(mobilSaya.merk); // Output: Nissan

Penjelasan:

  • Enkapsulasi diterapkan dengan menggunakan underscore (_) di depan nama properti (_merk, _model, _tahun) untuk menandai bahwa properti tersebut bersifat privat.
  • get merk dan set merk adalah metode akses (getter dan setter) yang memungkinkan kita mengakses dan mengubah nilai properti merk dengan cara yang aman.
  • Objek mobilSaya dibuat dengan merk awal ‘Honda’, yang kemudian diubah menjadi ‘Nissan’ menggunakan setter merk.

3. Pewarisan

class Mobil {
    constructor(merk, model, tahun) {
        this.merk = merk;
        this.model = model;
        this.tahun = tahun;
    }

    bergerak() {
        console.log(`${this.merk} ${this.model} bergerak.`);
    }

    berhenti() {
        console.log(`${this.merk} ${this.model} berhenti.`);
    }
}

class MobilBalap extends Mobil {
    constructor(merk, model, tahun, kecepatanMaksimum) {
        super(merk, model, tahun);
        this.kecepatanMaksimum = kecepatanMaksimum;
    }

    bergerak() {
        console.log(`${this.merk} ${this.model} bergerak dengan kecepatan tinggi!`);
    }

    tampilkanKecepatanMaksimum() {
        console.log(`Kecepatan maksimum ${this.merk} ${this.model} adalah ${this.kecepatanMaksimum} km/jam.`);
    }
}

const mobilBalapSaya = new MobilBalap('Ferrari', 'F8', 2022, 340);
mobilBalapSaya.bergerak(); // Output: Ferrari F8 bergerak dengan kecepatan tinggi!
mobilBalapSaya.tampilkanKecepatanMaksimum(); // Output: Kecepatan maksimum Ferrari F8 adalah 340 km/jam.

Penjelasan:

  • class MobilBalap mewarisi dari class Mobil menggunakan kata kunci extends.
  • Konstruktor MobilBalap memanggil konstruktor Mobil menggunakan super untuk menginisialisasi properti yang diwarisi.
  • MobilBalap menambahkan properti baru kecepatanMaksimum dan metode tampilkanKecepatanMaksimum.
  • bergerak di MobilBalap menimpa (override) metode bergerak di Mobil untuk mencetak pesan yang berbeda.

Baca juga: Bagaimana Prospek Karir Jurusan Teknik Informatika?

4. Polimorfisme

class Mobil {
    constructor(merk, model, tahun) {
        this.merk = merk;
        this.model = model;
        this.tahun = tahun;
    }

    bergerak() {
        console.log(`${this.merk} ${this.model} bergerak.`);
    }

    berhenti() {
        console.log(`${this.merk} ${this.model} berhenti.`);
    }
}

class MobilBalap extends Mobil {
    constructor(merk, model, tahun, kecepatanMaksimum) {
        super(merk, model, tahun);
        this.kecepatanMaksimum = kecepatanMaksimum;
    }

    bergerak() {
        console.log(`${this.merk} ${this.model} bergerak dengan kecepatan tinggi!`);
    }
}

const mobilBiasa = new Mobil('Toyota', 'Corolla', 2020);
const mobilBalapSaya = new MobilBalap('Ferrari', 'F8', 2022, 340);

mobilBiasa.bergerak(); // Output: Toyota Corolla bergerak.
mobilBalapSaya.bergerak(); // Output: Ferrari F8 bergerak dengan kecepatan tinggi!

Penjelasan:

  • class Mobil dan class MobilBalap mendefinisikan metode bergerak masing-masing dengan implementasi berbeda.
  • mobilBiasa adalah instance dari Mobil, sedangkan mobilBalapSaya adalah instance dari MobilBalap.
  • Ketika bergerak dipanggil pada mobilBiasa, ia menggunakan implementasi dari Mobil. Sebaliknya, ketika bergerak dipanggil pada mobilBalapSaya, ia menggunakan implementasi dari MobilBalap, menunjukkan konsep polimorfisme.

Kesimpulan

Pemrograman Berbasis Objek (OOP) menawarkan banyak manfaat seperti modularitas, kemudahan dalam pemeliharaan kode, dan fleksibilitas dalam pengembangan perangkat lunak. Dengan memahami konsep dasar seperti objek, kelas, enkapsulasi, pewarisan, dan polimorfisme, pengembang dapat menulis kode yang lebih efisien dan dapat diandalkan. JavaScript, sebagai bahasa pemrograman yang fleksibel, mendukung paradigma OOP dan memungkinkan pengembang untuk menerapkan prinsip-prinsip ini dalam pengembangan aplikasi mereka.

Belajar OOP Contoh Kode OOP Enkapsulasi Getter dan Setter Implementasi Kode JavaScript Implementasi OOP JavaScript Kelas dalam JavaScript Kelas dan Objek Konsep Dasar OOP Konsep OOP Metode dalam JavaScript Modularitas Kode Objek dalam JavaScript OOP OOP dengan JavaScript Paradigma Pemrograman Pemeliharaan Kode Pemrograman Berbasis Objek Pemrograman Modern Pengembangan Perangkat Lunak Pewarisan Pewarisan dalam JavaScript Polimorfisme Polimorfisme dalam JavaScript Programming struktur kode Typing Statis
Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
Previous ArticleKelebihan dan Tantangan dalam Penggunaan TypeScript di Proyek Besar
Next Article Ringkasan Perjalanan HTML, Dari Awal Hingga Era Modern
Abdan Zam Zam Ramadhan
  • Website
  • LinkedIn

Seorang Senior Software Engineer di PT. Astra Internasional, Tbk. dengan pengalaman lebih dari 6 tahun di industri teknologi. Lulusan Teknik Informatika Universitas Lampung & Hacktiv8 (Fullstack JS) memiliki spesialisasi dalam ekosistem JavaScript, TypeScript, dan Node.js. Selain menangani proyek skala besar corporate, penulis aktif membagikan tutorial teknis dan strategi produktivitas melalui tulisan untuk membantu sesama developer berkembang.

Related Posts

JavaScript

Belajar JavaScript: Pengenalan & Lingkungan Kerja JavaScript

March 7, 2026
Tips & Trik

10 Plugin VS Code yang Wajib Developer Install

June 15, 2024
Git & Github

Panduan Dasar untuk Memulai dengan Git dan GitHub

June 9, 2024
Demo
Top Posts

Cara Menggunakan Foreach di Node.js?

February 13, 202472 Views

Cara Install XAMPP (Apache, MariaDB, PHP dan Perl) pada Windows

November 26, 202351 Views

Bagaimana Prospek Karir Jurusan Teknik Informatika?

February 14, 202447 Views

Contoh Soal Tes Koding Beserta Pembahasannya dengan Python

May 17, 202443 Views

10 Plugin VS Code yang Wajib Developer Install

June 15, 202442 Views
Stay In Touch
  • Facebook
  • YouTube
  • WhatsApp
  • Instagram
  • LinkedIn
Ebook Recommended
Demo
Most Popular

Cara Menggunakan Foreach di Node.js?

February 13, 202472 Views

Cara Install XAMPP (Apache, MariaDB, PHP dan Perl) pada Windows

November 26, 202351 Views

Bagaimana Prospek Karir Jurusan Teknik Informatika?

February 14, 202447 Views
Our Picks

Top 5 Framework Microservices di Tahun 2026

March 8, 2026

Belajar JavaScript: Pengenalan & Lingkungan Kerja JavaScript

March 7, 2026

Stop Pakai Satu Model AI untuk Semuanya! Pahami Konsep Ini Dulu

March 7, 2026
Learning Ecosystem
  • JavaScript
  • TypeScript
  • Python
  • Golang
  • PHP
  • SQL
  • Docker
  • Git
Facebook X (Twitter) Instagram Pinterest
  • Jobs
  • Project Freelance
  • About Me
  • Contact
Copyright © 2026 Lampung Dev. Developed by Abdan Zam Zam Ramadhan.

Type above and press Enter to search. Press Esc to cancel.