
Menyiapkan Text Editor dan IDE untuk Python
Menulis kode Python bisa dilakukan di mana saja, bahkan di Notepad sekalipun.
Class dan object adalah pondasi utama dalam pemrograman berorientasi objek (OOP) di Python. Dengan memahami konsep ini, kamu bisa membuat program yang lebih terstruktur, mudah dikembangkan, dan siap digunakan ulang. Artikel ini akan membahas secara mendalam tentang class dan object, mulai dari konsep dasar, contoh kode, studi kasus, hingga tips best practice agar kamu benar-benar paham dan siap menggunakannya di proyek nyata.
Sebelum masuk ke kode, mari pahami dulu konsep dasarnya.
Bayangkan class seperti blueprint rumah, dan object adalah rumah nyata yang dibangun dari blueprint tersebut. Satu blueprint bisa digunakan untuk membangun banyak rumah dengan warna, ukuran, atau pemilik yang berbeda.
Misal, kamu ingin membuat aplikasi data mahasiswa. Kamu bisa membuat class Mahasiswa
sebagai blueprint, lalu membuat object mhs1
, mhs2
, dst. Setiap object punya nama, NIM, dan perilaku (misal: menyapa, menampilkan data).
class Mahasiswa:
# atribut class
kampus = "Universitas Python"
# method (fungsi)
def __init__(self, nama, nim):
self.nama = nama
self.nim = nim
def sapa(self):
print(f"Halo, nama saya {self.nama}, NIM {self.nim}")
# Membuat object dari class Mahasiswa
mhs1 = Mahasiswa("Budi", "12345")
mhs2 = Mahasiswa("Ani", "67890")
mhs1.sapa()
mhs2.sapa()
print(mhs1.kampus)
Halo, nama saya Budi, NIM 12345
Halo, nama saya Ani, NIM 67890
Universitas Python
class Mahasiswa:
mendefinisikan class bernama Mahasiswa.kampus
adalah atribut class (nilainya sama untuk semua object).__init__
adalah method khusus (constructor) yang dipanggil saat object dibuat.self
adalah referensi ke object itu sendiri (wajib di setiap method).mhs1
dan mhs2
adalah object (instance) dari class Mahasiswa.nama
dan nim
sendiri-sendiri.self.nama
)kampus
)class Mahasiswa:
kampus = "Universitas Python"
def __init__(self, nama, nim):
self.nama = nama
self.nim = nim
self.sks = 0
def sapa(self):
print(f"Halo, saya {self.nama} dari {self.kampus}")
def tambah_sks(self, jumlah):
self.sks += jumlah
print(f"{self.nama} menambah {jumlah} SKS. Total SKS: {self.sks}")
mhs = Mahasiswa("Cindy", "11223")
mhs.sapa()
mhs.tambah_sks(3)
mhs.tambah_sks(2)
Halo, saya Cindy dari Universitas Python
Cindy menambah 3 SKS. Total SKS: 3
Cindy menambah 2 SKS. Total SKS: 5
Misal, kamu ingin membuat aplikasi sederhana untuk mengelola data mahasiswa.
class Mahasiswa:
def __init__(self, nama, nim, jurusan):
self.nama = nama
self.nim = nim
self.jurusan = jurusan
def info(self):
print(f"Nama: {self.nama}, NIM: {self.nim}, Jurusan: {self.jurusan}")
daftar = [
Mahasiswa("Budi", "12345", "Informatika"),
Mahasiswa("Ani", "67890", "Sistem Informasi"),
Mahasiswa("Cindy", "11223", "Teknik Komputer")
]
for m in daftar:
m.info()
Nama: Budi, NIM: 12345, Jurusan: Informatika
Nama: Ani, NIM: 67890, Jurusan: Sistem Informasi
Nama: Cindy, NIM: 11223, Jurusan: Teknik Komputer
Tambahkan validasi agar NIM harus angka.
class Mahasiswa:
def __init__(self, nama, nim, jurusan):
if not nim.isdigit():
raise ValueError("NIM harus berupa angka!")
self.nama = nama
self.nim = nim
self.jurusan = jurusan
try:
m = Mahasiswa("Dodi", "12A34", "Matematika")
except ValueError as e:
print(e)
NIM harus berupa angka!
Class | Object |
---|---|
Blueprint/cetakan | Hasil nyata dari class |
Didefinisikan sekali | Bisa dibuat berkali-kali |
Menyimpan struktur | Menyimpan data nyata |
Contoh: Mahasiswa | Contoh: mhs1, mhs2, mhs3 |
No | Tips | Penjelasan |
---|---|---|
1 | Gunakan huruf kapital di awal nama class | Contoh: Mahasiswa , Mobil |
2 | Gunakan self untuk akses atribut/method |
Wajib di setiap method class |
3 | Pisahkan data (atribut) dan perilaku (method) | Agar kode lebih rapi dan mudah dipahami |
4 | Jangan buat class terlalu besar | Bagi class jika fungsinya sudah terlalu banyak |
5 | Dokumentasikan class dan method | Gunakan docstring untuk penjelasan |
Q: Apa bedanya class dan object?
A: Class adalah blueprint/cetakan, object adalah hasil nyata dari class.
Q: Apakah satu class bisa punya banyak object?
A: Bisa, bahkan ratusan atau ribuan object dari satu class.
Q: Apakah object bisa punya atribut tambahan di luar yang didefinisikan di class?
A: Bisa, tapi sebaiknya hindari agar kode tetap konsisten.
Q: Bagaimana cara menghapus object?
A: Gunakan del nama_object
, atau biarkan Python menghapus otomatis saat tidak dipakai.
Q: Apakah class bisa punya method tanpa parameter self
?
A: Bisa, tapi biasanya untuk static method (dibahas di artikel lain).
Misal, kamu ingin membuat aplikasi perpustakaan sederhana.
class Buku:
def __init__(self, judul, penulis, tahun):
self.judul = judul
self.penulis = penulis
self.tahun = tahun
self.dipinjam = False
def info(self):
status = "Dipinjam" if self.dipinjam else "Tersedia"
print(f"{self.judul} ({self.tahun}) oleh {self.penulis} - {status}")
def pinjam(self):
if not self.dipinjam:
self.dipinjam = True
print(f"Buku '{self.judul}' berhasil dipinjam.")
else:
print(f"Buku '{self.judul}' sedang dipinjam.")
def kembalikan(self):
if self.dipinjam:
self.dipinjam = False
print(f"Buku '{self.judul}' dikembalikan.")
else:
print(f"Buku '{self.judul}' memang belum dipinjam.")
b1 = Buku("Python Dasar", "Maslul", 2022)
b2 = Buku("Belajar OOP", "Ani", 2023)
b1.info()
b1.pinjam()
b1.info()
b1.kembalikan()
b1.info()
Python Dasar (2022) oleh Maslul - Tersedia
Buku 'Python Dasar' berhasil dipinjam.
Python Dasar (2022) oleh Maslul - Dipinjam
Buku 'Python Dasar' dikembalikan.
Python Dasar (2022) oleh Maslul - Tersedia
self
di method class.self
(misal: nama
bukan self.nama
).__init__
, sehingga object tidak punya data.Class dan object adalah pondasi utama OOP di Python. Dengan class, kamu bisa membuat blueprint untuk berbagai object nyata di dunia pemrograman. Dengan object, kamu bisa menyimpan data dan perilaku yang spesifik. Pahami konsep ini dengan baik, karena hampir semua framework dan aplikasi Python modern menggunakan OOP.
Teruslah berlatih membuat class dan object di berbagai kasus nyata, agar semakin mahir dan siap membangun aplikasi Python yang profesional!
Selamat mencoba dan happy coding!
Menulis kode Python bisa dilakukan di mana saja, bahkan di Notepad sekalipun.
Regular Expression (RegEx) adalah salah satu alat paling ampuh dalam pemrograman Python untuk memproses dan memanipulasi teks.
Bekerja dengan tanggal dan waktu (date & time) adalah salah satu kebutuhan paling umum dalam pemrograman Python, baik untuk mencatat waktu transaksi, membuat laporan, atau sekadar menampilkan waktu saat ini.
Module dan package adalah dua konsep penting dalam pemrograman Python yang wajib kamu pahami jika ingin membuat program yang rapi, terstruktur, dan mudah dikembangkan.