Cara menggunakan python call instance method

Variabel di dalam OOP python jika ditinjau dari jumlah copy-nya, maka ia terbagi menjadi 2: yang pertama adalah static variable, dan yang kedua adalah instance variable.

Keduanya sama-sama variabel seperti umumnya. Bedanya, variabel statis hanya memiliki satu copy saja di dalam memory selama aplikasi berjalan, sedangkan instance variable bisa memiliki banyak copy sesuai dari banyaknya instan.

Instance Variable

Dinamakan instance variable karena variabel tersebut adalah milik dari tiap instance/objek dari suatu kelas. Artinya, jika sebuah kelas memiliki instance variable dengan nama a, maka setiap instance dari kelas tersebut akan memiliki variabel a sendiri-sendiri.

Di dalam python, setiap variabel yang didefinisikan di dalam fungsi pada sebuah kelas (lewat variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 0), maka ia dikatakan instance variable.

Perhatikan contoh berikut:

class Mahasiswa: def __init__(self, nama): self.nama = nama

Pada contoh di atas, kelas budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 1 memiliki atribut budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 yang dilekatkan ke dalam objek budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 0. Itu artinya: setiap instance/objek dari kelas budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 1 akan memiliki variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 dengan nilainya masing-masing.

Sekarang, buat dua instance dari kelas budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 1:

budi = Mahasiswa('Budi') andi = Mahasiswa('Andi')

Pada kode program di atas: instance dengan nama budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 7 dan budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 8 masing-masing memiliki atribut/variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 dengan nilai yang berbeda.

Pertanyaannya adalah: ada berapa copy dari variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 selama program dijalankan?

Jawabannya: ada 2 copy. Karena variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 adalah instance variable dan jumlah copy-nya sama dengan jumlah instance dari kelas yang bersangkutan.

Mari kita tampilkan masing-masing nilai dari variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2:

print(budi.nama) print(andi.nama)

Output:

Budi Andi

Static Variable atau Class Variable

Seperti yang telah disinggung di atas bahwasanya static variable adalah variabel statis yang jumlah copy-nya hanya ada satu saja selama aplikasi dijalankan.

Misal kita memiliki sebuah kelas, dan kelas tersebut memiliki seratus instance, tetap saja static variable dari kelas tersebut hanya ada satu saja di memori. Oleh karena itu, static variable juga sering dikenal dengan istilah class variable.

Perhatikan contoh berikut:

class Mahasiswa: # static atau class variable jenjang = 'S1' def __init__(self, nama): # instance variable self.nama = nama

Pada kode di atas, terdapat dua buah variabel. Yang pertama adalah variabel print(budi.nama) print(andi.nama) 3 yang merupakan variabel static –di mana ia disandarkan langsung kepada kelas budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 1–. Dan yang kedua adalah variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 yang mana ia disandarkan kepada objek budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 0 alias kepada instance yang bersangkutan.

Kita bisa mengakses langsung variabel print(budi.nama) print(andi.nama) 3 tanpa harus membuat objek, akan tetapi kita tidak bisa mengakses variabel budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 2 tanpa membuat sebuah objek.

Perhatikan contoh berikut:

>>> Mahasiswa.jenjang 'S1' >>> Mahasiswa.nama Traceback (most recent call last): File "<stdin>", line 1, in <module> AttributeError: type object 'Mahasiswa' has no attribute 'nama' >>>

Variabel statis juga bisa kita akses melalui instance dari suatu kelas:

>>> budi = Mahasiswa('Budi') >>> budi.jenjang 'S1' >>>

Kalau kita ingin mengubah isi dari variabel statis, kita harus mengubahnya lewat nama kelas tersebut secara langsung dan bukan melalui objek dari kelas yang bersangkutan.

Perhatikan contoh berikut:

>>> budi = Mahasiswa('Budi') >>> budi.jenjang 'S1' >>> andi = Mahasiswa('Andi') >>> andi.jenjang 'S1' >>> Mahasiswa.jenjang = 'S3' >>> andi.jenjang 'S3' >>> budi.jenjang 'S3'

Kesimpulan

Dari pertemuan kali ini bisa kita simpulkan bahwa variabel dalam konteks OOP pada python, jika ditinjau dari jumlah copy-nya terbagi menjadi dua: static variable dan instance’s variable.

Static variable hanya memiliki satu copy saja sedangkan instance variable memiliki jumlah copy yang sama sesuai dengan jumlah instan yang ada.

Variable static didefinisikan secara langsung di dalam blok kode print(budi.nama) print(andi.nama) 9, berbeda dengan instance variable yang mana ia disandarkan ke dalam objek budi = Mahasiswa('Budi') andi = Mahasiswa('Andi') 0 pada method sebuah print(budi.nama) print(andi.nama) 9.

Kode Program Lengkap

Untuk kode program lengkap pada pertemuan kali ini, kalian bisa mendapatkannya di sini.

Pertemuan Selanjutnya

Pada pertemuan selanjutnya insyaallah kita akan membahas tentang static method pada python.

Ia hampir sama dengan static variable, yaitu sebuah fungsi/method yang bersifat statis dan bisa dipanggil tanpa harus membuat sebuah instan.

Apa itu instance di Python?

Variabel kelas didefinisikan di dalam kelas, tapi di luar metode-metode yang ada dalam kelas tersebut. Instance – Instance adalah istilah lain dari objek suatu kelas. Sebuah objek yang dibuat dari prototipe kelas Lingkaran misalnya disebut sebagai instance dari kelas tersebut.

Apa itu objek dalam python?

Objek pada python adalah kumpulan dari variabel-variabel (dinamakan atribut) dan kumpulan dari fungsi-fungsi (dinamakan perilaku). Atas definisi itu, maka semua hal di dalam python adalah sebuah Objek. Objek dan Kelas dalam python bermakna sama.

Apa itu atribut pada python?

Atribut adalah data anggota (variabel kelas dan variabel contoh) dan metode, diakses melalui notasi titik. Sebuah variabel yang dibagi oleh semua contoh kelas. Variabel kelas didefinisikan dalam kelas tapi di luar metode kelas manapun.

Apa itu instance dalam OOP?

Instance bisa diartikan sebagai wujud dari class. Class berisi definisi variabel dan fungsi yang menggambarkan sebuah objek.

Postingan terbaru

LIHAT SEMUA