• Tidak ada hasil yang ditemukan

Object oriented programming

N/A
N/A
Azel Zahra

Academic year: 2023

Membagikan "Object oriented programming"

Copied!
89
0
0

Teks penuh

Pada contoh di atas, kami menyediakan variabel warna untuk menjadi atribut atau identitas default kelas Mobil. Kemudian pada baris kode “mobil_1 = Car()”, kita membuat objek dari kelas Car dan menyimpannya di variabel mobil_1. Berbeda dengan fungsi, variabel pada contoh di atas merupakan objek yang merupakan perwujudan dari kelas yang kita buat.

Pada contoh di atas, kita mengubah atribut kelas yang semula berwarna merah menjadi biru dengan mendeklarasikan ulang nilainya. Selanjutnya, pada kode berikut kita membuat dua instance baru yang berasal dari kelas Car. Tipe atribut ini memungkinkan setiap instance kelas mempunyai atribut yang berbeda-beda sesuai keinginan.

Pada contoh di atas, kita membuat kelas bernama Mobil, dengan atribut instance berwarna dan nilainya merah. Pada contoh di atas, kita telah membuat kelas yang sama, namun terdapat perbedaan dengan kelas sebelumnya. Perhatikan contoh di bawah ini, dengan asumsi kita membuat kelas mobil yang sama seperti sebelumnya.

Pada contoh di atas, kita membuat fungsi bernama intro_mobile() yang merupakan metode atau perilaku dari kelas Mobil yang didahului oleh dekorator @staticmethod. Fungsi atau metode yang kita buat disebut intro_mobile dan mencetak pesan "ini adalah metode di kelas mobil". Pada contoh di atas, kita membuat program yang sama, namun ada sedikit perbedaan yaitu dekoratornya.

Inheritance (Pewarisan)

Perhatikan lebih dekat outputnya, kode di atas menerima parameter yaitu kelas Car meskipun ketika kita memanggil fungsi intro_car() kita tidak melakukannya. Seperti pada ilustrasi di sebelahnya, Anda memiliki kelas Car sebagai kelas dasar atau kelas induk. Mari kita lihat contoh pewarisan di bawah ini, dengan asumsi kita perlu membuat kelas Car sebagai kelas dasar.

Dari kelas mobil ini, kami akan membuat kelas mobil baru bernama Mobil Sport dengan fitur yang sama dengan kelas dasar. Pada contoh di atas, kita membuat kelas bernama Mobil yang atributnya adalah warna, merek, dan kecepatan. Kita akan membuat kelas baru bernama "MobilSport" yang mewarisi atribut dan metode kelas dasar mobil.

Pada contoh diatas kita membuat class baru bernama MobilSport yang merupakan warisan dari class sebelumnya yaitu class Car. Dengan demikian, kelas MobilSport akan mewarisi seluruh atribut dari kelas Mobil, seperti atribut warna, merek, kecepatan, dan lain-lain. Perhatikan bahwa pada kelas ini kita tidak perlu mendefinisikan ulang atributnya, sehingga parameternya sendiri akan mengacu pada atribut default yaitu kelas Mobil.

Perintah "print()" pertama akan mencetak kecepatan mobil_sport_1 saat ini yaitu 160 dan ini adalah nilai default kelas mobil dasar. Selain itu, seperti yang telah dijelaskan di awal, ketika kita membuat metode baru di kelas turunan (kelas baru) dengan nama yang sama dengan metode di kelas induk, maka metode baru tersebut akan menimpa metode kelas induk. Hal ini dikarenakan metode pada kelas baru merupakan hasil pewarisan sehingga tidak akan mengubah metode pada kelas induk.

Anda akan melihat bahwa ketika kita membuat objek dari kelas dasar dan kemudian memanggil metode dari kelas dasar tersebut, program masih meningkatkan kecepatan sebesar 10 meskipun kita telah mengganti kelas baru. Saat Anda menjalankan suatu program, Python pertama-tama akan mencari nama metode dengan nama yang cocok di kelas baru. Jadi bagaimana kita ingin menggunakan metode atau atribut dari kelas induk tetapi tidak ingin menulis ulang semua kodenya.

Pada contoh di atas, kita membuat kelas MobilSport sebagai kelas turunan dengan metode tambahan yaitu add_peace(). Pada metode ini kita menggunakan “super()” untuk mendapatkan metode add_speed yang berasal dari superclass atau induknya yaitu kelas Car.

Rangkuman Object-Oriented Programming (OOP)

Python ingin memberikan kebebasan kepada pengembangnya untuk tidak mengkhawatirkan jenis atau kelas suatu objek, yang lebih penting adalah kemampuan dalam melakukan operasi. Atribut adalah variabel yang mengidentifikasi suatu objek atau kelas, seperti warna dan kecepatan pada contoh sebelumnya. Di Python, ada dua jenis atribut kelas yang bisa dibagikan, yaitu atribut kelas dan atribut objek atau instance.

Atribut kelas adalah tipe atribut yang secara otomatis ditentukan dan ditetapkan secara default pada suatu kelas ketika sebuah instance dibuat berdasarkan kelas tersebut. Jika Anda membuat beberapa objek berdasarkan kelas yang memiliki atribut jenis ini, setiap objek akan memiliki atribut yang sama dengan nilai yang sama. Namun perlu diperhatikan bahwa tipe atribut kelas mempunyai kelemahan yaitu ketika nilai suatu atribut kelas diubah maka perubahan tersebut akan mempengaruhi seluruh objek yang dibuat berdasarkan kelas tersebut.

Atribut kelas merupakan suatu jenis atribut yang melekat pada suatu kelas sehingga menjadi default pada saat instance dibuat. Atribut instance atau atribut objek adalah atribut yang terkait dengan instance atau objek itu sendiri, bukan kelasnya. Konstruktor kelas adalah fungsi khusus dalam Python yang digunakan untuk menentukan nilai atau kondisi awal suatu kelas.

Ciri khas dari metode jenis ini adalah adanya parameter self yang mengacu pada objek sebenarnya yang sedang dibuat. Untuk membuat metode statis, Anda dapat menambahkan dekorator @staticmethod segera sebelum mendefinisikan fungsi atau metode. Jika metode objek identik dengan parameter self yang mengacu pada objek, maka metode kelas juga memerlukan parameter yang merujuk pada kelas.

Ketika kita membuat metode baru di kelas turunan (kelas baru) dengan nama yang sama dengan metode di kelas induk, maka akan menyebabkan metode baru tersebut menimpa metode di kelas induk. Terakhir adalah super, yaitu fungsi yang digunakan untuk menggunakan metode atau atribut dari kelas induknya, namun tidak ingin menulis ulang semua kodenya. Kita bisa memanfaatkan konsep ini untuk menghindari pengulangan kode dan menggunakan fungsi yang sudah ada di kelas induk (superclass).

Referensi

Dokumen terkait

menghantar argumen-argumen 1, ukur1 dan ukur2 ke dalam fungsi luas() yang terdapat dalam kelas generik bentuk dan memberi nilai 1 pada pembolehubah pilihan, nilai ukur1

Sebagai contoh Content Management System (CMS) seperti WordPress dan Joomla dibuat dengan bahasa pemrograman dasar PHP. Facebook dan Wikipedia juga menjadi salah

Dengan pewarisan, sebuah class dapat diturunkan menjadi class baru yang mempunyai sebagian atau seluruh karakteristik dari class parentnya.  Pewarisan dilakukan dengan

Subclass hanya boleh meng-override method superclass satu kali saja, tidak boleh ada lebih dari satu method pada kelas yang sama yang sama persis.. Java is willing to coerce to

Jika sebuah atribut (data field) yang bertipe reference tidak me-refer ke objek manapun (tidak/belum diisi nilainya), maka atribut tsb memiliki nilai literal khusus yaitu:

Jika class dasar tidak mempunyai default constructor atau akan melakukan pemanggilan terhadap constructor overloaded ketika objek turunan yang baru dibuat maka

OOP memberikan kemudahan dalam pembuatan sebuah program, keuntungan yang didapat apabila membuat Program berorientasi objek atau object oriented programming (OOP)

Bahasa pemrograman umumnya telah banyak disediakan untuk membuat aplikasi, baik yang bernilai kecil ataupun besar yang berguna untuk menjawab berbagai kebutuhan pengguna lainnya,