Lewati ke konten utama

Operator dalam Python

Tutorial ini membahas berbagai jenis operator di Python, operator overloading, prioritas, dan asosiativitas.
· 9 mnt Baca

Jelajahi bersama AI

Sama seperti dalam matematika, bahasa pemrograman seperti Python memiliki operator. Anda bisa menganggapnya sebagai fungsi yang sangat sederhana yang menjadi dasar ilmu komputer. Ini adalah operasi paling sederhana tempat sebuah program komputer dapat direduksi. Operator adalah pengetahuan penting bagi siapa pun yang ingin menjadi Data Scientist atau Software Engineer.

Dalam tutorial ini, Anda akan mempelajari tentang

Jika Anda ingin mempelajari lebih lanjut tentang dasar-dasar Bahasa Pemrograman Python, pastikan untuk melihat kursus gratis kami Intro to Python for Data Science.

Operator Aritmetika

Anda mungkin sudah familiar dengan ini karena berasal dari matematika dasar.

Operator aritmetika adalah penjumlahan (+), pengurangan (-), perkalian (*), pembagian (/), pangkat (**), pembagian bulat (//) dan modulus (%). Empat yang pertama cukup sederhana; yaitu penjumlahan, pengurangan, perkalian, dan pembagian, dan Anda kemungkinan sudah mengenalnya.

# Addition
print(5 + 2)

# Subtraction
print(5 - 2)

# Multiplication
print(5 * 2)

# Division
print(5 / 2)
7
3
10
2.5

Tiga lainnya sedikit lebih rumit. Operator pangkat berarti "dipangkatkan". Misalnya, 2 ** 3 berarti 2 dikalikan dengan dirinya sendiri sebanyak 3 kali, jadi 2 ** 3 sama dengan 2 * 2 * 2, yang bernilai 8.

Pembagian bulat sama seperti pembagian biasa, kecuali hasilnya selalu dibulatkan ke bawah. Pada contoh di bawah, 5 dibagi 2 menghasilkan 2,5. Namun karena ini pembagian bulat, 2,5 dibulatkan ke bawah menjadi 2.

Terakhir, modulus adalah sisa setelah pembagian. Pada kasus 5%2, angka 2 hanya muat dua kali di dalam 5, yang berarti sisanya adalah 1.

# Exponent
print(5 ** 2)
# This is the same as 5 * 5

# Floor Division
print(5 // 2)

# Modulus
print(5 % 2)
25
2
1

Di Python, operator penjumlahan juga dapat digunakan untuk menggabungkan string. Ini berarti string akan disusun menjadi satu string, misalnya:

firstName = "Théo"

introduction = "Hi, my name is " + firstName + "."

print(introduction)
Hi, my name is Théo.

Operator Penugasan

Jika Anda memiliki sedikit pengalaman pemrograman, Anda pasti pernah menggunakan operator penugasan sebelumnya. Operator ini menetapkan nilai tertentu ke variabel. Yang paling sering digunakan adalah =. Untuk menggunakannya, cukup ketik nama variabel yang ingin Anda beri nilai baru, lalu =, dan nilai yang ingin ditetapkan. Misalnya, jika Anda ingin menetapkan nilai 100 ke variabel balance, Anda dapat melakukan hal berikut:

balance = 100
print(balance)
100

Jika Anda ingin menambah nilai balance sebesar 10, Anda dapat menggunakan balance += 10. Ini setara dengan balance = balance + 10, tetapi jauh lebih singkat.

balance += 10
print(balance)
110

Hal yang sama berlaku untuk -=, balance -= 10 sama dengan balance = balance - 10:

print(balance)
balance -= 10
print(balance)
110
100

Operator penugasan lainnya bekerja dengan cara yang persis sama. Yaitu:

  • *=
  • /=
  • **=
  • //=
  • %=

Operator Perbandingan

Anda dapat menggunakan operator perbandingan untuk—seperti namanya—membandingkan nilai variabel. Operator ini selalu mengembalikan nilai boolean, yaitu True atau False. Ada enam macam:

  • Sama dengan: ==
  • Tidak sama dengan: !=
  • Lebih besar dari: >
  • Lebih kecil dari: <
  • Lebih besar atau sama dengan: >=
  • Lebih kecil atau sama dengan: <=

Berikut beberapa contoh perbandingan:

a = 3
b = 5

print(a == b) # Equal
print(a != b) # Not equal
print(a > b) # Greater than
print(a < b) # Less than
print(a >= b) # Greater than or equal to
print(a <= b) # Less than or equal to
False
True
False
True
False
True

== dan != juga dapat digunakan untuk membandingkan string alih-alih angka. Operator lainnya tidak kompatibel dengan string, karena string tidak benar-benar bisa lebih besar dari string lainnya.

print("Hello" == "World")
print("Python" != "R")
False
True

Operator Logika

Anda mungkin sudah familiar dengan ini! Dalam logika, operator ini disebut konnektor logis. Operator ini juga banyak digunakan dalam bahasa manusia. Yaitu: and, or, dan not.

and hanya akan mengembalikan True jika kedua operan (dua objek boolean yang Anda bandingkan) bernilai True. Contohnya:

print(True and True)
print(True and False)
print(False and False)
True
False
False

Untuk memahami perilaku operator logika ini, Anda dapat menggunakan tabel kebenaran:

aba and b
TrueTrueTrue
TrueFalseFalse
FalseTrueFalse
FalseFalseFalse

or bernilai True kapan pun salah satu (satu atau lebih) operan bernilai True.

print(True and True)
print(True and False)
True
False
aba or b
TrueTrueTrue
TrueFalseTrue
FalseTrueTrue
FalseFalseFalse

Perhatikan bahwa operator ini juga berfungsi dengan lebih dari dua operan, misalnya:

print(True and True and True and True)
print(True and True and True and False)
print(False or False or False or False)
print(False or False or False or True)
True
False
False
True

not akan mengembalikan kebalikan dari operannya, jadi True jika diberikan False dan sebaliknya.

print(not True)
False
anot a
TrueFalse
FalseTrue

Operator overloading

Ingat bahwa sebelumnya Anda melihat bagaimana + dapat digunakan untuk menjumlahkan angka, tetapi juga dapat digunakan untuk menggabungkan string. Jadi + bekerja berbeda tergantung pada jenis objek yang Anda gunakan. Namun ini tidak selalu terjadi. Terkadang, operator yang Anda gunakan tidak mendukung jenis objek yang ingin Anda gunakan.

Berikut contoh. Misalkan Anda memiliki dua objek Dog, ozzy dan filou. Keduanya berasal dari kelas Dog di bawah ini. Anda dapat menganggap kelas sebagai cetak biru tentang bagaimana objek harus terlihat dan berperilaku. Dalam kasus ini, objek Dog memiliki nama, usia, dan tinggi. Setelah kelas didefinisikan, Anda dapat membuat objek. Salah satunya adalah Ozzy, berusia 3 tahun dan tinggi 30 sentimeter. Yang lainnya adalah Filou, berusia 5 tahun dan tinggi 65 sentimeter.

Contoh ini menggunakan konsep Pemrograman Berorientasi Objek. Jika Anda ingin mempelajari lebih lanjut, pastikan membaca tutorial kami tentang Object-Oriented Programming in Python

Misalkan Anda ingin membandingkan kedua anjing dengan operator lebih besar dari: >. Ini tidak akan berhasil. Anda akan mendapat galat yang mengatakan '>' not supported between instances of 'Dog' and 'Dog'. Artinya, > tidak tahu bagaimana membandingkan objek dari kelas Dog.

class Dog:

    def __init__(self, name, age, height):  
        self.name = name
        self.age = age
        self.height = height

ozzy = Dog("Ozzy", 3, 30)
filou = Dog("Filou", 5, 65)

print(filou > ozzy)
---------------------------------------------------------------------------

TypeError                                 Traceback (most recent call last)

<ipython-input-96-428069ab24cc> in <module>()
      9 filou = Dog("Filou", 5, 65)
     10
---> 11 print(filou > ozzy)


TypeError: '>' not supported between instances of 'Dog' and 'Dog'

Untungnya, dengan operator overloading, Anda dapat menentukan perilaku operator saat dipanggil pada objek Dog. Dalam kasus ini, metode bernama __gt__, yang berarti 'greater than', harus didefinisikan, menerima dua argumen. Karena kita ingin membandingkan anjing berdasarkan tinggi badan, metode tersebut mengembalikan self.height > other.height.

class Dog:

    def __init__(self, name, age, height):  
        self.name = name
        self.age = age
        self.height = height

    def __gt__(self,other):
        return self.height > other.height

ozzy = Dog("Ozzy", 3, 30)
filou = Dog("Filou", 5, 65)

print(filou > ozzy)
print(ozzy > filou)
True
False

Prioritas

Ketika Anda menggabungkan banyak operator, segalanya bisa membingungkan. Lihat contoh di bawah:

a = 2
b = 3
c = 9

a ** b > 5 and c - a // b >= 9 or b ** 2 == c
True

Bagaimana Anda tahu mana yang akan dijalankan terlebih dahulu? Bagaimana seharusnya Anda membaca satu baris kode dengan banyak simbol seperti ini? Apakah dieksekusi dari kiri ke kanan atau ada urutan tertentu?

Di sinilah prioritas (precedence) berperan. Operator Python dieksekusi dalam urutan yang sangat spesifik, dan beberapa memiliki prioritas dibandingkan yang lain.

Pada tabel berikut, Anda dapat melihat prioritas operator, diurutkan dari atas ke bawah. Aturan ini sama seperti dalam matematika, di mana perhitungan tertentu dalam sebuah rumus harus dilakukan sebelum yang lain.

PrioritasOperatorDeskripsi
1**pangkat
2*, /, %, //perkalian, pembagian, modulo, pembagian bulat
3+, -tambah, kurang
4>, <, >=, <=perbandingan
5==, !=kesetaraan
6= %= /= //= -= += *= **=penugasan
7and, or, notlogika

Asosiativitas

Anda telah melihat bahwa prioritas itu penting! Namun bagaimana dengan operator yang berada pada tingkat prioritas yang sama, seperti perkalian dan pembagian? Apakah dieksekusi pada saat yang sama? Tidak. *, \, % dan \\ dieksekusi dari kiri ke kanan, sedangkan ** dieksekusi dari kanan ke kiri. Ini disebut asosiativitas.

Lihat contoh berikut. Dalam kasus ini, operator akan dieksekusi dari kiri ke kanan, dan keluarannya adalah 3.

print(5 * 2 // 3)
3

Namun, dengan menambahkan tanda kurung, Anda dapat mengubah urutan eksekusi operator. Itulah asosiativitas, yang bekerja sama seperti dalam matematika. Apa pun yang ada di dalam tanda kurung akan dihitung terlebih dahulu. Dalam kasus ini, pembagian bulat akan dilakukan terlebih dahulu, diikuti dengan perkalian.

print(5 * (2 // 3))

Kesimpulan

Sekarang Anda tahu apa itu operator, bagaimana cara menggunakannya, dan bagaimana cara kerjanya. Anda juga mempelajari tentang overloading, prioritas, dan asosiativitas. Anda sedang berada di jalur yang tepat untuk menjadi ahli Python! Jika Anda ingin belajar lebih banyak lagi, jangan ragu untuk melihat kursus kami Intermediate Python for Data Science.

Topik

Terkait

blogs

Tutorial Korelasi di R

blogs

Spaghetti Plot dan Jalur Badai

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026