Anda di halaman 1dari 5

Pemrograman

Berorientasi Objek
menggunakan Python
Class

A class is a kind of data type, just like a string, integer or list. When we create an
object of that data type, we call it an instance of a class. The data values which we
store inside an object are called attributes, and the functions which are
associated with the object are called methods.

Class Attributes
All the attributes which are defined on a Person instance are instance
attributes – they are added to the instance when the __init__ method is executed.
We can, however, also define attributes which are set on the class. These
attributes will be shared by all instances of that class. In many ways they behave
just like instance attributes, but there are some caveats that you should be aware
of.
We define class attributes in the body of a class, at the same indentation level as
method definitions (one level up from the insides of methods):

1


Class attributes dapat digunakan untuk memberikan nilai default suatu attribute.
Berikut adalah contoh untuk class attribute yang bersifat immutable



Berikut adalah contoh untuk class attribute yang bersifat muttable



Dalam kasus ini agar Eko tidak terpengaruh oleh perbuatan si Joni, maka kita
dapat menginisialisasi muttable attribute sebagai instance attribute, di dalam
__init__. Sehingga setiap instance akan memiliki salinannya masing-masing.

2

Difinisi metode memiliki scope yang sama dengan difinisi class attribute,
sehingga kita bisa menggunakan nama-nama class attribute sebagai variabel di
dalam difinisi metode. Berikut adalah contoh penggunaan nama class attribute
segabai variabel dalam constructor



Jelaskan perbedaan antara attributes name, surname dan profession, dan
nilai-nilai yang dapat dimiliki oleh instances yang berbeda-beda dari class
Hasan berikut.

Class Decorators

Dalam suatu fungsi, decorator adalah pattern untuk memodifikasi perilaku
fungsi yang lain. Ada beberapa built-in decorators yang sering digunakan dalam
class definitions

@classmethod

seperti halnya dalam mendifinisikan class attributes, dapat digunakan bersama
oleh seluruh instances dari suatu class, ini kita sebut class methods.
Implementasinya menggunakan @classmethod decorator untuk mendekorasi
method biasa. Suatu class method masih memiliki parameter pemanggilan objek,
namun secara konvensi nama parameter diganti yang sebelumnya self menjadi
cls. Jika class method dipanggil dari suatu instance, maka parameter ini akan
berisi instance object, namun jika dipanggil dari suatu class, maka akan berisi
class object.

@staticmethod

metode static tidak perlu memiliki pemanggil objek yang dilewatkan sebagai
parameter pertama. Kita dapat memanggilnya dari suatu instance atau class
object, namun biasanya dipanggil dari class objects, seperti class methods.

@property

kadang kita perlu membuat suatu method untuk menciptakan properti objek
secara dinamis, menghitung dari properti-properti objek lainnya. Kadang kita
juga secara sederhana menggunakan suatu method untuk mengakses attribute
tungal dan mengembalikannya, atau bisa juga getter dan setter methods.

Kita dapat menggunakan @property decorator untuk mendekorasi suatu metode
yang dapat diakses seperti mengakses attribute.

Buatlah class bernama Numbers, yang memiliki attribute tunggal bernama
MULTIPLIER dengan nilai default 3.5, dan suatu constructor yang
mengambil parameter x dan y (berupa bilangan) .
• Tulis metode bernama add yang menghasillkan sum (penjumlahan)
dari attribute x dan y
• Tulis class method bernama multiply, yang mengambil parameter
bilangan tunggal a dan menghasilkan product (perkalian) dari a dan
MULTIPLIER.
• Tulis static method bernama substract, yang mengambil parameter
dua bilangan, a dan c, dan menghasilkan b – c.
• Tulis metode bernama value yang menghasilkan suatu tuple berisi
nilai x dan y. Buatlah metode ini sebagai property.

Anda mungkin juga menyukai