Advertisement
  1. Code
  2. Python

Penyegaran Halus Class dan Object Pada Python

Scroll to top
Read Time: 4 min
This post is part of a series called A Smooth Refresher To Python.
A Smooth Refresher on Python's Functions
A Smooth Refresher on Python's Modules

() translation by (you can also view the original English article)

Python hadir dengan banyak jenis data bawaan, seperti dict, list, set, dll. Pernahkah kamu bertanya-tanya jika kamu dapat membuat sendiri jenis data? Seperti person, car, university, dll? Apakah membuat jenis data seperti itu mungkin? Ya, itu tentu saja mungkin dengan Python, dan ini dimana class dan object tampil.

Dalam tutorial ini, saya akan menjelaskan apa yang dimaksud dengan class dan object, dan bagaimana kita dapat bekerja dengan itu dalam Python.

Class dan Object

Seperti yang dituliskan di atas, class dan object adalah tentang membuat sendiri jenis datamu (yaitu jenis data yang ditentukan pengguna). Dengan demikian class adalah jenis data yang ditentukan pengguna, dan membuat contoh class (instantiation) berarti membuat object dari data itu. Di akhir hari, class dan object dinyatakan sebagai building block utama Python, yang merupakan bahasa pemrograman berorientasi object.

Seperti apa membuat class dalam Python? Struktur class paling sederhana dalam Python tampak sebagai berikut:

1
class ClassName:
2
    statements

Seperti yang dapat kamu lihat, menentukan sebuah class dimulai dengan kata kunci class, dan className adalah nama class (identifier). Perlu diingat bahwa nama class mengikuti aturan yang sama dengan nama variable dalam Python, yaitu nama hanya dapat dimulai dengan sebuah huruf atau garis bawah _, dan dapat hanya berisi huruf, angka. atau garis bawah. Juga, berdasarkan pada PEP 8 (Panduan Style untuk Code Python), kita dapat melihat bahwa direkomendasikan untuk menamai class dalam gaya CapWords (CamelCase).

Sekarang mari mendefinisikan class Person, yang pada saat itu tidak akan berisi apapun, kecuali pernyataan pass. Seperti disebutkan dalam dokumetasi Python:

Pernyataan pass tidak melakukan apapun. Itu dapat digunakan ketika sebuah pernyataan diperlukan secara sintaks namun program tidak memerlukan tindakan
1
class Person:
2
    pass

Untuk membuat sebuah contoh (object) class ini, kita dapat melakukan sebagai berikut:

abder = Person()

Ini berarti bahwakkita telah membuat sebuah object baru abder pada jenis Person. Perhatikan bahwa membuat sebuah object cukup hanya memiliki nama class diikuti oleh tanda kutip.

Kita dapat mengidentifikasi yang mana jenis abder, dan dimana itu berada dalam memory dengan mengetikkan: print abder. Dalam kasus ini, kamu akan mendapatkan seperti di bawah ini:

<__main__.Person instance at 0x109a1cb48>

Attributes

Attributes seperti properties yang ingin kita tambahkan ke dalam class (type). Sebagai contoh, untuk class Person, mari tambahkan dua attributes: name dan school, seperti di bawah ini:

1
class Person:
2
    name = ''
3
    school = ''

Sekarang, kita dapat membuat sebuah object baru pada jenis Person (contoh Person) dengan lebih banyak detail, karena itu sekarang memiliki beberapa attributes, sebagai berikut:

1
abder = Person()
2
abder.name = 'Abder'
3
abder.school = 'ABC University'

Methods

Methods sama seperti functions dalam Python, dalam hal mereka ditentukan dengan kata kunci def dan memiliki format yang sama seperti functions. Dalam class kita, mari tentukan sebuah method yang mencetak nama dan sekolah orang. Class akan tampak sebagai berikut:

1
class Person:
2
    name = ''
3
    school = ''
4
    
5
    def print_name(self):
6
        print self.name
7
        
8
    def print_school(self):
9
        print self.school
10
    
11
abder = Person()
12
abder.name = 'Abder'
13
abder.school = 'XY University'
14
abder.print_name()
15
abder.print_school()

Saya menyebutkan di atas bahwa method itu seperti functions. Namun perbedaan utama adalah bahwa method perlu memiliki sebuah argument dengan mudah bernama self, yang mengacu kepada object yang dipanggil (yaitu abder) Perhatikan bahwa memanggil method yang tidak kita inginkan perlu melewatkan self sebagai sebuah argument, dimana Python akan menanganinya untuk kita.

Jika tidak meletakkan self sebagai argument dalam print_name(), berikut bagaimana Python akan mengkomplain:

1
Traceback (most recent call last):
2
  File "test.py", line 14, in <module>
3
    abder.print_name()
4
TypeError: print_name() takes no arguments (1 given)

Kamu tentu saja dapat melewatkan lebih dari satu argument pada method. Mari membuat proses printing name dan school dalam satu method, sebagai berikut:

1
class Person:
2
    name = ''
3
    school = ''
4
    
5
    def print_information(self, name, school):
6
        print self.name
7
        print self.school
8
            
9
abder = Person()
10
abder.name = 'Abder'
11
abder.school = 'XY University'
12
abder.print_information(abder.name, abder.school)

Coba dan jalankan program—apakah kamu mendapatkan output yang sama seperti sebelumnya?

Inisialisasi

Dalam section sebelumnya, kita menginisialisasi name dan school dengan memberikan mereka sebuah nilai kosong ' '. Namun ada cara yang lebih elegan untuk menginisialisasi variabel ke nilai default, dan ini dimana inisialisasi berguna.

Penginisialisasi adalah method spesial dengan nama _ _init__ (method dinyatakan spesial dan akan diperlakukan dalam kasus spesial, dan itulah mengapa ada dua garis bawah pada awal dan akhir).

Mari memodifikasi program sebelumnya untuk menggunakan penginisialisasi. Dalam kasus ini, program akan tampak sebagai berikut:

1
class Person:
2
    def __init__(self, n, s):
3
        self.name = n
4
        self.school = s
5
    
6
    def print_name(self):
7
        print self.name
8
        
9
    def print_school(self):
10
        print self.school
11
    
12
abder = Person('Abder', 'XY University')
13
14
abder.print_name()
15
abder.print_school()

Perhatikan bahwa penginisialisasi di sini perlu memiliki dua argument. Sebagai contoh, jika kita tidak mencantumkan argument n di dalam penginisialisasi, kita akan mendapatkan error di bawah:

1
Traceback (most recent call last):
2
  File "test.py", line 12, in <module>
3
    abder = Person('Abder', 'XY University')
4
TypeError: __init__() takes exactly 2 arguments (3 given)

Jadi garis bawahnya adalah bahwa dengan class kamu akan dapat membuat sendiri jenis datamu, dan dengan object kamu akan dapat membuat contoh jenis data tersebut. Class juga disusun dari attribute (properties) dan method yang merupakan tindakan yang kita lakukan pada attribute tersebut.

Apakah itu jenis data yang selalu ingin kamu buat? Maju dan lakukan itu!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.