Melengkapi Series Basic Python sebelumnya, kali ini kita akan belajar OOP di Python. Sama Seperti hal nya OOP di bahasa pemrograman lain, OOP sudah tentu kita akan membahas

  • Class
  • Object
  • Constructor
  • Method
  • dsb. 

Penulisan (syntax)

class ClassName:

#....
#....

atau 

class Karyawan(object):


Di python kita bisa membuat Keterangan/Documentasi tentang Class yang kita buat dalam bentuk String

class Karyawan:
'Class ini untuk Urus Karyawan'

#akses di luar Class
print Karyawan.__doc__ #output : Class ini untuk Urus Karyawan


Class, Object, Constructor dan Method

Perhatikan contoh berikut : 

class Karyawan(object):

'Class ini untuk data Karyawan'
jml_karyawan = 0 #Class variable

#constructor
def __init__(self,kid,nama,jabatan):

self.kid = kid
self.nama = nama
self.jabatan = jabatan
Karyawan.jml_karyawan += 1

#method
def infoKaryawan(self):

print "Karyawan baru masuk"
print "==================="
print "ID : %s " % self.kid
print "Nama : %s " % self.nama
print "Jabatan : %s " % self.jabatan
#cara mengakses/memakai class/membuat Object
obj = Karyawan("K001","Ganjar","Teknisi")
obj.infoKaryawan()
#tambah karyawan baru
obj2 = Karyawan("K002","Nadya","Akunting")
obj2.infoKaryawan()
#tampilkan total Karyawan
print "-----------------------------"
print "Total Karyawan : %d " % Karyawan.jml_karyawan

Program diatas outputnya adalah

Karyawan baru masuk
===================
ID : K001
Nama : Ganjar
Jabatan : Teknisi
Karyawan baru masuk
===================
ID : K002
Nama : Nadya
Jabatan : Akunting
-----------------------------
Total Karyawan : 2

Kita bedah satu-satu Kode diatas

__init__ , apa itu   ? __init__ adalah konstruktor . Method yang pertama akan di eksekusi saat kita pertamakali membuat Instance dari Class. Seperti pada bahasa lain kita bisa menambahkan Argumen pada __init__ . Instance dari Class akan di initialiasi di __init__ dan kita bisa memanggilnya dimana saja di dalam class itu. 

Self, apa itu ? self adalah Class Instance yang digunakan untuk mengakses Instance 

  self.kid = kid
self.nama = nama
self.jabatan = jabatan

bisa juga untuk memanggil Method dalam method lain 

def method1(self,arg):
print "Argumen %s " % arg
def method2():
self.method1("Argumen")

DIbahasa pemrograman lain juga ada self atau this.  parameter self  dituliskan di urutan pertama dalam Argument method

def method(self, arg1,arg2,arg3....)


Cara memangiil Class umumnya sama saja seperti Bahasa lain 

obj = Karyawan("K001","Ganjar","Teknisi")
obj.infoKaryawan()


CLass variable ? perhatikan variable jml_karyawan   . kita bisa membuat dan mendefinisikan sebuah variable dalam Class . dan bisa di akses dimana saja baik didalam Class itu maupun di luar Class dengan cara Syntax 

ClassName.variable_name
#tampilkan total Karyawan
print "-----------------------------"
print "Total Karyawan : %d " % Karyawan.jml_karyawan


Perlu diingat bahwa Python tidak seperti OOP layaknya bahasa Lain. karenanya kita tidak mendapati : private, protected dan public . Alasan nya banyak dan jujur saya sulit menerangkannya. yang jelas Pembuat python dan developer nya sudah sepakat bahwa mereka tidak perlu menambahkan fungsionalitas itu. 

Jika anda belajar lebih dalam untuk Tujuan apa, untuk ruang-lingkup seperti , cocok untuk sistem seperti apa Python itu. Mungkin kita akan lebih dalam mengetahui alasannya. 


Sekian pejelasan singkat OOP Python. masih banyak yang belum dijelaskan dari materi OOP di python. Namun tentu akan dibahas pada artikel OOP Python selanjutnya.