Metode Ajaib (__str__, __repr__, dll.)
Pelajari metode khusus Python untuk menyesuaikan perilaku objek.
Metode Ajaib (__str__, __repr__, dll.) adalah pelajaran Python Academy gratis di CoddyKit. Ini adalah pelajaran 6 dari 6. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Python Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Python Academy mencakup 6 pelajaran total.
Pengenalan Metode Khusus
Pengenalan Metode Khusus
Metode khusus, yang juga dikenal sebagai metode garis bawah ganda (singkatan dari 'garis bawah ganda'), adalah metode khusus dalam Python yang memungkinkan Anda menentukan perilaku objek dalam situasi tertentu.
Dalam pelajaran ini, Anda akan mempelajari cara menggunakan metode khusus yang umum seperti __str__, __repr__, dan metode lainnya.

Apa Itu Metode Khusus?
Apa Itu Metode Khusus?
Metode khusus adalah metode bawaan dalam Python yang dipanggil secara otomatis saat operasi tertentu dilakukan pada objek. Metode ini dikenali dari dua garis bawahnya, seperti __init__ atau __str__.
Metode __init__
Metode __init__
Metode __init__ adalah konstruktor yang menginisialisasi objek baru. Metode ini dipanggil secara otomatis saat objek dibuat:
# Using the __init__ method to initialize attributes
class Person:
def __init__(self, name, age):
self.name = name # Initialize the name attribute
self.age = age # Initialize the age attribute
# Creating an instance of Person
person = Person("Alice", 30)
print(person.name, person.age) # Outputs: Alice 30Metode __str__
Metode __str__
Metode __str__ menentukan representasi teks suatu objek saat print() dipanggil:
# Defining the __str__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __str__(self):
return f"Name: {self.name}, Age: {self.age}" # String representation
person = Person("Alice", 30)
print(person) # Outputs: Name: Alice, Age: 30Metode __repr__
Metode __repr__
Metode __repr__ menyediakan representasi teks resmi suatu objek, yang sering digunakan untuk penelusuran kesalahan:
# Defining the __repr__ method
class Person:
def __init__(self, name, age):
self.name = name
self.age = age
def __repr__(self):
return f"Person('{self.name}', {self.age})" # Debug-friendly representation
person = Person("Alice", 30)
print(repr(person)) # Outputs: Person('Alice', 30)Membebani Operator dengan Metode Khusus
Membebani Operator dengan Metode Khusus
Anda dapat menggunakan metode khusus untuk menyesuaikan perilaku operator seperti + atau ==:
# Overloading the + operator with __add__
class Point:
def __init__(self, x, y):
self.x = x
self.y = y
def __add__(self, other):
return Point(self.x + other.x, self.y + other.y) # Adding two points
def __str__(self):
return f"({self.x}, {self.y})"
point1 = Point(1, 2)
point2 = Point(3, 4)
result = point1 + point2 # Calls __add__
print(result) # Outputs: (4, 6)Metode Khusus yang Umum Digunakan
Metode Khusus yang Umum Digunakan
Berikut beberapa metode khusus yang umum digunakan:
__len__: Menentukan perilaku fungsilen().__getitem__: Memungkinkan pengindeksan seperti pada list atau dictionary.__eq__: Menyesuaikan perbandingan kesamaan menggunakan==.
Menggunakan __len__ dan __getitem__
Menggunakan __len__ dan __getitem__
Anda dapat menggunakan __len__ untuk menentukan panjang objek khusus dan __getitem__ agar objek tersebut dapat diindeks:
# Using __len__ and __getitem__ in a custom class
class CustomList:
def __init__(self, items):
self.items = items
def __len__(self):
return len(self.items) # Defines the behavior of len()
def __getitem__(self, index):
return self.items[index] # Enables indexing
custom_list = CustomList([1, 2, 3])
print(len(custom_list)) # Outputs: 3
print(custom_list[1]) # Outputs: 2Kesalahan Umum dalam Metode Khusus
Kesalahan Umum dalam Metode Khusus
Berikut beberapa kesalahan yang harus dihindari:
- Mendefinisikan metode khusus tanpa menyesuaikannya dengan perilaku yang dimaksud.
- Membebani operator jika tidak diperlukan.
- Lupa mengimplementasikan metode khusus yang diperlukan dalam tipe data khusus.
Apa yang Telah Kita Pelajari?
Apa yang Telah Kita Pelajari?
Dalam pelajaran ini, Anda telah mempelajari:
- Pengertian metode khusus dan alasan metode tersebut berguna.
- Cara menggunakan metode khusus yang umum seperti
__init__,__str__, dan__repr__. - Cara membebani operator menggunakan metode khusus.
Kerja bagus! Mari lanjut ke topik berikutnya.

Pertanyaan yang Sering Diajukan
Apakah pelajaran “Metode Ajaib (__str__, __repr__, dll.)” gratis?
Ya — teks lengkap “Metode Ajaib (__str__, __repr__, dll.)” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Python Academy, upgrade ke CoddyKit PRO. Kursus Python Academy mencakup 6 pelajaran total.
Apa yang akan aku pelajari di “Metode Ajaib (__str__, __repr__, dll.)”?
Pelajari metode khusus Python untuk menyesuaikan perilaku objek. Kamu berlatih Python Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Python Academy?
Tidak diperlukan pengalaman sebelumnya. Python Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 6 dari 6.
Berapa lama pelajaran “Metode Ajaib (__str__, __repr__, dll.)” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Python Academy ini?
Ya. Setiap pelajaran Python Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Kelas dan Objek
- Atribut dan Metode
- Pewarisan
- Polimorfisme
- Enkapsulasi dan Abstraksi
- Metode Ajaib (__str__, __repr__, dll.)