Anda di halaman 1dari 24

Laporan Praktikum Pemprograman Lanjut

“Modul 10 : Object Oriented Programming – INHERITANCE 1”


“Modul 11 : Object Oriented Programming – INHERITANCE 2”

Disusun Oleh
Nama : Fernando Yoga Pratama
(22/492478/SV/20512)

Hari, Tanggal : Kamis, 11 Mei 2023


Kelas : 1K2AA
Dosen Pengampu : Budi Sumanto, S.Si., M.Eng.
Asisten Dosen : 1. Bodhi Setiawan
2. Ahmad Jaelani

DIPLOMA IV TEKNOLOGI REKAYASA INSTRUMENTASI & KONTROL


DEPARTEMEN TEKNIK ELEKTRO DAN INFORMATIKA
SEKOLAH VOKASI
UNIVERSITAS GADJAH MADA
2023
Struktur Laporan Praktikum :
1. Cover
2. Tujuan
3. Dasar Teori
4. Pembahasan (Hasil Program Dan Flowchart)
5. Kesimpulan
6. Daftar Pustaka
TUJUAN

1. Mahasiswa memahami cara mewariskan komponen class


2. Mahasiswa memahami aplikasi pewarisan (inheritance)
3. Mahasiswa memahami membuat subclass dari beberapa superclass
4. Mahasiswa memahami bagaimana pewarisan properties ke subclass
5. Mahasiswa memahami permasalahan diamond problem

DASAR TEORI

Pyhton merupakan bahasa pemrograman yang saat ini paling diminati oleh pengguna.
Hal ini dikarenakan python memiliki beberapa kelebihan diantaranya mudah digunakan,
bahasa yang sederhana, memiliki banyak library, dan open source sehingga tidak perlu
membeli lisensi. Pada python pun terdapat banyak fungsi yang bisa digunakan, salah satunya
adalah else if python. Else if python merupakan salah satu percabangan yang digunakan dalam
python untuk penentuan keputusan atau conditional statement.

Konsep dari else if python terbilang cukup sederhana, yaitu komputer akan
mengeksekusi sesuatu berdasarkan apa yang sebelumnya kita instruksikan dalam komputer.
Premis yang digunakan dalam else if python adalah premis jika-maka. Sebagai contoh, "jika"
nilai seorang siswa lebih atau sama dengan 80, "maka" siswa akan mendapat predikat A. Dalam
else if python, jika kondisi yang diinstruksikan telah terpenuhi maka ia akan menampilkan
output A dan jika kondisi tidak terpenuhi maka ia akan menampilkan output B.

Dalam bahasa pemrograman Python, struktur data yang paling dasar adalah urutan atau
lists. Setiap elemen-elemen berurutan akan diberi nomor posisi atau indeksnya. Indeks pertama
dalam list adalah nol, indeks kedua adalah satu dan seterusnya. Ada beberapa hal yang dapat
Anda lakukan terhadap data didalam list. Operasi ini meliputi pengindeksan, pengiris,
penambahan, perbanyak, dan pengecekan keanggotaan. Selain itu, Python memiliki fungsi
built-in untuk menemukan panjang list dan untuk menemukan elemen terbesar dan terkecilnya.
List adalah tipe data yang paling serbaguna dalam python, yang dapat ditulis sebagai daftar
nilai yang dipisahkan koma (item) antara tanda kurung siku. Hal penting mengenai daftar
adalah item dalam list tidak boleh sama jenisnya. Cara membuat list tidaklah susah, tinggal
memasukkan berbagai nilai yang dipisahkan koma diantar tanda kurung siku. Untuk
mengakses nilai dalam list python, gunakan tanda kurung siku untuk mengirim berserta indeks
atau indeks untuk mendapatkan nilai yang tersedia pada indeks tersebut. Selain itu mengupdate
nilai di dalam list python dengan cara memberi potongan disisi kiri operator penugasan dan
tambahkan nilai ke dalam list dengan metode append (). Menghapus nilai di dalam list pyhton
juga dapat dilakukan dengan menggunakan salah satu pernyataan del jika penulis tahu persis
elemen yang dihapus. Penulis dapat menggunakan metode remove (), jika penulis tidak
mengetahui persis item mana yang akan diihapus.

Object Oriented Programming (OOP) sering disebut sebagai paradigma pemrograman


modern yang sebelumnya adalah gaya pemrograman prosedural. Pendekatan OOP akan sangat
memudahkan jika diterapkan pada proyek yang besar dan kompleks, yang terdiri dari beberapa
personel dan pengembang, dengan membagi proyek menjadi bagianbagian kecil dan
independent. Berikut merupakan beberapa perbedaan dari OOP dan prosedural. Konsep dari
OOP dalam python ini berfokus dalam pembuatan kode yang reusable (dapat digunakan
kembali). Konsep ini juga dikenal dengan DRY (Don't Repeat Yourself).

Pondasi dasar dari struktur OOP adalah class, object, properties (instance variable, class
variables, attributes), dan method. Kemudian pengertian dari CLASS adalah sebuah blueprint
untuk object. Untuk membuat intruksi tersebut kita berbicara mengeani parrot atau burung beo,
blueprint, atau desainnya. Seperti, parrot tersebut akan memuat nama, warna, ukuran, juga bisa
singing dan dancing. Oleh karena itu kita bisa membuat parrot menjadi sebuah class. Untuk
membuat class parrot yang sederhana kita bisa menuliskan kode berikut :

Kata kunci class diikuti dengan Parrot mendefinisikan blueprint dari class parrot.
Blueprint ini nantinya akan di realisasikan dalam sebuah Object. Komponen yang lainnya
dalam OOP adalah object. Konvensi OOP mengasumsikan bahwa setiap objek yang ada dapat
dilengkapi dengan tiga kelompok atribut yaitu :
sebuah objek memiliki nama yang unik mengidentifikasinya dalam namespace
rumahnya (meskipun mungkin ada beberapa objek anonim juga), sebuah objek memiliki
sekumpulan properti individual yang membuatnya orisinal, unik, atau luar biasa (meskipun
mungkin beberapa objek mungkin tidak memiliki properti sama sekali), dan sebuah objek
memiliki sekumpulan kemampuan untuk melakukan aktivitas tertentu, mampu mengubah
objek itu sendiri, atau beberapa objek lainnya. Setiap kali mendeskripsikan suatu objek dan
menggunakan sebuah kata benda - kita mungkin mendefinisikan nama objek • sebuah kata sifat
- kita mungkin mendefinisikan properti objek • kata kerja - Anda mungkin mendefinisikan
aktivitas objek. Atribut bukan merupakan fungsi biasa namun merupakan konstruktor. Fungsi
konstruktor adalah mempersiapkan object baru, dengan menerima argument untuk men-set
beberapa variabel yang akan terbentuk pada class. Konstuktor tidak memiliki return luaran.
Object yang immutable atau tidak dapat dirubah umumnya diinisialisasi pada konstruktor.
Konstruktor berisi parameter diri, yang akan nanti dibawa ke class turunannnya. Untuk
membentuk sebuah konstruktor, digunakan instruksi __init__.

Sama halnya seperti atribut, method dibangun sebagai sebuah fungsi. Methods adalah
function yang didefinisikan dalam sebuah class. Function ini seharusnya mendefinisikan
behavior dari objeknya. Perhatikan syntax dibawah :

Sing dan dance merupakan method dari kelas Parrot. Selayaknya behaviour, method
umumnya berisi fungsi yang memiliki luaran atau return value, sehingga didalam fungsi
umumnya ada komputasi yang dilakukan.

Konsep dasar pewarisan atau disebut juga dengan inheritance. Tidak hanya mencetak
objek, class pada pewarisan ini juga mampu menurunkan sifat kepada class lainnya. Anggap
saja anda akan membuat sebua class baru yang memiliki atribut atau method yang sama, namun
adda beberapa bagian yang ditambahkan. Seperti berikut gambar untuk memahami inheritance.
Kita contohkan kendaraan. Kendaraan merupakan alat transportasi yang dapat
berpindah dari satu tempat ke tempat lainnya. Dibagi berdasarkan media bergeraknya,
kendaraan dapat berjalan di darat, air, dan udara. Untuk kendaraan yang bergerak didarat, ada
dua jenis kendaraan berdasarkan jumlah rodanya, yaitu roda dua dan roda empat. Anggaplah
kendaraan merupakan sebuah kelas, dan darat. air, dan udara adalah subclass yang terbentuk
dari class kendaraan (superclass). Semua subclass memiliki sifat pewarisan (inherintance) dari
superclass atau parentnya, yaitu alat yang mampu bergerak dari titik A ke titik B, namun bisa
juga memiliki sifat lainnya yang baru. Pewarisan sifat turun dari atas kebawah seperti akar
pohon, bukan cabang. Superclass akan selalu diatas, dan subclass ada dibawahnya. Perlu
dipahami bahwa Class (di antara definisi lainnya) adalah sekumpulan object dan Object adalah
makhluk yang termasuk dalam class. Object adalah penjelmaan dari persyaratan, sifat, dan
kualitas yang ditetapkan ke class tertentu. Class membentuk hierarki. Ini mungkin berarti
bahwa object yang termasuk dalam class tertentu menjadi milik semua superclass pada saat
yang sama. Ini juga dapat berarti bahwa object apa pun yang termasuk dalam class super
mungkin bukan milik subclass.

Pewarisan sifat. Memilki dua konsep utama, yang pertama adalah superclass (parent)
bersifat lebih umum daripada subclass. Pewarisan merupakan salah satu konsep dasar dari
pemorgraman berbasis objek. Objek apapun yang terikat ke tingkat tertentu dari hirarki kelas
akan mewarisi semua sifat dari superclass-nya. Perhatikan gambar dibawah ini :
Ilustrasi tersebut dijelaskan melalui contoh syntax berikut :

class Hewan merupakan superclass dan class HewanDarat dan HewanAir adalah
subclass. Instruksi super().__init__(nama) merupakan instruksi yang akan menurunkan atribut
superclass ke subclassnya. Setelah membuat class, akan dibuat object dari class dengan
perintah berikut :
Multiple Inheritance salah satu subclass yang didukung oleh Python, dibuat dari
beberapa superclass. Namun jika kedua class memiliki variable yang sama, maka variable
tersebut akan ter-replace dengan nilai yang baru. Ada beberapa cara yang digunakan Pyhton
untuk mencari properties dan methods pada object. Pertama dengan mencari didalam objek itu
sendiri, kemudian yang kedua adalah mencari pada classes yang terlibat dalam pembuatan
object inheritance dari bawah keatas. Jika terdapat satu atau lebih class dalam tingkatan jalur
inheritance, maka Pyhton akan mencari dari kiri ke kanan. Issubclass() dan isinstance(),
merupakan perinta yang digunakan dalam inheritance kali ini. Perintah issubclass() digunakan
untuk mengetahui apakah suatu class merupakan turunan dari class lainnya. Sedangkan
isinstance() adalah fungsi untuk mengetahui apakah sebuah object merupakan instance dari
satu class. Is operator digunakan untuk memperlihatkan apakah dua variable mengacu pada
object yang sama. Kemudian terdapat Method Resolution Order (MRO) dan Diamond Problem
yakni :

Permasalahan yang mungkin terjadi pada multiple inheritance adalah diamond


problem. Gambar diatas merupakan ilustrasi dari diamond problem. Sebagaimana yang terlihat
pada Gambar diatas, Class B dan Class C merupakan subclass dari Class D, sedangkan class A
berasal dari Class B dan Class C. Untuk hal dengan ilustrasi diatas dapat dilakukan, namun jika
arah sebaliknya, semisal Class A dibuat dari kombinasi Class D dan Class C akan menghasilkan
error.
PEMBAHASAN

1.Program

Hasil Run

Pembahasan
Program tersebut adalah contoh penerapan konsep inheritance atau pewarisan pada OOP (Object
Oriented Programming) dengan menggunakan bahasa Python. Pada program tersebut, terdapat kelas
utama yaitu `Hewan`, yang memiliki method `__init__` untuk menginisialisasi atribut `nama` serta
method `gerak` yang hanya mencetak tulisan "gerak-gerak!!!". Kemudian, terdapat dua kelas
turunan, yaitu `HewanDarat` dan `HewanAir`. Kedua kelas turunan ini mengambil sifat atau atribut
dari kelas utama `Hewan`, dengan menggunakan fungsi `super().__init__(nama)`. Kelas
`HewanDarat` memiliki atribut kaki yang diinisialisasi melalui parameter pada saat pembuatan
objek. Method `gerak` pada kelas ini akan mencetak tulisan "nama hewan gerak di darat dengan
kaki jumlah_kaki". Sedangkan kelas `HewanAir` memiliki atribut sirip yang diinisialisasi melalui
parameter pada saat pembuatan objek. Method `gerak` pada kelas ini akan mencetak tulisan "nama
hewan gerak di air dengan sirip jenis_sirip". Pada program utama, dibuat tiga objek yaitu
`hewan`, `kambing`, dan `hiu`. Objek `hewan` merupakan objek dari kelas utama `Hewan`,
sedangkan objek `kambing` dan `hiu` merupakan objek dari kelas turunan `HewanDarat` dan
`HewanAir`. Ketika method `gerak` dipanggil untuk masing-masing objek, akan tercetak tulisan
yang sesuai dengan kelas objek tersebut. Untuk objek `hewan`, akan mencetak "gerak-gerak!!!",
sedangkan untuk objek `kambing` akan mencetak "kambing gerak di darat dengan kaki 4" dan
untuk objek `hiu` akan mencetak "hiu gerak di air dengan sirip lebar".

Program Inheritance 2

1.Program

Hasil Run
Pembahasan
Program di atas adalah contoh dari konsep pewarisan atau inheritance di dalam bahasa pemrograman
Python. Terdapat tiga buah class, yaitu Satu, Dua, dan Sub. Class Satu dan Dua masing-masing
memiliki atribut dan metode sendiri-sendiri, sedangkan class Sub merupakan turunan dari class Dua
dan Satu. Ketika objek obj diciptakan dari class Sub, maka objek tersebut akan memiliki semua
atribut dan metode dari class Dua dan Satu. Pada saat program dijalankan, akan dicetak nilai dari
beberapa atribut dan metode dari objek obj. Perhatikan bahwa var dan coba() yang dipanggil pada
obj menghasilkan nilai dari class Dua, sedangkan varSatu dan coba() yang dipanggil pada obj
menghasilkan nilai dari class Satu. Hal ini disebabkan karena class Dua diwarisi terlebih dahulu
sebelum class Satu pada class Sub, sehingga method dan atribut dari class Dua memiliki prioritas
lebih tinggi daripada class Satu. Oleh karena itu, jika terdapat method atau atribut dengan nama yang
sama pada class Dua dan Satu, yang akan diambil adalah method atau atribut dari class Dua.

2. Program

Hasil Run
Pembahasan
Program di atas juga merupakan contoh dari konsep pewarisan atau inheritance di dalam bahasa
pemrograman Python. Terdapat tiga buah class, yaitu L1, L2, dan L3. Class L1 memiliki atribut var
dengan nilai 100 dan metode fun() yang mengembalikan nilai 101. Class L2 merupakan turunan dari
L1 dan memiliki atribut var dengan nilai 200 serta metode fun() yang mengembalikan nilai 201.
Sedangkan class L3 merupakan turunan dari L2. Ketika objek obj diciptakan dari class L3, maka
objek tersebut akan memiliki semua atribut dan metode dari class L1, L2, dan L3. Namun karena
class L3 tidak memiliki atribut atau metode yang berbeda dengan class L2, maka objek obj hanya
akan mengambil nilai dari class L2. Pada saat program dijalankan, akan dicetak nilai dari atribut var
dan metode fun() dari objek obj. Karena objek obj mengambil nilai dari class L2, maka nilai dari
atribut var yang dicetak adalah 200, sedangkan nilai yang dikembalikan oleh metode fun() adalah
201.

3. Program

Hasil Run

Pembahasan
Program di atas menggunakan dua fungsi bawaan Python yaitu `issubclass()` dan `isinstance()`.
Fungsi `issubclass()` digunakan untuk menentukan apakah sebuah class adalah subclass (turunan)
dari class lainnya. Pada program tersebut, pertama-tama dicetak nilai dari `issubclass(Sub, Satu)`
yang berarti apakah class Sub merupakan subclass dari class Satu. Karena class Sub merupakan
turunan dari Satu, maka fungsi ini akan mengembalikan nilai True. Selanjutnya, dicetak juga nilai
dari `issubclass(Sub, Dua)` yang berarti apakah class Sub merupakan subclass dari class Dua. Karena
class Sub juga merupakan turunan dari Dua, maka fungsi ini akan mengembalikan nilai True. Fungsi
`isinstance()` digunakan untuk menentukan apakah sebuah objek berasal dari sebuah class atau
turunan dari class tertentu. Pada program tersebut, dicetak nilai dari `isinstance(obj, Satu)` yang
berarti apakah objek obj berasal dari class Satu. Karena objek obj diciptakan dari class Sub yang
merupakan turunan dari Satu, maka fungsi ini akan mengembalikan nilai True. Selanjutnya, dicetak
juga nilai dari `isinstance(obj, Dua)` yang berarti apakah objek obj berasal dari class Dua. Karena
objek obj diciptakan dari class Sub yang merupakan turunan dari Dua, maka fungsi ini juga akan
mengembalikan nilai True.

4.Program

Hasil Run

Pembahasan
Pada program di atas, terdapat dua variabel string yaitu `string_1` dan `string_2`. Variabel `string_1`
diinisialisasi dengan string "Mary had a little", sedangkan variabel `string_2` diinisialisasi dengan
string "Mary had a little lamb". Selanjutnya, dilakukan operasi concatenation (penggabungan string)
dengan menambahkan string "lamb" pada akhir variabel `string_1`. Dengan demikian, variabel
`string_1` menjadi "Mary had a little lamb". Pada baris selanjutnya, dicetak hasil dari dua
perbandingan, yaitu `string_1 == string_2` dan `string_1 is string_2`. Perbandingan pertama
`string_1 == string_2` akan menghasilkan nilai False karena kedua string tidak sama persis.
Meskipun keduanya mengandung string "Mary had a little lamb", namun `string_2` juga
mengandung kata "lamb" sebelumnya. Perbandingan kedua `string_1 is string_2` akan menghasilkan
nilai False juga karena keduanya merepresentasikan dua objek string yang berbeda di dalam memori
komputer, meskipun memiliki isi yang sama.

5.Program
Hasil Run

Pembahasan
Program di atas mendefinisikan sebuah class `SampleClass` yang memiliki sebuah constructor
(metode `__init__()`) yang menerima satu parameter `val`, dan menginisialisasi atribut instance `val`
dengan nilai tersebut. Selanjutnya, terdapat tiga objek `SampleClass` yang diciptakan dengan nilai
`val` masing-masing adalah 0, 2, dan objek `object_1`. Variabel `object_3` diinisialisasi dengan nilai
dari `object_1`, sehingga keduanya merujuk pada objek yang sama di dalam memori komputer.
Selanjutnya, nilai atribut `val` dari `object_3` dinaikkan satu satuan dengan operator penambahan
(+=). Dalam hal ini, nilai dari `object_1.val` dan `object_3.val` akan sama-sama berubah menjadi 1.
Pada baris-baris terakhir program, dicetak hasil dari tiga perbandingan menggunakan operator `is`
yang membandingkan identitas objek, serta nilai atribut `val` dari ketiga objek. Hasil perbandingan
pertama `object_1 is object_2` akan menghasilkan nilai False, karena keduanya merepresentasikan
dua objek yang berbeda. Hasil perbandingan kedua `object_2 is object_3` juga akan menghasilkan
nilai False, karena keduanya juga merepresentasikan dua objek yang berbeda. Sementara itu, hasil
perbandingan ketiga `object_3 is object_1` akan menghasilkan nilai True, karena keduanya merujuk
pada objek yang sama di dalam memori komputer.
Hasil cetakan terakhir akan menunjukkan nilai atribut `val` dari ketiga objek. Karena `object_3.val`
telah diincrement sebelumnya, maka nilai `object_1.val` dan `object_3.val` sama-sama 1, sementara
nilai `object_2.val` adalah 2.
6.Program

Hasil Run

Revisi Program
Hasil Run

Pembahasan
Program di atas mendefinisikan tiga class yaitu `Top`, `Middle`, dan `Bottom`. Class `Top` memiliki
sebuah metode `m_top()` yang mencetak teks "top". Class `Middle` merupakan turunan dari class
`Top` dan memiliki sebuah metode `m_middle()` yang mencetak teks "middle". Class `Bottom`
merupakan turunan dari class `Middle` dan memiliki sebuah metode `m_bottom()` yang mencetak
teks "bottom". Selanjutnya, dibuat sebuah objek `object` dari class `Bottom` dan dipanggil metode
`m_bottom()`, `m_middle()`, dan `m_top()` dari objek tersebut. Hasil eksekusi program akan
mencetak teks "bottom", "middle", dan "top", sesuai dengan urutan pemanggilan metode pada objek
tersebut. Metode `m_bottom()` dipanggil pertama kali karena merupakan metode yang terdefinisi
pada class `Bottom`. Kemudian, metode `m_middle()` dipanggil karena merupakan metode yang
terdefinisi pada class `Middle`. Terakhir, metode `m_top()` dipanggil karena merupakan metode
yang terdefinisi pada class `Top` yang menjadi superclass dari class `Middle`.
TUGAS INHERITANCE 1

1.Program

Hasil Run

Flowchart
Pembahasan
Program tersebut mengimplementasikan konsep inheritance dalam pemrograman berorientasi objek
(OOP). Pertama, dibuat class parent Kendaraan yang memiliki tiga atribut yaitu merk, warna, dan
bahan_bakar. Kemudian, class Kendaraan memiliki method info() yang digunakan untuk
menampilkan informasi tentang kendaraan tersebut. Setelah itu, dibuat dua subclass yaitu Mobil dan
Motor. Subclass Mobil memiliki tambahan atribut jumlah_pintu dan subclass Motor memiliki
tambahan atribut tipe. Kedua subclass ini mewarisi semua atribut dan method dari class Kendaraan
menggunakan konsep inheritance. Selanjutnya, pada subclass Mobil dan Motor dibuat method info()
yang memanggil method info() pada class Kendaraan menggunakan keyword super(). Kemudian,
method info() pada subclass Mobil dan Motor menambahkan informasi tambahan mengenai atribut
yang dimilikinya, yaitu jumlah_pintu dan tipe. Terakhir, program membuat tiga objek yaitu
kendaraan1, mobil1, dan motor1 dari class Kendaraan, Mobil, dan Motor secara berurutan. Setiap
objek memanggil method info() yang sesuai dengan class yang digunakan untuk membuat objek
tersebut. Dalam setiap pemanggilan method info(), informasi tentang kendaraan, mobil, atau motor
tersebut ditampilkan.

TUGAS INHERITANCE 2

1.Program
Hasil Run

Program Setelah Dilakukan Eksplorasi Dengan Menukar Subclass dan Superclassnya


Hasil Run

Flowchart
Pembahasan
Dalam program ini, class `Top` menjadi superclass, class `Middle_Left` dan `Middle_Right` menjadi
subclass dari `Top`, dan class `Bottom` menjadi subclass dari `Middle_Left` dan `Middle_Right`.
Pada program ini, kita juga memperhatikan bahwa `Bottom` perlu menjadi subclass dari kedua
subclass `Middle_Left` dan `Middle_Right` agar terdapat multiple inheritance. Dalam program ini,
output yang dihasilkan tetap sama dengan program aslinya, yaitu akan mencetak teks "top",
"middle_left", dan "bottom" sesuai dengan urutan pemanggilan metode pada objek `object`.

Program tersebut merupakan contoh penggunaan konsep inheritance dalam pemrograman


berorientasi objek. Class-class tersebut saling memiliki hubungan antara superclass dan subclass.
Dalam program tersebut, terdapat class-class yang saling diturunkan, yaitu `Top` yang merupakan
superclass, `Middle_Left` dan `Middle_Right` yang merupakan subclass dari `Top`, serta `Bottom`
yang merupakan subclass dari kedua subclass tersebut. Ketika program dijalankan, objek `object`
dibuat dari class `Top`. Kemudian metode `m_top()` pada class `Top` dipanggil, diikuti dengan
metode `m_middle()` dari subclass `Middle_Left`, dan terakhir metode `m_bottom()` dari class
`Bottom`. Hasil keluaran dari program ini mencetak teks "top", "middle_left", dan "bottom" sesuai
dengan urutan pemanggilan metode pada objek `object`.
KESIMPULAN

Adapun kesimpulan praktikum yang diperoleh dari modul yang telah dipelajari yaitu :

1. Dalam inheritance, kita dapat membuat class baru yang mewarisi atribut dan method dari
class yang sudah ada, yang disebut sebagai class parent atau superclass. Class baru yang
dibuat disebut subclass atau child class. Untuk melakukan inheritance di Python, kita dapat
menambahkan nama class parent dalam kurung setelah nama class yang ingin dibuat.
Kemudian, kita dapat menggunakan keyword super() untuk mengakses atribut atau method
dari class parent. Selain itu, kita juga dapat menambahkan atribut atau method baru pada
subclass.
2. Selain itu pada praktikum kali ini Mahasiswa/I juga belajar memahami aplikasi perwarisan
(inheritance) dalam Pyhton. Untuk memahami aplikasi perwaisan (inheritance), ada
beberapa Langkah yang dapat dilakukan oleh Mahasiswa/I, seperti berikut. Memahami
konsep dasar inheritance yaitu suatu konsep dimana kita dapat membuat class baru yang
mewarisi atribut dan method dari class yang sudah ada, yang disebut sebagai class parent
atau superclass. Menganalisis class parent dengan memahami atribut dan method yang
dimiliki oleh class parent, kita dapat mengetahui apa saja yang dapat diwarisi oleh subclass.
Menganalisis subclass dengan memahami atribut dan method yang ditambahkan atau
diubah pada subclass, kita dapat mengetahui perbedaan dan kelebihan dari subclass
dibandingkan class parent. Memahami hubungan antara class parent dan subclass dengan
memahami cara subclass mengakses atribut dan method dari class parent menggunakan
keyword super(), kita dapat mengetahui bagaimana hubungan antara class parent dan
subclass terbentuk. Melakukan praktik dengan mencoba membuat dan
mengimplementasikan inheritance pada program, kita dapat memperdalam pemahaman
kita tentang inheritance dan bagaimana cara mengaplikasikannya dalam program. Dengan
memahami langkah-langkah tersebut, kita dapat lebih mudah untuk memahami aplikasi
perwarisan (inheritance) dalam pemrograman.
3. Berikut adalah cara untuk membuat subclass dari beberapa superclass (multi-inheritance) :
Pilih nama untuk subclass yang ingin Anda buat. Gunakan sintaksis `class
Subclass(Superclass1, Superclass2, ...):` untuk mendefinisikan subclass dengan
menyebutkan superclass yang diinginkan, dipisahkan oleh koma. Dalam metode
`__init__()` subclass, Penulis dapat memanggil metode `__init__()` dari superclass
menggunakan fungsi `super()`. Ini memungkinkan penulis untuk memperluas inisialisasi
superclass dan menambahkan logika khusus untuk subclass. Tambahkan metode-metode
tambahan yang unik untuk subclass sesuai kebutuhan. Subclass akan mewarisi metode dan
atribut dari superclass, sehingga penulis dapat menggunakan dan memodifikasi fungsi-
fungsi tersebut jika diperlukan. Penulis dapat menggunakan objek dari subclass untuk
memanggil metode yang diwarisi dari superclass dan metode unik subclass itu sendiri.
4. Pewarisan properti ke subclass dalam pemrograman berorientasi objek adalah proses
dimana subclass mewarisi properti (atribut) dari superclass. Secara singkat, berikut adalah
cara pewarisan properti ke subclass : Definisikan superclass dengan properti yang ingin
Anda wariskan ke subclass. Dalam subclass, gunakan sintaksis `class
Subclass(Superclass):` untuk mendefinisikan subclass dengan menyebutkan superclass
yang diinginkan. Subclass secara otomatis mewarisi properti dari superclass. Ini berarti
properti yang ada dalam superclass juga akan tersedia dalam subclass. Anda dapat
mengakses properti yang diwarisi dari superclass menggunakan objek instance subclass.
Anda juga dapat mengubah atau memodifikasi properti tersebut jika diizinkan (bergantung
pada hak akses properti). Jika subclass memiliki properti dengan nama yang sama seperti
properti dalam superclass, maka properti subclass akan menggantikan properti superclass.
Pewarisan properti memungkinkan Anda untuk menggunakan kembali kode dan
mengorganisasi hierarki kelas dengan lebih efisien. Ini membantu dalam membangun
struktur kelas yang lebih terorganisir dan meminimalkan duplikasi kode. Perhatikan bahwa
dalam beberapa bahasa pemrograman, ada konsep hak akses yang mempengaruhi apakah
properti superclass dapat diakses atau dimodifikasi langsung oleh subclass.
5. Diamond problem adalah permasalahan yang terjadi ketika sebuah kelas diwarisi oleh dua
kelas lainnya, dan kemudian kelas-kelas tersebut diwarisi oleh sebuah kelas keempat. Hal
ini menciptakan hierarki kelas berbentuk berlian atau diamond, yang dapat menyebabkan
konflik atau ambiguitas dalam pewarisan metode atau atribut. Permasalahan ini terjadi
karena adanya duplikasi metode atau atribut dari kelas induk yang diwarisi secara langsung
atau tidak langsung oleh kelas keempat. Ketika kelas keempat mencoba untuk mengakses
atau memanggil metode atau atribut tersebut, tidak jelas metode atau atribut dari kelas mana
yang harus digunakan. Untuk mengatasi diamond problem, Python menggunakan MRO
(Method Resolution Order) yang mengatur urutan pencarian metode dalam hierarki kelas.
MRO mengikuti aturan "C3 Linearization" untuk menentukan urutan yang konsisten.
DAFTAR PUSTAKA

Belajar Data Science di Rumah. 2021. 20 Desember. Fungsi Dalam Python, Kenali Else If Yuk.
https://www.dqlab.id/fungsi-dalam-python-kenali-else-if-
yuk#:~:text=Else%20if%20python%20merupakan%20salah,sebelumnya%20kita%20instruksikan
%20dalam%20komputer. Diakses pada Kamis, 23 Februari 2023.

Belajarpython. 2021. 12 Juli.. Tutorial List Python. https://belajarpython.com/tutorial/list-python/.


Diakses pada tanggal 9 Maret 2023.

Anggit Puguh. 2022. 15 September. Apa itu Python? Pengertian, Fungsi dan Contohnya.
https://blog.rumahweb.com/python-adalah/. Diakses pada tanggal, 2 Maret 2023

Huda Nurul. 2021. 22 Januari. Python Dasar : Mempelajari Perulangan For.


https://jagongoding.com/python/dasar/perulangan-for/. Diakses pada tanggal 2 Maret 2023.

Rahmawati, D., & Nugroho, A. B. (2019). Penerapan Konsep Inheritance pada Pemrograman
Berorientasi Objek dengan Bahasa Python. Jurnal Informatika Mulawarman, 14(1), 35-43.

Setiawan, A. (2020). Pemrograman Berorientasi Objek dengan Python: Studi Kasus Penerapan
Konsep Inheritance. Jurnal Teknik Informatika dan Sistem Informasi, 6(2), 72-78.

Fadlilah, A. R., & Prasetyo, B. E. (2021). Implementasi Konsep Inheritance pada Sistem Informasi
Pergudangan dengan Menggunakan Bahasa Python. Jurnal Ilmiah Teknologi Informasi Asia, 15(2),
119-126.

Anda mungkin juga menyukai