Selasa, 14 Juli 2020

OOP Phyton

Pemrograman Berbasis Objek Python
Pemrograman berorientasi objek atau dalam bahasa inggris disebut Object Oriented Programming (OOP) adalah paradigma atau teknik pemrograman di mana semua hal dalam program dimodelkan seperti objek dalam dunia nyata. Objek di dunia nyata memiliki ciri atau attribut dan juga aksi atau kelakuan (behaviour).
Misalnya, objek bisa mewakili seseorang dengan nama properti, umur, alamat, dll, dengan perilaku seperti berjalan, berbicara, bernafas, dan berlari. Atau email dengan properti seperti daftar penerima, subjek, badan, dll., Dan perilaku seperti menambahkan lampiran dan pengiriman.
Semua unit dalam program bisa dianggap sebagai objek. Objek besar dibangun dari objek – objek yang lebih kecil. Objek yang satu berinteraksi dengan objek yang lain, sehingga semua menjadi sebuah kesatuan yang utuh.
Istilah – istilah dalam Pemrograman Berbasis Objek yang sering kita jumpai yaitu :
Kelas
Kelas adalah cetak biru atau prototipe dari objek dimana kita mendefinisikan atribut dari suatu objek. Atribut ini terdiri dari data member (variabel) dan fungsi (metode).

Variabel Kelas
Variabel kelas adalah variabel yang dishare atau dibagi oleh semua instance (turunan) dari kelas. Variabel kelas didefinisikan di dalam kelas, tapi di luar metode-metode yang ada dalam kelas tersebut.

Data member
Data member adalah variabel yang menyimpan data yang berhubungan dengan kelas dan objeknya.

Overloading Fungsi
Overloading fungsi adalah fungsi yang memiliki nama yang sama di dalam kelas, tapi dengan jumlah dan tipe argumen yang berbeda sehingga dapat melakukan beberapa hal yang berbeda.

Overloading operator
Overloading operator adalah pembuatan beberapa fungsi atau kegunaan untuk suatu operator. Misalnya operator + dibuat tidak hanya untuk penjumlahan, tapi juga untuk fungsi lain.


Variabel instansiasi
Variabel instansiasi adalah variabel yang didefinisikan di dalam suatu metode dan hanya menjadi milik dari instance kelas.

Pewarisan/Inheritansi
Inheritansi adalah pewarisan karakteristik sebuah kelas ke kelas lain yang menjadi turunannya.

Instance
Instance adalah istilah lain dari objek suatu kelas. Sebuah objek yang dibuat dari prototipe kelas Lingkaran misalnya disebut sebagai instance dari kelas tersebut.

Instansiasi
Instansiasi adalah pembuatan instance/objek dari suatu kelas

Metode
Metode adalah fungsi yang didefinisikan di dalam suatu kelas

Objek
Objek adalah instansiasi atau perwujudan dari sebuah kelas. Bila kelas adalah prototipenya, dan objek adalah barang jadinya.
Pembuatan Kelas
Untuk membuat sebuah kelas baru, pertama-tama definisikan terlebih dahulu sebuah kelas dengan menggunakan kata kunci class diikuti oleh nama kelas tersebut. Berikut adalah sintaks pembuatan kelas di Python :
class ClassName:
    '''class docstring'''
    class_body
Kelas memiliki docstring atau string dokumentasi yang bersifat opsional artinya bisa ada atau tidak. Docstring bisa diakses menggunakan format ClassName.__doc__ . class_body terdiri dari semua pernyataan berupa attribut, fungsi, dan data dari kelas. Berikut ini adalah contoh kelas yang sederhana :
class Orang:
    pass
org = Orang()
print(org)
Fungsi – fungsi di dalam kelas atau bisa disebut metode, pendefinisiannya sama dengan fungsi pada umumnya. Hanya saja, harus ada argumen pertama bernama self.


Class Inheritance Pyhton
Inheritance / Pewarisan adalah sebuah konsep yang penting di dalam Python. Inheritance adalah sebuah proses dimana sebuah class mengambil semua properti dan semua metode dari kelas lain.
Dengan cara seperti ini, semua method dan atribut yang terdapat pada kelas induk diturunkan ke kelas turunannya. Namun kelas turunannya dapat menambah method baru atau atribut baru tersendiri.
Bentuk Umum pembuatan Kelas turunan :
class <nama_kelas_turunan>(<nama_kelas_induk>):
<atribut-atribut>
<method-method>
Contoh program :

class Ayah:
  def methodAyah(self):
    print "Ini adalah Method Ayah"

class Anak(Ayah):
  def methodAnak(self):
    print "Ini adalah Method Anak"

#deklarasi objek kelas Ayah
p = Ayah()
p.methodAyah()

#deklarasi objek kelas anak
c = Anak()
c.methodAnak()
c.methodAyah()

Output :
Ini adalah Method Ayah
Ini adalah Method Anak
Ini adalah Method Ayah
Consturctor pada Python
Constructor adalah class method khusus yang akan dijalankan secara otomatis pada saat sebuah object dibuat sebagai representasi class tersebut. Constructor umumnya digunakan untuk melakukan inisialisasi terhadap suatu variabel atau method. Method ini akan dijalankan ketika obyek dibuat . Metode __init__() adalah metode konstruktor, yaitu metode khusus yang digunakan Python untuk menginisialisasi pembuatan objek dari kelas tersebut.
Contoh class dengan menggunakan constructor :


class Orang:
    def __init__(self, nama):
        self.nama = nama
    def katakanHalo(self):
        print 'Halo, nama saya %s, apa kabar?' % self.nama
org = Orang('budi')
org.katakanHalo()
.
Membuat Objek pada Python
Sebuah class belumlah berguna sebelum kita membuat objek dari class tersebut. Cara membuatnya mudah yaitu seperti ini:
nama_objek = nama_class()
Kita bisa membuat sebuah objek dengan cara berikut:
class Gadget(object):
  sumber_energi = "listrik"
hp = Gadget()
Variabel hp adalah sebuah objek yang bertipe-objek (class) Gadget. Variabel hp akan memiliki properti sumber_energi yang bernilai "listrik".
Untuk mengakses properti dari sebuah objek dapat dilakukan dengan cara berikut:
nama_objek.nama_properti
Dengan contoh Gadget kita diatas, untuk mencetak sumber_energi dari hp bagaimana kita melakukannya?
print hp.sumber_energi
akan mengeluarkan "listrik".














https://www.pythonindo.com/pemrograman-berorientasi-objek-di-python/
https://sakti.github.io/python101/oop.html
https://codesaya.com/python/python-lanjutan/class-di-python/unit/3/
https://codesaya.com/python/python-lanjutan/class-di-python/unit/8/
https://medium.com/@denihhandoko/object-oriented-programming-oop-dengan-python-3-9a618df7429e