Filosofi Inheritance OOP

Assalammualaikum, Wr. Wb.

Hari ini saya dan teman-teman sekelas saya belajar mata kuliah OOP (Object Oriented Programming). Materinya kali ini adalah Inheritance yang jika diterjemahkan ke dalam bahasa Indonesia memiliki arti ‘Pewarisan’.

Sekilas Inheritance

Inheritance bertujuan untuk membentuk kelas baru (kelas anak) dimana kelas baru tersebut memiliki attribute dan method yang sama atau mirip dengan kelas yang sudah ada (kelas induk). Dalam OOP, kelas anak disebut sebagai subclass dan kelas induk disebut sebagai superclass.

Single Inheritance
Single Inheritance

Inheritance memungkinkan kelas anak untuk mengambil dan memakai attribute dan method kelas induk yang memiliki hak akses protected dan public. Contoh : Terdapat kelas Lingkaran, Tabung, dan Kerucut. Kelas Lingkaran adalah kelas induk, sedangkan kelas Tabung dan Kerucut adalah kelas anak. Hal ini dikarenakan kelas Lingkaran memiliki atributte dan method yang juga dimiliki oleh kelas Tabung dan Kerucut, yaitu atribut jari-jari dan metode setter dan getter-nya.

// Kelas Lingkaran - Kelas Induk
class Lingkaran {
   protected:
      int jarijari;
   public:
      void setJarijari(float r) { jarijari = r; }
      float getJarijari() { return jarijari; }
      float getDiameter() { return 2 * jarijari; }
      float getLuas() { return 3.14 * pow(jarijari,2); }
      float getKeliling() { return 2 * 3.14 * jarijari; }
};

// Kelas Tabung - Kelas Anak
class Tabung : public Lingkaran {
   private:
      float tinggi;
   public:
      void setTinggi(float t) { tinggi = t; }
      float getTinggi() { return tinggi; }
      float getVolume() { return 3.14 * pow(jarijari,2) * tinggi; }
      // menghitung luas selimut tabung
      float getLuas() {
         return (2*3.14*pow(jarijari,2))+(2*3.14*jarijari*tinggi);
      }
};

// Kelas Kerucut - Kelas Anak
class Kerucut : public Lingkaran {
   private:
      float tinggi;
   public:
      void setTinggi(float t) { tinggi = t; }
      float getTinggi() { return tinggi; }
      float getVolume() { return (3.14 * pow(jarijari,2) * tinggi) / 3; }
      // menghitung luas selimut kerucut
      float getLuas() {
         return 3.14*jarijari*sqrt(pow(jarijari,2)+pow(tinggi,2));
      }
};

Pada contoh diatas, kita tak perlu lagi mendeklarasikan atribut jari-jari pada kelas Tabung dan Kerucut. Karena atribut jari-jari telah diwariskan oleh kelas Tabung. Kita cukup memanggilnya saja di kelas turunan baik kelas Tabung atau Kerucut. Contoh kode diatas adalah bentuk sederhana dari konsep Inheritance.

Oke, sudah cukup perkenalannya. Sekarang kita masuk ke inti postingan ini 🙂

Filosofi Inheritance

Pada OOP bahasa C++ dan Java -sepengalaman saya-, Inheritance hanya memungkinkan kelas Anak untuk mengambil dan mengakses attribute dan method kelas Induk. Sedangkan kelas Induk tidak diijinkan untuk mengakses attribute dan method kelas Anak. Kelas Induk mengizinkan dan memperbolehkan kelas Anak untuk dapat mengakses dan mengambil attribute dan method miliknya walaupun kelas Induk sama sekali tidak mendapatkan balasan yang sama dari kelas Anak.

Pertanyaannya sekarang, kenapa para jenius pemrograman menciptakan konsep Inheritance yang seperti ini? Kenapa kelas Induk tidak dapat mengakses attribute dan method kelas Anaknya? Kenapaaa? *mulai lebai* Jujur saja, saya sendiri tidak tau pasti alasannya hehe. Saya masih pemula dalam hal ini 🙂 Hal yang akan saya sampaikan selanjutnya adalah filosofi menurut pandangan saya sendiri akan ilmu yang baru saja saya dapatkan tadi pagi.

Jika kita perhatikan lagi, sebenarnya konsep Inheritance ini mirip dengan fenomena yang terjadi pada kehidupan kita sehari-hari. Kelas Induk memberikan setiap hal yang bisa mereka berikan kepada kelas Anaknya walaupun kelas Induk sama sekali tidak mendapatkan balasan apapun. Hal ini sangat-sangat-sangatlah mirip dengan apa yang dilakukan oleh orang tua kita!

Mereka, para orang tua, rela berkorban membanting tulang demi kita. Supaya kita bisa melanjutkan pendidikan kita. Supaya kita bisa mengkonsumsi makanan 4 sehat 5 sempurna. Supaya kita … yap, akan sangat terlalu banyak bila disebutkan satu per satu. Intinya, orang tua kita selalu rela berkorban demi kita, buah hati mereka.

Lalu apa yang bisa kita aku beri sebagai balasan akan kebaikan mereka?

Kita sendiri yang bisa menjawab pertanyaan tersebut. Satu hal yang harus kita ingat, kasih sayang orang tua tidak akan pernah berhenti mengalir kepada kita. Sebisa mungkin kita harus membalasnya lebih baik, walau mereka sama sekali tidak mengharapkan balasan dari kita. Berjuanglah untuk membahagiakan mereka selalu.

Allahumma firli waliwalidayya warhamhuma kama robbayani shogira
Ya Allah ampunilah dosaku dan dosa ibu bapakku, sayangilah mereka seperti mereka menyayangiku di waktu kecil.
Aamiin

Terima kasih telah berkunjung. Semoga postingan ini bisa menjadi pengingat dan penyemangat bagi kita semua, khususnya saya.

Wassalammualaikum, Wr. Wb.

5 thoughts on “Filosofi Inheritance OOP

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s