{"id":53118,"date":"2025-02-12T08:40:37","date_gmt":"2025-02-12T01:40:37","guid":{"rendered":"https:\/\/www.rumahweb.com\/journal\/?p=53118"},"modified":"2025-06-18T08:31:03","modified_gmt":"2025-06-18T01:31:03","slug":"belajar-php-dasar-13","status":"publish","type":"post","link":"https:\/\/www.rumahweb.com\/journal\/belajar-php-dasar-13\/","title":{"rendered":"Belajar PHP Dasar Bagian 13 &#8211; Mengenal Inheritance Pada OOP"},"content":{"rendered":"\n<p>Pada sesi belajar PHP dasar <strong><a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-php-dasar-12\/\" target=\"_blank\" rel=\"noopener\" title=\"\">bagian 12<\/a><\/strong>, kita telah membahas sedikit tentang pewarisan sifat (<em>inheritance<\/em>), terutama terkait dengan enkapsulasi <em>protected<\/em>, yang memungkinkan akses oleh kelas utama dan turunannya. Dalam sesi belajar PHP dasar bagian 13 ini kita akan melanjutkannya dengan membahas tentang konsep <em>inheritance<\/em> dalam OOP PHP.<\/p>\n\n\n\n\n\n<h2 class=\"wp-block-heading\">Apa itu <em>inheritance <\/em>(pewarisan sifat)?<\/h2>\n\n\n\n<p><em>Inheritance<\/em> atau pewarisan sifat, adalah sebuah konsep dalam pemrograman berorientasi <em>object <\/em>(OOP), termasuk dapat diterapkan pada <a href=\"https:\/\/blog.rumahweb.com\/php-adalah\/\" target=\"_blank\" rel=\"noopener\" title=\"php adalah\">PHP<\/a>. <em>Inheritance <\/em>memungkinkan sebuah kelas (yang disebut kelas anak atau <em>subclass<\/em>\/inherit) untuk mewarisi <em>properties <\/em>dan <em>methods <\/em>dari kelas lain (yang disebut kelas induk atau <em>superclass<\/em>). <\/p>\n\n\n\n<p>Melalui <em>Inheritance<\/em>, kita dapat membuat sebuah <em>class <\/em>yang mengambil sebuah sifat dari <em>class <\/em>lain, yang berfungsi untuk untuk mempermudah penyusunan kode dan menghindari duplikasi.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Implementasi <em>Inheritance<\/em><\/h2>\n\n\n\n<p>Pada dasarnya, semua <em>class <\/em>yang dideklarasikan bisa dijadikan kelas induk\/<em>superclass<\/em>. Dan <em>class <\/em>anak yang diwarisi atau subclass\/inherit dideklarasikan dengan menambahkan \u201cextends nama_class\u201d setelah melakukan deklarasi <em>class<\/em>.<\/p>\n\n\n\n<p><strong>Contoh<\/strong>:<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \nclass mobil{\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW&lt;br&gt;\";\n\t}\n}\nclass warnaMobil extends mobil { \/\/class turunan dari mobil\n\tfunction warnanya(){\n\t\t$this-&gt;dataMobil(); \/\/mewarisi dari sifat class utama mobil\n\t\techo \"Warna Mobil adalah Hitam\";\n\t}\n}\n\t$warna = new warnaMobil();\n\techo $warna-&gt;warnanya();\n?&gt;<\/code><\/pre>\n\n\n\n<p>Dengan begitu <em>function<\/em> \/ <em>method <\/em>di dalam class utama\/<em>class <\/em>induk dapat dipanggil dari class yang mewarisi sifat dari induknya tersebut, yaitu class warnaMobil, dan dengan memanggil funcsion di dalam class warnaMobil, yang mana function tersebut telah memanggil function induknya, maka function induk juga akan ikut terpanggil.<\/p>\n\n\n\n<p><strong>Hasil<\/strong>:<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXejwJ6q2jRCa8tBZiwota5XSImW9LtqAGPuzpkTHXq1yartXWIEQKsYx37F8yk61QAHrU39BXyL_HGa4bWdqsjBET0qBBsHJUClwuftLRk1OE00ltvrXmOxG9ZtIsQEn-_zfu_U?key=MK1cQmErY29OsUF3ihUTc-WA\" alt=\"hasil akses inheritance \/ pewarisan pada oop php\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\">Override property atau method dari class induk\/pewaris<\/h2>\n\n\n\n<p>Karena <em>method <\/em>dari induk\/pewaris dapat dipanggil langsung di <em>class <\/em>turunan\/yang diwarisi, jika memerlukan <em>function <\/em>yang sama tetapi ada sedikit perubahan data maka dapat dideklarasi ulang dan menambahkan perubahan sesuai kebutuhan yang diperlukan.&nbsp;<\/p>\n\n\n\n<p>Contoh : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \n\tclass mobil{\t\t\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW&lt;br&gt;\";\n\t}\n}\nclass warnaMobil extends mobil { \/\/class turunan dari mobil\n\tfunction dataMobil(){ \/\/method yang di override\n\t\techo \"ini adalah mobil BMW, bukan Audi&lt;br&gt;\";\n\t}\n\tfunction warnanya(){\n\t\t$this-&gt;dataMobil(); \/\/mewarisi dari sifat class utama mobil\n\t\techo \"Warna Mobil adalah Hitam\";\n\t}\n}\n\t$warna = new warnaMobil();\n\techo $warna-&gt;warnanya();\n?&gt;<\/code><\/pre>\n\n\n\n<p>Hasil : <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXde21nD8xJ8BqfOr2CI8GlNaAfh3dvfVmlshBBWZyePDby8VL94hW9t-9nSCb3-Y3UinBQYbenzEQUGz-37MgAKb7xaGwPdGxlMxSeA1lK5HxDmitlTKey_BIyRzFbIJ2J_FKAN?key=MK1cQmErY29OsUF3ihUTc-WA\" alt=\"Override property - belajar php dasar inheritance\"\/><\/figure>\n<\/div>\n\n\n<h3 class=\"wp-block-heading\"><em>Cosntructor <\/em>dalam <em>inheritance<\/em><\/h3>\n\n\n\n<p><em>Class <\/em>anak yang diwarisi (<em>subclass<\/em>) juga mewarisi konstruktor (__construct) dari pewarisnya, namu jika kelas anak ingin memiliki konstruktor sendiri, php tidak menjalankan konstruktor kelas induk\/pewaris.<\/p>\n\n\n\n<p>Contoh : <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \n\tclass mobil{\t\n\tpublic function __construct() {\n\t\techo \"Mobil dibuat&lt;br&gt;\";\n\t}\t\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW&lt;br&gt;\";\n\t}\n}\nclass warnaMobil extends mobil { \/\/class turunan dari mobil\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW, bukan Audi&lt;br&gt;\";\n\t}\n\tfunction warnanya(){\n\t\t$this-&gt;dataMobil(); \/\/mewarisi dari sifat class utama mobil\n\t\techo \"Warna Mobil adalah Hitam\";\n\t}\n}\n\t$warna = new warnaMobil();\n\techo $warna-&gt;warnanya();\n?&gt;<\/code><\/pre>\n\n\n\n<p>Hasil : <\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXcad8iLjxQKsBkuWnK_7TtLE8D9sqhPIUK0yvPgJbuRbUKp1ffrLaJ_phiIHSjVnJU6Kgm49e5JwCKlcp3kOYjWC79bC4ahiVe4m_TaDOPNqubyBrqR49pQxRxFa_QGMiVTyG04lg?key=MK1cQmErY29OsUF3ihUTc-WA\" alt=\"konstruktor (construct) dalam inheritance pada OOP php\"\/><\/figure>\n<\/div>\n\n\n<p>Dari hasil tersebut diketahui, __construct dari <em>class <\/em>induknya akan terpanggil, karena <em>class <\/em>anak dipanggil dan mewarisi class induk.<br \/><br \/>Jika <em>class <\/em>anak mendeklarasikan __construct maka konstruktor dari <em>class <\/em>anak yang terpanggil, Contoh :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \nclass mobil{\t\n\tpublic function __construct() {\n\t\techo \"Mobil dibuat&lt;br&gt;\";\n\t}\t\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW&lt;br&gt;\";\n\t}\n}\nclass warnaMobil extends mobil { \/\/class turunan dari mobil\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW, bukan Audi&lt;br&gt;\";\n\t}\n\tfunction warnanya(){\n\t\t$this-&gt;dataMobil(); \/\/mewarisi dari sifat class utama mobil\n\t\techo \"Warna Mobil adalah Hitam\";\n\t}\n\tpublic function __construct() {\n\t\techo \"Mobil dibuat dari dulu&lt;br&gt;\";\n\t}\n}\n\t$warna = new warnaMobil();\n\techo $warna-&gt;warnanya();\n?&gt;<\/code><\/pre>\n\n\n\n<p>Hasil :<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXdQfefzRoV-rQvX5AOBquC_gY-nBlk1IkTX_KQ9_raCIjMtWyrdfCrP0UckYJjLzO3va5Jh9bcur5GZQ78b2_72VL0nSgj-JDqpox5U3KJSshkSh6fhdwPV2keWy0DlYkY4guxEbg?key=MK1cQmErY29OsUF3ihUTc-WA\" alt=\"override atau menimpa konstruktor dari induk pewaris dalam inheritance\"\/><\/figure>\n<\/div>\n\n\n<p>Jika konstruktor dari <em>class <\/em>induk ingin terpanggil juga, maka perlu menambahkan kode parent::__construct(); dari konstruktor <em>class <\/em>anak yang diwarisi, contoh :<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&lt;?php \nclass mobil{\t\n\tpublic function __construct() {\n\t\techo \"Mobil dibuat&lt;br&gt;\";\n\t}\t\t\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW&lt;br&gt;\";\n\t}\n}\nclass warnaMobil extends mobil { \/\/class turunan dari mobil\n\tfunction dataMobil(){\n\t\techo \"ini adalah mobil BMW, bukan Audi&lt;br&gt;\";\n\t\t}\n\tfunction warnanya(){\n\t\t$this-&gt;dataMobil(); \/\/mewarisi dari sifat class utama mobil\n\t\techo \"Warna Mobil adalah Hitam\";\n\t}\n\tpublic function __construct() {\n\t\tparent::__construct(); \n\t\techo \"Mobil dibuat dari dulu&lt;br&gt;\";\n\t}\n}\n$warna = new warnaMobil();\necho $warna-&gt;warnanya();\n?&gt;<\/code><\/pre>\n\n\n\n<p>Hasil :<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img decoding=\"async\" src=\"https:\/\/lh7-rt.googleusercontent.com\/docsz\/AD_4nXczU9uJ8ECKiRf8iSHNoCxhiXTmu9gStgeIqlMrzSF7r_arlUH8881blXLtmoXH3BI-csx4LbymwJS70zIXvf-mxyhlbDZ5fUPGKCsmCdfgbCFu50N6vZVOK2epQjtLF4TOJVij-g?key=MK1cQmErY29OsUF3ihUTc-WA\" alt=\"membuat construct pada inheritance jika construct dari induk pewaris\"\/><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">Kesimpulan<\/h2>\n\n\n\n<p><em>Inheritance <\/em>memungkinkan perubahan atau bahkan menimpa data dari kelas utama. Dengan <em>inheritance<\/em>, setiap halaman memiliki kebutuhan yang berbeda tetapi masih menggunakan kelas utama, kita dapat membuat kelas turunan untuk masing-masing halaman dan hanya memanggil kelas turunannya. Hal ini membantu menghindari duplikasi kode serta membuatnya lebih terstruktur dan mudah dikelola.<\/p>\n\n\n\n<p>Demikian series belajar php dasar untuk pemula bagian 13 mengenai <em>Inheritance<\/em> dalam OOP PHP. Pada seri belajar PHP dasar <a href=\"https:\/\/www.rumahweb.com\/journal\/belajar-php-dasar-14\/\" target=\"_blank\" rel=\"noopener\" title=\"\">bagian 14<\/a>, kita akan belajar tentang penerapan OOP dengan CRUD PHP. Simak terus panduan dari Rumahweb untuk meningkatkan script programming Anda. <\/p>\n\n\n\n<p><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Pada sesi belajar PHP dasar bagian 12, kita telah membahas sedikit tentang pewarisan sifat (inheritance), terutama terkait dengan enkapsulasi protected, yang memungkinkan akses oleh kelas utama dan turunannya. Dalam sesi belajar PHP dasar bagian 13 ini kita akan melanjutkannya dengan membahas tentang konsep inheritance dalam OOP PHP. Apa itu inheritance (pewarisan sifat)? Inheritance atau pewarisan [&hellip;]<\/p>\n","protected":false},"author":352,"featured_media":53376,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[7],"tags":[1749,2332,45],"class_list":{"0":"post-53118","1":"post","2":"type-post","3":"status-publish","4":"format-standard","5":"has-post-thumbnail","7":"category-web-programming","8":"tag-belajar-php","9":"tag-belajar-php-dasar","10":"tag-php"},"aioseo_notices":[],"jetpack_publicize_connections":[],"jetpack_featured_media_url":"https:\/\/www.rumahweb.com\/journal\/wp-content\/uploads\/2025\/02\/banner-belajar-php-dasar-bagian-13.png","jetpack_shortlink":"https:\/\/wp.me\/p8n3G7-dOK","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/53118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/users\/352"}],"replies":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/comments?post=53118"}],"version-history":[{"count":0,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/posts\/53118\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media\/53376"}],"wp:attachment":[{"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/media?parent=53118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/categories?post=53118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.rumahweb.com\/journal\/wp-json\/wp\/v2\/tags?post=53118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}