Rangkuman Object-Oriented Programming (OOP)

 

Rangkuman Pemrograman Berorientasi Objek (OOP)

Kita sudah berada di penghujung materi Pemrograman Berorientasi Objek (OOP). Sampai sejauh ini, Anda diharapkan paham untuk mengimplementasikan konsep OOP ke dalam setiap program yang Anda bangun. Mari kita rangkum secara saksama.


Mengetik Bebek

Duck Typing  merupakan konsep yang menjelaskan bahwa sebuah tipe atau  kelas  dari sebuah objek tidak lebih penting daripada metode yang menjadi perilakunya. Konsep ini berbunyi " jika ia berjalan seperti bebek dan ia berkuak seperti bebek, maka ia pasti seekor bebek " yang artinya jika sesuatu berjalan seperti bebek dan bersuara seperti bebek, kemungkinan besar ia adalah bebek.  

Python ingin memberikan keleluasaan terhadap para developernya untuk tidak perlu mencemaskan tipe atau kelas (class) dari sebuah objek (object), yang lebih penting adalah kemampuan melakukan operasinya (method). 


Kelas, Objek, dan Metode

Pemrograman berorientasi objek adalah paradigma pemrograman yang berorientasi pada pengorganisasian kode menjadi objek-objek yang memiliki atribut dan perilaku (metode). Objek adalah turunan dari  class  dan kelas merupakan cetakan yang memungkinkan kita dapat membuat banyak objek berdasarkan cetakan tersebut. 

Metode  adalah perilaku atau tindakan yang dapat dilakukan oleh objek atau kelas. sama halnya maju, mundur, berbelok, dan berhenti pada contoh sebelumnya. Atribut adalah variabel yang menjadi identitas dari objek atau kelas, seperti warna dan kecepatan pada contoh sebelumnya.

Mari sederhanakan dengan tabel berikut.

NamaDeskripsiContoh

Kelas  (Kelas)

Cetakan (blueprint) untuk membuat objek-objek dengan karakteristik dan perilaku yang serupa.

Mobil; Manusia.

Objek (Objek)

Turunan atau perubahan dari kelas.

Pengodean Mobil; Budi, Herman, Asep.

Perilaku (Metode)

Perilaku atau tindakan yang dapat dilakukan oleh objek atau kelas.

Maju, mundur, berbelok, berhenti.

Atribut

Variabel yang menjadi identitas dari objek atau kelas.

Warna, kecepatan, merek.


Kelas

Pembuatan  class  dalam Python mirip dengan fungsinya, yaitu perlu menggunakan kata kunci untuk bisa memasaknya. Kata kunci atau kata kunci untuk membuat kelas dalam Python adalah " class ".

  1. Kelas Mobil :
  2.     lulus


Objek (Objek)

Untuk memanggil kelas yang telah dibuat, kami membuat sebuah objek. Berdasarkan KBBI dari kemendikbud,  objek  merupakan benda, hal, dan sebagainya yang dijadikan target untuk diteliti, diperhatikan, dan sebagainya. Keterkaitan antara objek dan  kelas  sangat erat. Contohnya, jika Anda membuat kelas bernama manusia, objeknya adalah manusia dengan nama yang berbeda.

Anda bisa menampilkan kelas adalah bentuk abstrak dari objek layaknya cetakan atau  cetak biru . Saat kelas diwujudkan menjadi bentuk yang lebih nyata, proses ini disebut sebagai instansiasi. Itulah sebabnya objek disebut juga sebagai instance atau  instance of the class .

  1. Kelas Mobil :
  2.     # Atribusi
  3.     warna = "Merah"
  4. mobil_1 = Mobil ()


Atribut

Dalam Python, ada dua jenis atribut kelas yang dapat dibagi, yaitu  atribut kelas  dan  atribut objek atau instance . Atribut kelas adalah jenis atribut yang secara otomatis terdefinisi dan menjadi bawaan kelas ketika instance dibuat berdasarkan kelas tersebut. Anda dapat mengira sebagai nilai default atau bawaan dari kelas. Jika Anda membuat beberapa objek berdasarkan kelas yang memiliki jenis atribut ini, setiap objek akan memiliki atribut yang sama dengan nilai yang sama. 

Namun perlu diperhatikan bahwa jenis atribut kelas memiliki kelemahan, yaitu ketika nilai atribut kelas diubah, perubahan tersebut akan mempengaruhi semua objek yang dibuat berdasarkan kelas tersebut.

  1. Atribut Kelas
    Atribut kelas adalah jenis atribut yang melekat pada kelas sehingga menjadi bawaan ketika membuat sebuah instance.
    1. Kelas Mobil :
    2.     # Atribut kelas
    3.     warna = "Merah"
    4. mobil1 = Mobil ()
    5. cetak ( mobil1.warna )
  1. Atribut Instance
    Atribut instance atau atribut objek adalah atribut yang terkait dengan instance atau objek itu sendiri, bukan kelas.
    1. Kelas Mobil :
    2.     # Instansi Atribut
    3.     def __init__ ( self ):
    4.         diri.warna = ' Merah '
    5. mobil_1 = Mobil ()
    6. cetak ( mobil_1.warna )

Untuk membuat atribut instance, kita perlu membuat atribut tersebut melalui konstruktor kelas  .


Konstruktor Kelas

Pembangun kelas atau konstruktor kelas  adalah sebuah  fungsi khusus  dalam Python yang digunakan untuk menentukan nilai atau kondisi awal dari suatu kelas. Dengan fungsi ini, saat kita melakukan proses instansiasi atau pembuatan benda baru, hal pertama yang dilakukan adalah penemuan terlebih dahulu.

Tidak hanya untuk membuat atribut, kita juga dapat menambahkan  parameter  lain dalam konstruktor kelas  . 

  1. Kelas Mobil :
  2.     def __init__ ( mandiri , warna , merek , kecepatan ):
  3.         diri sendiri.warna = warna
  4.         diri sendiri.merek = merek
  5.         kecepatan diri = kecepatan
  6.         
  7. mobil_1 = Mobil ( 'Merah' , 'DicodingCar' , 160 )
  8. cetak ( mobil_1.warna ))
  9. cetak ( mobil_1.merek ) )
  10. cetak ( mobil_1.kecepatan )
  11. """
  12. Keluaran:
  13. Merah
  14. DicodingCar
  15. 160
  16. """


Metode

Metode  merupakan perilaku atau tindakan yang dapat dilakukan oleh objek atau kelas. Dalam metode pembuatan, sebenarnya kita membuat fungsi di dalam kelas itu sendiri. Dengan kata lain, kita menggunakan kata kunci  "def"  atau membuat fungsi sebagai suatu metode.  Metode  sendiri dibagi menjadi tiga jenis.

  1. Metode dari Objek  (Object Method)
    Jenis pertama adalah metode yang melekat terhadap objek. Ciri dari jenis metode ini adalah  adanya parameter  self  yang merujuk pada objek saat ini yang dibuat.
    1. Kelas Mobil :
    2.     def __init__ ( mandiri , warna , merek , kecepatan ):
    3.         diri sendiri.warna = warna
    4.         diri sendiri.merek = merek
    5.         kecepatan diri = kecepatan
    6.     def tambah_kecepatan ( mandiri ):
    7.         kecepatan diri + = 10
  1. Metode secara Statis (Metode Statis)
    Metode statis adalah fungsi atau metode pada sebuah kelas yang bersifat statistik. Artinya metode atau fungsi ini bersifat independen dan tidak terikat pada instance kelas. Metode ini dapat dianggap seperti kita membuat fungsi seperti biasa, tetapi didefinisikan dalam kelas. Jadi, ini menjadi perilaku untuk kelas tersebut. Untuk membuat metode statis, Anda bisa menambahkan dekorator  @staticmethod  tepat sebelum mendefinisikan fungsi atau metode.
    1. Kelas Mobil :
    2.     def __init__ ( diri , merek ):
    3.         diri sendiri.merek = merek
    4.     
    5.     @staticmethod
    6.     def intro_mobil ():
    7.         print ( "Ini adalah metode dari kelas Mobil" )
    8.         
    9. Mobil.intro_mobil ( )
    10. mobil_1 = Mobil ( "DicodingMobil" )
    11. mobil_1 . intro_mobil ()
  1. Metode dari Kelas (Class Method)
    Metode terakhir adalah metode kelas yang termasuk jenis metode yang cukup spesial dalam Python. Jika metode objek identik dengan parameter  self  yang merujuk pada objek,  metode kelas juga memerlukan parameter yang merujuk pada kelas.
    1. Kelas Mobil :
    2.     def __init__ ( diri , merek ):
    3.         diri sendiri.merek = merek
    4.     @classmethod
    5.     def intro_mobil ( cls ):
    6.         print ( "Ini adalah metode dari kelas Mobil" )
    7.         
    8. Mobil.intro_mobil ( )
    9. mobil_1 = Mobil ( "DicodingMobil" )
    10. mobil_1 . intro_mobil ()


Warisan

Berikut adalah rangkuman materi terkait  warisan  atau dalam bahasa Indonesia disebut pewarisan.


Mekanisme Pewarisan

dos:474361acb56f38d3f5de58bdadf63efd20230822112439.jpeg

Untuk melakukan pewarisan, anggap kita memiliki "kelas A" sebagai induk atau kelas dasar. Dari kelas A tersebut, kita membuat kelas baru bernama “kelas B” sebagai kelas turunan dari kelas yang didapat (kelas A). Ketika kelas B mewarisi kelas A, secara otomatis kelas ini memiliki fitur-fitur yang dimiliki oleh kelas A tersebut, dalam hal ini atribut-atribut dan metode-metode.

Jika kelas B memiliki nama metode yang sama dengan kelas A, metode tersebut akan menimpa metode yang diwariskan oleh kelas A.

  1. Kelas Mobil :
  2.     def __init__ ( mandiri , warna , merek , kecepatan ):
  3.         diri sendiri.warna = warna
  4.         diri sendiri.merek = merek
  5.         kecepatan diri = kecepatan
  6.     
  7.     def tambah_kecepatan ( mandiri ):
  8.         kecepatan diri + = 10
  9. kelas MobilSport ( Mobil ):
  10.     def turbo ( self ):
  11.         kecepatan diri + = 50


Mengesampingkan

Ketika kita membuat metode baru di kelas turunan (kelas baru) dengan nama yang sama seperti metode di kelas induk, itu akan menyebabkan metode baru menimpa (override) metode pada kelas induk. 

  1. Kelas Mobil :
  2.     def __init__ ( mandiri , warna , merek , kecepatan ):
  3.         diri sendiri.warna = warna
  4.         diri sendiri.merek = merek
  5.         kecepatan diri = kecepatan
  6.     
  7.     def tambah_kecepatan ( self ): # tambah_kecepatan    
  8.         kecepatan diri + = 10
  9. kelas MobilSport ( Mobil ):
  10.     def turbo ( self ):
  11.         kecepatan diri + = 50
  12.     
  13.     def tambah_kecepatan ( self ): # tambah_kecepatan    
  14.         kecepatan diri + = 20


Super

Terakhir adalah super, yaitu fungsi yang digunakan untuk menggunakan metode atau atribut dari kelas induk, tetapi tidak ingin menuliskan ulang semua kode. Nama super sebenarnya Merujuk pada kelas induk yang disebut juga sebagai  super class . Kita bisa memanfaatkan konsep ini untuk menghindari kode berulang dan memanfaatkan fungsi yang sudah ada pada kelas induk (super class).

  1. Kelas Mobil :
  2.     def __init__ ( mandiri , warna , merek , kecepatan ):
  3.         warna sendiri = warna
  4.         diri . merek = merek
  5.         kecepatan diri = kecepatan
  6.     
  7.     def tambah_kecepatan ( mandiri ):
  8.         diri . kecepatan += 10
  9. kelas MobilSport ( Mobil ):
  10.     def turbo ( self ):
  11.         diri . kecepatan += 50
  12.     
  13.     def tambah_kecepatan ( mandiri ):
  14.         sangat (). tambah_kecepatan () #Super
  15.         print ( "Kecepatan Anda meningkat! Hati-Hati!" )

Comments

Popular posts from this blog

Ceritakan cerita saya:

Aplikasi/Gaming/Koding: NKHM Nusantara:

STUDIUM GENERALE