Penjelasan Konsep OOP object oriented programming

By | November 21, 2021
1,744 Views

— Penjelasan Konsep OOP object oriented programming –  OOP adalah singkatan object oriented programming yang merupakan perkembangan bahasa dari sebelumnya berbasis procedure yaitu bahasa C dan Pascal. Bahasa OOP merupakan bahasa mesin yang lebih manusia alias mendekati real sehari-hari. Bahasa pemgroraman yang murni OOP yaitu Java, untuk bahasa yang masih berbasis procedure / hibrid antara gabungan OOP dan procedure yaitu C++ dan Python.

Membangun aplikasi yang besar dengan konsep OOP akan membuat maintance menjadi lebih mudah karena OOP menawarkan 3 fitur utama yaitu Pemodulan/pengkapsulan (encapsulation); Penurunan/pewarisan (Inheritance); Polimorfisme (Polimorphism).

Pewarisan / inheritance

Dari konsep penurunan ini suatu kelas bisa diturunkan menjadi kelas baru yang masih mewarisi sifat-sifat kelas orangtuanya. Hal ini dapat dianalogikan dengan kelas manusia. Manusia merupakan turunan dari orang tuanya dan sifat-sifat orang tua diwarisi olehnya. Bisa ditarik kesimpulan bahwa semua kelas di dunia selalu memiliki hirarki yang menggambarkan silsilah kelas tersebut.

Pembungkusan/ encapsulation

Pemodulan adalah metode untuk menggabungkan data dengan fungsi. Dalam konsep ini data dan fungsi digabung menjadi satu kesatuan yaitu kelas. Konsep ini erat kaitannya dengan konsep penyembunyian informasi (information hiding). Untuk bahasa python tidak mengenal konsep private, public, protected layakanya konsep OOP di java

Polimorfisme (Polymorphism)

Polimorfisme berarti kelas-kelas yang berbeda tetapi berasal dari satu orang tua dapat mempunyai metode yang sama tetapi cara pelaksanaannya berbeda-beda. Atau dengan kata lain, suatu fungsi akan memiliki perilaku berbeda jika dilewatkan ke kelas yang berbeda-beda.

Contoh OOP

Contoh OOP dalam bahasa python sangat mudah, kalian bisa menggunakan konsep procedure atau OOP dalam menulis kode di Python tidak seperti bahasa R/Octave/Matlab yang masih berbasis procedure. Sesuai konvensi di pembahasan sebelumnnya bahwa nama class diawali oleh huruf kapital

class Siswa:
    pass

Class diatas tidak punya attribute dan methode/function apapun, untuk membuat instance object class, lakukan hal berikut

a = Siswa()

Artinya kita membuat instance object class OOP dari class Siswa(), objek yang dimaksud yaitu

<__main__.Siswa at 0x1b280692af0>

Tentu Siswa mempunyai attribut seperti NIM dan nama, maka dalam konsep OOP method yang pertama kali dipanggil ketika object tersebut dibuat disebut dengan method constructor. Kita perbaiki class OOP seperti berikut

class Siswa:
    def __init__(self):
        print('kamu panggil aku ya!')


a = Siswa()

ketika dipanggil maka method __init__() akan langsung dipanggil

kamu panggil aku ya!

Konsep OOP object oriented programming maka setiap method harus diberikan kata kunci self yang berarti method tersebut miliknya dirinya class tersebut. Untuk memasukan argument sama seperti membuat method/function, contohnya sebagai berikut

class Siswa:
    def __init__(self,nama):
        print('kamu panggil aku ya!',nama)


a = Siswa('bejo pamungkas')

hasilnya

kamu panggil aku ya! bejo pamungkas

Attribut Class

Attribut class disini berarti class tersebut mempunyai variabel yang bisa kita akses. Kita lengkapi sebagai berikut Perhatikan self.NIM dan self.nama

class Siswa():
    def __init__(self,NIM,nama):
        self.NIM = NIM
        self.nama = nama        
    def panggil(self):
        print('namanya: ',self.nama)

a = Siswa(123,'bejo pamungkas')
a.panggil()

hasilnya

namanya:  bejo pamungkas

ataupun kita bisa akses attibut secara langsung pada objek a dengan operator titik.

a.nama
Out[16]: 'bejo pamungkas'

Penerapan Inheritance

Penerapan konsep OOP bisa dimulai dari pembuatan class induk atau langsung tanpa class induk. Biasanya class induk isinya abstrak saja. Kita akan membuat class Siswa yang terdiri method constructor dengan argument input NIM dan nama

class Siswa():
    def __init__(self,NIM,nama):
        self.NIM = NIM
        self.nama = nama
    def panggil(self):
        print('namanya: ',self.nama)

Langkah selanjutnya kita akan inheritance, kalian bisa melihat class SMP adakah anak dari class Siswa

class SMP(Siswa):
    def __init__(self,NIM,nama):
        Siswa.__init__(self,NIM,nama)

Sehingga ketika membuat objek class SMP dengan memanggil method panggil() itu bisa saja karena mewarisi sifat2 induknya

bejo = SMP(123,'bejo pamungkas')
bejo.panggil()

hasilnya

namanya:  bejo pamungkas

Penerapan Polimorfisme

dalam konsep OOP jika method induk tidak cocok menurut kita, maka bisa diubah koq implementasinya

class SMP(Siswa):
    def __init__(self,NIM,nama):
        Siswa.__init__(self,NIM,nama)        
    def panggil(self):
        print('nama ganteng: ',self.nama)       

bejo = SMP(123,'bejo pamungkas')
bejo.panggil()

hasilnya

nama ganteng:  bejo pamungkas

OOP object oriented programming akan banyak dijumpai kalau kalian sering menggunakan library scikit-learn

See also  Belajar Regex Regular Expression