Dalam pemrograman, khususnya Pemrograman Berorientasi Objek (Object-Oriented Programming/OOP), program tidak hanya disusun berdasarkan fungsi dan prosedur, tetapi juga berdasarkan objek yang memiliki data dan perilaku. Python mendukung pemrograman berorientasi objek secara penuh. Konsep dasar yang perlu dipahami adalah:
- Class (Kelas)
- Object (Objek)
- Attribute (Atribut)
- Method (Metode)
Keempat konsep tersebut saling berhubungan. Class digunakan sebagai cetak biru (blueprint) untuk membuat object. Object memiliki attribute sebagai data dan method sebagai perilaku atau operasi yang dapat dilakukan oleh object.
Konsep Pemrograman Berorientasi Objek
Object-Oriented Programming (OOP) adalah paradigma pemrograman yang mengorganisasikan program berdasarkan objek. Objek dapat dianggap sebagai representasi dari suatu benda atau entitas yang memiliki Data yang merupakan Attribute dan Perilaku yang merupakan Method. Sebagai contoh, dalam sistem akademik terdapat objek Mahasiswa mempunyai data:
- NIM
- Nama
- Program Studi
Selain itu juga mempunyai perilaku:
- Melakukan Registrasi
- Mengubah Data
- Menampilkan Data
Dapat digambarkan secara sederhana sebagai berikut:

Pengertian Class
Class adalah rancangan atau cetak biru (blueprint) yang digunakan untuk membuat object. Class mendefinisikan data yang dimiliki object dan perilaku yang dapat dilakukan object.
Membuat Class dalam Python
class NamaClass:
# attribute
# method
Contoh:
class Mahasiswa:
pass
pass digunakan ketika class belum memiliki implementasi. Class tersebut sudah valid, tetapi belum memiliki attribute maupun method.
Pengertian Object
Object adalah hasil pembuatan (instance) dari sebuah class. Jika class adalah cetak biru rumah, maka object adalah rumah yang dibuat berdasarkan cetak biru tersebut. Contoh:
class Mahasiswa:
pass
mhs1 = Mahasiswa()
mhs2 = Mahasiswa()
Pada program tersebut mhs1 dan mhs2 merupakan object dari class Mahasiswa.
Attribute
Attribute adalah data atau karakteristik yang dimiliki oleh sebuah object. Misalnya object mahasiswa mempunyai NIM, Nama, Prodi, Semester. Maka Attribute dapat diibaratkan sebagai variabel yang menjadi bagian dari object. Attribute dapat dibuat menggunakan object. Contoh:
class Mahasiswa:
pass
mhs1 = Mahasiswa()
mhs1.nim = "2301001"
mhs1.nama = "Andi"
mhs1.prodi = "Teknik Informatika"
Kemudian attribute dapat ditampilkan:
print(mhs1.nim)
print(mhs1.nama)
print(mhs1.prodi)
Salah satu keuntungan OOP adalah setiap object dapat memiliki nilai attribute yang berbeda, contoh:
class Mahasiswa:
pass
mhs1 = Mahasiswa()
mhs1.nim = "2301001"
mhs1.nama = "Andi"
mhs2 = Mahasiswa()
mhs2.nim = "2301002"
mhs2.nama = "Budi"
print(mhs1.nama)
print(mhs2.nama)
Walaupun berasal dari class yang sama, masing-masing object mempunyai data sendiri.
Constructor __init__()
Dalam Python, method khusus __init__() biasanya digunakan untuk menginisialisasi attribute ketika object dibuat, contoh:
class Mahasiswa:
def __init__(self, nim, nama):
self.nim = nim
self.nama = nama
Object dapat dibuat sebagai berikut:
mhs1 = Mahasiswa("2301001", "Andi")
mhs2 = Mahasiswa("2301002", "Budi")
print(mhs1.nim)
print(mhs1.nama)
print(mhs2.nim)
print(mhs2.nama)
Memahami self
self merupakan referensi yang digunakan untuk mengakses object yang sedang digunakan, contoh:
class Mahasiswa:
def __init__(self, nim, nama):
self.nim = nim
self.nama = nama
Bagian self.nim berarti attribute nim milik object tersebut. Sedangkan nim di sebelah kanan tanda sama dengan adalah parameter yang diterima oleh method. Sehingga self.nim = nim dapat dipahami sebagai “Simpan nilai parameter nim ke attribute nim milik object”
Method
Method adalah fungsi yang berada di dalam sebuah class. Method digunakan untuk mendefinisikan perilaku atau operasi yang dapat dilakukan oleh object, contoh:
class Mahasiswa:
def tampilkan_data(self):
print("Data Mahasiswa")
Object mhs1 = Mahasiswa() Menjalankan method mhs1.tampilkan_data() akan menghasilkan output:
Data Mahasiswa
Method dapat menggunakan attribute yang dimiliki object, contoh:
class Mahasiswa:
def __init__(self, nim, nama):
self.nim = nim
self.nama = nama
def tampilkan_data(self):
print("NIM :", self.nim)
print("Nama :", self.nama)
mhs1 = Mahasiswa("2301001", "Andi")
mhs1.tampilkan_data()
Method dengan Parameter
Method dapat menerima parameter seperti fungsi biasa, contoh:
class Mahasiswa:
def __init__(self, nama):
self.nama = nama
def sapa(self, waktu):
print("Selamat", waktu, self.nama)
mhs1 = Mahasiswa("Andi")
mhs1.sapa("pagi")
Maka outputnya sebagai berikut:
Selamat pagi Andi
Method yang Menghasilkan Nilai
Method dapat menggunakan return, contoh:
class Persegi:
def __init__(self, sisi):
self.sisi = sisi
def luas(self):
return self.sisi * self.sisi
p = Persegi(10)
hasil = p.luas()
print("Luas =", hasil)
Akan menghasilkan output:
Luas = 100
Method untuk Mengubah Attribute
Method juga dapat digunakan untuk mengubah nilai attribute, contoh:
class Mahasiswa:
def __init__(self, nama):
self.nama = nama
def ubah_nama(self, nama_baru):
self.nama = nama_baru
mhs1 = Mahasiswa("Andi")
print(mhs1.nama)
mhs1.ubah_nama("Budi")
print(mhs1.nama)
Class dengan Input dari Pengguna
Class juga dapat digunakan bersama input(), contoh:
class Mahasiswa:
def __init__(self, nim, nama):
self.nim = nim
self.nama = nama
def tampilkan(self):
print("\nData Mahasiswa")
print("NIM :", self.nim)
print("Nama :", self.nama)
nim = input("Masukkan NIM : ")
nama = input("Masukkan Nama : ")
mhs = Mahasiswa(nim, nama)
mhs.tampilkan()
Kesimpulan
Konsep Class, Object, Attribute, dan Method merupakan dasar penting dalam pemrograman berorientasi objek menggunakan Python. Dimulai dengan Class membuat Object kemudian Object memiliki Attribut yang merupakan data dan memiliki Method yang merupakan perilaku.
Slide materi dapat dilihat di sini.
