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.