Cara menggunakan PARTIOTON pada Python

Magic method dalam python adalah method-method spesial yang namanya diawali dan diakhiri dengan dobel underscore. Magic method sendiri tidak dirancang untuk kita panggil secara langsung, akan tetapi ia akan dipanggil oleh sistem secara internal pada saat-saat tertentu seperti misalnya saat membuat sebuah objek atau melakukan operator

class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
2,
class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
3, dan lain sebagainya [1].

Di dalam python, magic method juga dinamakan dengan dunder method. Dimanakan “dunder” karena ia merupakan singkatan dari “double underscore” [2].

Kita sebenarnya telah menggunakan beberapa magic method pada pembahasan dan juga pembahasan operator overloading. Di antara contoh magic method yang telah kita pelajari adalah:

  • Method
    class HaloDunia:
    
      def __init__(self):
        print('Halo dunia')
    
    # buat instan
    a = HaloDunia()
    b = HaloDunia()
    
    4
  • Method
    class HaloDunia:
    
      def __init__(self):
        print('Halo dunia')
    
    # buat instan
    a = HaloDunia()
    b = HaloDunia()
    
    5
  • Method
    class HaloDunia:
    
      def __init__(self):
        print('Halo dunia')
    
    # buat instan
    a = HaloDunia()
    b = HaloDunia()
    
    6
  • Method
    class HaloDunia:
    
      def __init__(self):
        print('Halo dunia')
    
    # buat instan
    a = HaloDunia()
    b = HaloDunia()
    
    7
  • Method
    class HaloDunia:
    
      def __init__(self):
        print('Halo dunia')
    
    # buat instan
    a = HaloDunia()
    b = HaloDunia()
    
    8
  • dan lain sebagainya

Method-method tersebut tidak kita panggil secara eksplisit, karena ia dipanggil otomatis oleh sistem ketika sebuah aksi tertentu dilakukan.

Bedanya Magic Method dan Operator Overloading

Pada pertemuan sebelumnya kita telah membahas panjang lebar tentang teknik operator overloading, ia adalah teknik di mana kita bisa mengatur behaviour suatu kelas atau objek ketika dikenakan sebuah operator.

Apa bedanya dengan magic method?

Magic method adalah method khusus yang memiliki nama diawali serta diakhiri dengan dobel underscore (

class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
9). Method-method tersebut ada banyak sekali dengan berbagai tugas yang beragam.

Nah, di antara magic method tersebut, ada method-method yang kita gunakan untuk melakukan teknik operator overloading seperti method

class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
5,
class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
6, dan lain-lain.

Contoh:

class Angka:
  def __init__(self, angka):
    self.angka = angka

  def __add__(self, objek):
    return self.angka + objek.angka

Ketika kita panggil:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)

Konstruktor Juga Termasuk Magic Method

Sadar atau tidak sadar, ketika kita membuat sebuah konstruktor dalam suatu kelas, maka sejatinya kita telah menggunakan salah satu di antara magic method yang terdapat pada python.

Perhatikan contoh berikut:

class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()

Output:

Halo dunia
Halo dunia

Kita bisa perhatikan pada contoh di atas, bahwa kita tidak pernah memanggil fungsi

class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
4 sama sekali. Akan tetapi sistem tetap memanggilnya secara otomatis ketika ada pembuatan instan dari kelas
Halo dunia
Halo dunia
3.

Method Halo dunia Halo dunia 4

Di antara magic method yang sangat banyak digunakan adalah method:

Halo dunia
Halo dunia
4.

Method

Halo dunia
Halo dunia
4 akan dipanggil ketika sebuah instan dari kelas yang bersangkutan dikonversi menjadi string atau ketika dijadikan parameter untuk fungsi
Halo dunia
Halo dunia
7.

Perhatikan contoh berikut:

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)

Apa outputnya?

Outputnya adalah kode yang tidak manusiawi alias tidak jelas seperti berikut:

<__main__.Segitiga object at 0x7f80d82dabe0>
<__main__.Segitiga object at 0x7f80d82dac10>

Lalu bagaimana misalkan instan dari kelas yang kita buat (dalam hal ini adalah kelas

Halo dunia
Halo dunia
8) bisa menampilkan string tertentu ketika di-
Halo dunia
Halo dunia
7?

Jawabannya adalah: gunakan magic method

Halo dunia
Halo dunia
4.

Perhatikan contoh berikut:

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

  def __str__(self):
    luas = 0.5 * self.alas * self.tinggi
    return f'segitiga (alas={self.alas} tinggi={self.tinggi} luas={luas})'

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)

Output:

segitiga (alas=10 tinggi=10 luas=50.0)
segitiga (alas=20 tinggi=10 luas=100.0)

Method class Segitiga: def __init__(self, a, t): self.alas = a self.tinggi = t # buat instan a = Segitiga(10, 10) b = Segitiga(20, 10) print(a) print(b) 1

Hampir sama dengan method

Halo dunia
Halo dunia
4, method
class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
1 juga akan mengembalikan sebuah string. Bedanya, method
class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
1 hanya akan dipanggil ketika kita memanggil default function
class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
5 pada python.

Perhatikan contoh berikut:

class Contoh:

  def __str__(self):
    return 'bentuk informal'

  def __repr__(self):
    return 'bentuk formal'

x = Contoh()
print(x)
print(str(x))
print(repr(x)) # kalau tidak diprint tidak ada output

Output:

bentuk informal
bentuk informal
bentuk formal

Method class Segitiga: def __init__(self, a, t): self.alas = a self.tinggi = t # buat instan a = Segitiga(10, 10) b = Segitiga(20, 10) print(a) print(b) 6

Di antara magic method yang cukup umum digunakan adalah: method

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
6.

Ia adalah sebuah method yang akan dipanggil ketika sebuah objek atau instan dijadikan parameter untuk fungsi bawaan python

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
8.

Perhatikan contoh berikut:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
0

Jika kita jalankan, kita justru akan mendapatkan error:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
1

Itu kenapa? Karena objek dari tipe

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
9 tidak memiliki fungsi
class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
8 alias ia tidak mengimplementasikan magic method yang bernama
class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
6.

Beda ceritanya jika kita ubah kodenya menjadi berikut:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
2

Output:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
3

Method <__main__.Segitiga object at 0x7f80d82dabe0> <__main__.Segitiga object at 0x7f80d82dac10> 2

Masih satu paket dengan fungsi

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
6. Fungsi
<__main__.Segitiga object at 0x7f80d82dabe0>
<__main__.Segitiga object at 0x7f80d82dac10>
2 adalah sebuah magic method yang akan dipanggil ketika sebuah instan dari kelas yang kita buat dipanggil menggunakan indeks yang diapit dengan kurung siku
<__main__.Segitiga object at 0x7f80d82dabe0>
<__main__.Segitiga object at 0x7f80d82dac10>
5.

Mari kita lanjutkan kode program sebelumnya untuk kelas

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
9, kemudian kita akses instan dari kelas tersebut dengan kurung siku seperti berikut:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
4

Kita akan mendapatkan error:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
5

Nah, agar tidak error, kita bisa mengimplementasikan fungsi

<__main__.Segitiga object at 0x7f80d82dabe0>
<__main__.Segitiga object at 0x7f80d82dac10>
2:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
6

Jika kita jalankan, kita akan mendapatkan output:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
7

Bahkan, kita juga bisa memasukkan variabel

<__main__.Segitiga object at 0x7f80d82dabe0>
<__main__.Segitiga object at 0x7f80d82dac10>
8 ke dalam perulangan for:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
8

Output:

x1 = Angka(10)
x2 = Angka(20)

print(x1 + x2)
9

Method-Method Yang Lain

Selain method-method yang sudah kita coba di atas, masih ada banyak sekali magic method lain yang terdapat pada python.

Untuk mengetahui apa saja magic method yang diimplementasikan pada suatu kelas (atau tipe data), kita bisa memanggil fungsi

<__main__.Segitiga object at 0x7f80d82dabe0>
<__main__.Segitiga object at 0x7f80d82dac10>
9.

Perhatikan contoh berikut:

class HaloDunia:

  def __init__(self):
    print('Halo dunia')

# buat instan
a = HaloDunia()
b = HaloDunia()
0

Pada contoh di atas kita telah menampilkan fungsi magic apa saja yang telah diimplementasikan dalam tipe data

class Segitiga:

  def __init__(self, a, t):
    self.alas = a
    self.tinggi = t

  def __str__(self):
    luas = 0.5 * self.alas * self.tinggi
    return f'segitiga (alas={self.alas} tinggi={self.tinggi} luas={luas})'

# buat instan
a = Segitiga(10, 10)
b = Segitiga(20, 10)
print(a)
print(b)
0.

Split Python untuk apa?

Dapat disimpulkan bahwa metode split Python merupakan cara untuk membagi data string menjadi daftar string setelah memecah string yang diberikan oleh pemisah yang sudah ditentukan.

Apakah yang dimaksud dengan string pada bahasa pemrograman Python?

Mengenal Apa itu String String dalam bahasa pemrograman Python disebut sebagai kumpulan karakter yang dikelilingi oleh tanda kutip tunggal, tanda kutip ganda bahkan tanda kutip tiga.