{"id":32312,"date":"2025-07-05T20:17:47","date_gmt":"2025-07-05T13:17:47","guid":{"rendered":"https:\/\/dte.telkomuniversity.ac.id\/?p=32312"},"modified":"2025-07-05T20:17:47","modified_gmt":"2025-07-05T13:17:47","slug":"pemrograman-berorientasi-objek-oop-konsep-implementasi-dan-contoh","status":"publish","type":"post","link":"https:\/\/dte.telkomuniversity.ac.id\/en\/pemrograman-berorientasi-objek-oop-konsep-implementasi-dan-contoh\/","title":{"rendered":"Pemrograman Berorientasi Objek (OOP): Konsep, Implementasi, dan Contoh"},"content":{"rendered":"\n<figure class=\"wp-block-image size-full is-resized\"><a href=\"https:\/\/www.google.com\/imgres?q=pemrograman%20berorientasi%20objek&amp;imgurl=https%3A%2F%2Fblogger.googleusercontent.com%2Fimg%2Fb%2FR29vZ2xl%2FAVvXsEiHPQB7xQ0Mo6i6JlaVMk8niS2nPULz1lONbJoSNHZmsYCeqsipAgoa9j7nwPbUEdzAMxLEUDzA6N6nb16iYXkMVKrYYDKqDBaCaQtxo2ViUN0wd2ROwgt7o_q77rPxzQJlwQL5ayF8AfA%2Fs1600%2Findrasatya-pemrograman-oop.png&amp;imgrefurl=https%3A%2F%2Fwww.indrasatya.com%2F2016%2F04%2Fkonsep-pemrograman-berorientasi-objek.html&amp;docid=IYVOIXAXAMYedM&amp;tbnid=gQ62qXY2izXLpM&amp;vet=12ahUKEwi-k6iZ56WOAxW5TGwGHT5EIb8QM3oECF8QAA..i&amp;w=870&amp;h=500&amp;hcb=2&amp;ved=2ahUKEwi-k6iZ56WOAxW5TGwGHT5EIb8QM3oECF8QAA\"><img fetchpriority=\"high\" decoding=\"async\" width=\"296\" height=\"170\" src=\"https:\/\/b581640.smushcdn.com\/581640\/wp-content\/uploads\/2025\/07\/image-33.png?lossy=1&strip=1&webp=1\" alt=\"\" class=\"wp-image-32313\" style=\"width:362px;height:auto\" srcset=\"https:\/\/b581640.smushcdn.com\/581640\/wp-content\/uploads\/2025\/07\/image-33.png?lossy=1&strip=1&webp=1 296w, https:\/\/b581640.smushcdn.com\/581640\/wp-content\/uploads\/2025\/07\/image-33-255x146.png?lossy=1&strip=1&webp=1 255w\" sizes=\"(max-width: 296px) 100vw, 296px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>1. Pendahuluan<\/strong><\/h2>\n\n\n\n<p>Pemrograman Berorientasi Objek (Object-Oriented Programming atau OOP) merupakan paradigma pemrograman yang berfokus pada konsep <strong>objek<\/strong> dan <strong>kelas<\/strong>. OOP menjadi tulang punggung dalam pengembangan aplikasi berskala besar karena memungkinkan kode yang lebih <strong>modular<\/strong>, <strong>terorganisir<\/strong>, dan <strong>dapat dipelihara<\/strong>.<\/p>\n\n\n\n<p>Paradigma OOP banyak digunakan dalam bahasa modern seperti Java, Python, C++, dan C#. Artikel ini membahas konsep dasar OOP, empat pilar utamanya, implementasi dalam bahasa populer, serta kelebihan dan tantangan dalam penggunaannya.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>2. Pengertian dan Tujuan OOP<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.1 Apa itu OOP?<\/strong><\/h3>\n\n\n\n<p>OOP adalah model pemrograman yang menyusun perangkat lunak sebagai kumpulan objek yang berinteraksi satu sama lain. Objek terdiri dari <strong>data (atribut)<\/strong> dan <strong>fungsi (metode)<\/strong>.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2.2 Tujuan OOP<\/strong><\/h3>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Memudahkan pemeliharaan kode.<\/li>\n\n\n\n<li>Memfasilitasi pengembangan ulang dan pengujian modul.<\/li>\n\n\n\n<li>Mengurangi kerumitan program besar.<\/li>\n\n\n\n<li>Mendukung penggunaan kembali kode (reusability).<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>3. Empat Pilar OOP<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.1 Enkapsulasi (Encapsulation)<\/strong><\/h3>\n\n\n\n<p>Menyembunyikan detail internal objek dan hanya mengekspos antarmuka publik.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Mahasiswa:\n    def __init__(self, nama):\n        self.__nama = nama  # private attribute\n\n    def get_nama(self):\n        return self.__nama\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.2 Abstraksi (Abstraction)<\/strong><\/h3>\n\n\n\n<p>Menampilkan hanya fitur penting dari objek dan menyembunyikan detail implementasi.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>abstract class Bentuk {\n    abstract void gambar();\n}\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.3 Pewarisan (Inheritance)<\/strong><\/h3>\n\n\n\n<p>Kemampuan suatu kelas untuk mewarisi properti dan metode dari kelas lain.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Kendaraan:\n    def nyalakan_mesin(self):\n        print(\"Mesin menyala\")\n\nclass Mobil(Kendaraan):\n    pass\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3.4 Polimorfisme (Polymorphism)<\/strong><\/h3>\n\n\n\n<p>Objek dapat memiliki banyak bentuk tergantung konteksnya.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Burung:\n    def suara(self):\n        print(\"Cuit\")\n\nclass Ayam(Burung):\n    def suara(self):\n        print(\"Kukuruyuk\")\n\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>4. Struktur Kelas dan Objek<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4.1 Kelas (Class)<\/strong><\/h3>\n\n\n\n<p>Cetak biru atau template untuk membuat objek. Berisi atribut dan metode.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4.2 Objek (Object)<\/strong><\/h3>\n\n\n\n<p>Instansiasi dari kelas. Memiliki identitas, status, dan perilaku.<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>class Buku:\n    def __init__(self, judul):\n        self.judul = judul\n\nb = Buku(\"Algoritma dan Struktur Data\")\n\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>5. Implementasi OOP di Bahasa Populer<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5.1 Java<\/strong><\/h3>\n\n\n\n<p>Java adalah bahasa yang murni OOP. Segala sesuatu adalah objek (kecuali tipe primitif).<\/p>\n\n\n\n<p>Contoh:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>public class Hewan {\n    public void suara() {\n        System.out.println(\"Hewan bersuara\");\n    }\n}\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5.2 Python<\/strong><\/h3>\n\n\n\n<p>Python mendukung OOP dan prosedural. Python tidak membutuhkan deklarasi atribut secara eksplisit.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>5.3 C++<\/strong><\/h3>\n\n\n\n<p>Bahasa campuran yang mendukung prosedural dan OOP. Mendukung multiple inheritance.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>6. Keuntungan Pemrograman OOP<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Modularitas<\/strong>: setiap objek mandiri dan dapat dikembangkan secara terpisah.<\/li>\n\n\n\n<li><strong>Reusabilitas<\/strong>: kelas dapat digunakan ulang.<\/li>\n\n\n\n<li><strong>Kemudahan dalam pemeliharaan<\/strong>: kode terstruktur dan mudah dipahami.<\/li>\n\n\n\n<li><strong>Ekstensibilitas<\/strong>: kode mudah diperluas tanpa mengubah struktur program secara keseluruhan.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>7. Studi Kasus Sederhana: Sistem Perpustakaan<\/strong><\/h2>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7.1 Kelas Buku<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>class Buku:\n    def __init__(self, judul, penulis):\n        self.judul = judul\n        self.penulis = penulis\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7.2 Kelas Anggota<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>class Anggota:\n    def __init__(self, nama):\n        self.nama = nama\n        self.pinjam = &#091;]\n\n    def pinjam_buku(self, buku):\n        self.pinjam.append(buku)\n\n<\/code><\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>7.3 Interaksi<\/strong><\/h3>\n\n\n\n<pre class=\"wp-block-code\"><code>b1 = Buku(\"Python 101\", \"Guido\")\na1 = Anggota(\"Ani\")\na1.pinjam_buku(b1)\n\n<\/code><\/pre>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>8. Kelemahan dan Tantangan OOP<\/strong><\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Kompleksitas berlebih<\/strong> untuk program kecil.<\/li>\n\n\n\n<li><strong>Overhead performa<\/strong> dibandingkan pendekatan prosedural.<\/li>\n\n\n\n<li><strong>Kurva belajar<\/strong> yang lebih curam bagi pemula.<\/li>\n<\/ul>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>9. OOP vs Pemrograman Prosedural<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-table\"><table class=\"has-fixed-layout\"><thead><tr><th>Fitur<\/th><th>OOP<\/th><th>Prosedural<\/th><\/tr><\/thead><tbody><tr><td>Pendekatan<\/td><td>Objek<\/td><td>Fungsi<\/td><\/tr><tr><td>Reusabilitas<\/td><td>Tinggi<\/td><td>Rendah<\/td><\/tr><tr><td>Keamanan data<\/td><td>Tinggi melalui enkapsulasi<\/td><td>Rendah<\/td><\/tr><tr><td>Cocok untuk<\/td><td>Proyek besar, sistem kompleks<\/td><td>Program kecil, skrip singkat<\/td><\/tr><\/tbody><\/table><\/figure>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>10. Kesimpulan<\/strong><\/h2>\n\n\n\n<p>Pemrograman Berorientasi Objek memungkinkan pengembangan perangkat lunak dengan struktur yang lebih baik, mudah dipelihara, dan dapat digunakan kembali. Dengan memahami konsep inti seperti enkapsulasi, abstraksi, pewarisan, dan polimorfisme, seorang programmer dapat membangun sistem yang lebih robust dan scalable.<\/p>\n\n\n\n<p>Meskipun OOP bukan satu-satunya paradigma, dominasi penggunaannya dalam pengembangan perangkat lunak modern menjadikannya keterampilan penting yang harus dikuasai oleh semua pengembang perangkat lunak.<\/p>\n\n\n\n<hr class=\"wp-block-separator has-alpha-channel-opacity\" \/>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Referensi<\/strong><\/h2>\n\n\n\n<p>[1] B. Eckel, <em>Thinking in Java<\/em>, 4th ed., Prentice Hall, 2006.<\/p>\n\n\n\n<p>[2] G. Booch, <em>Object-Oriented Analysis and Design with Applications<\/em>, Addison-Wesley, 2007.<\/p>\n\n\n\n<p>[3] R. Lafore, <em>Object-Oriented Programming in C++<\/em>, 4th ed., Sams, 2001.<\/p>\n\n\n\n<p>[4] J. Gosling, B. Joy, G. Steele, and G. Bracha, <em>The Java Language Specification<\/em>, Addison-Wesley, 2014.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>1. Pendahuluan Pemrograman Berorientasi Objek (Object-Oriented Programming atau OOP) merupakan paradigma pemrograman yang berfokus pada konsep objek dan kelas. OOP menjadi tulang punggung dalam pengembangan aplikasi berskala besar karena memungkinkan kode yang lebih modular, terorganisir, dan dapat dipelihara. Paradigma OOP banyak digunakan dalam bahasa modern seperti Java, Python, C++, dan C#. Artikel ini membahas konsep [&hellip;]<\/p>\n","protected":false},"author":59,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"wds_primary_category":0,"footnotes":""},"categories":[101],"tags":[],"class_list":["post-32312","post","type-post","status-publish","format-standard","hentry","category-berita"],"_links":{"self":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts\/32312","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/users\/59"}],"replies":[{"embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/comments?post=32312"}],"version-history":[{"count":1,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts\/32312\/revisions"}],"predecessor-version":[{"id":32315,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/posts\/32312\/revisions\/32315"}],"wp:attachment":[{"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/media?parent=32312"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/categories?post=32312"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/dte.telkomuniversity.ac.id\/en\/wp-json\/wp\/v2\/tags?post=32312"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}