Operator Precedensi Python

Halo, para programmer Python yang aspiratif! Hari ini, kita akan menyelam ke dalam topik yang mungkin terlihat agak menakutkan di awal, tetapi saya berjanji Anda akan menemukan hal ini menarik sekali kita membongkarannya. Kita akan membicarakan tentang Operator Precedensi Python. Pernahkah Anda membayangkan hal ini sebagai "urutan pemberian makan" dari operasi di Python? Mari kita mulai perjalanan yang menarik ini bersama-sama!

Python - Operator Precedence

Apa Itu Operator Precedence?

Sebelum kita melompat ke rincian khusus Python, mari kita mengerti apa arti operator precedence secara umum. Bayangkan Anda berada di dapur yang sibuk (tetap bersamaku, saya berjanji analogi ini akan masuk akal). Di dapur ini, para chef memiliki tanggung jawab untuk tugas yang berbeda. Beberapa sedang memotong sayuran, beberapa lagi sedang menggoreng, dan beberapa lagi sedang menata piring. Tugas ini harus dilakukan dalam urutan tertentu untuk membuat masakan yang sempurna. Urutan ini mirip dengan operator precedence dalam pemrograman.

Di Python, ketika Anda menulis ekspresi dengan beberapa operator, operator precedence menentukan urutan di mana operasi ini dilakukan. Seperti di analogi dapur kita, beberapa operasi memiliki prioritas lebih tinggi daripada yang lain.

Mari kita lihat contoh sederhana:

result = 5 + 3 * 2
print(result)

Apa yang Anda pikir akan menjadi output? Jika Anda menjawab 11, Anda benar! Tetapi kenapa?

Ini adalah tempat operator precedence masuk permainannya. Di Python (dan kebanyakan bahasa pemrograman), perkalian memiliki tingkat keutamaan lebih tinggi daripada penjumlahan. Jadi, ekspresi tersebut dievaluasi sebagai:

  1. Pertama, 3 * 2 dihitung, menghasilkan 6
  2. Lalu, 5 ditambahkan ke 6, memberikan kita 11

Jika kita ingin mengubah urutan ini, kita akan menggunakan tanda kurung, seperti ini:

result = (5 + 3) * 2
print(result)

Sekarang outputnya akan menjadi 16, karena tanda kurung memiliki tingkat keutamaan tertinggi, memaksa penjumlahan terjadi sebelum perkalian.

Tabel Operator Precedence Python

Sekarang bahwa kita mengerti konsepnya, mari kita lihat tabel penuh operator precedence di Python. Ingat, operator di atas tabel memiliki keutamaan lebih tinggi daripada yang di bawah.

Precedence Operator Deskripsi
1 () Tanda kurung
2 ** Eksponen
3 +x, -x, ~x Unary plus, minus, dan bitwise NOT
4 *, /, //, % Perkalian, pembagian, pembagian lantai, modulus
5 +, - Penjumlahan dan pengurangan
6 <<, >> Operator shift bitwise
7 & Bitwise AND
8 ^ Bitwise XOR
9 | Bitwise OR
10 ==, !=, >, >=, <, <=, is, is not, in, not in Perbandingan, identifikasi, dan operator keanggotaan
11 not Logical NOT
12 and Logical AND
13 or Logical OR

Jangan khawatir jika beberapa operator ini terlihat asing. Kita akan fokus pada yang paling umum untuk saat ini.

Contoh Operator Precedence Python

Mari kita melihat beberapa contoh untuk melihat bagaimana tabel precedence ini bekerja dalam praktek.

Contoh 1: Operator Aritmatika

result = 10 + 5 * 2 - 3 ** 2
print(result)

Mari kita pecahkan langkah demi langkah:

  1. 3 ** 2 = 9 (Eksponen memiliki keutamaan tertinggi)
  2. 5 * 2 = 10 (Perkalian selanjutnya)
  3. 10 + 10 - 9 = 11 (Penjumlahan dan pengurangan dilakukan dari kiri ke kanan)

Jadi, hasil akhir adalah 11.

Contoh 2: Operator Perbandingan dan Logika

x = 5
y = 10
z = 15

result = x < y and y < z or x == z
print(result)

Ini bagaimana evaluasinya:

  1. x < y adalah True
  2. y < z adalah True
  3. x == z adalah False
  4. True and True adalah True
  5. True or False adalah True

Jadi, hasil akhir adalah True.

Contoh 3: Campuran Tipe Operator Berbeda

a = 2
b = 3
c = 4

result = a * b ** 2 + c > (a + b) * c and not a == b
print(result)

Mari kita pecahkan:

  1. b ** 2 = 9 (Eksponen pertama)
  2. a * 9 = 18 (Perkalian berikutnya)
  3. 18 + c = 22 (Penjumlahan)
  4. (a + b) = 5 (Tanda kurung memiliki keutamaan tertinggi)
  5. 5 * c = 20 (Perkalian)
  6. 22 > 20 adalah True (Perbandingan)
  7. a == b adalah False (Pemeriksaan kesamaan)
  8. not False adalah True (Logical NOT)
  9. True and True adalah True (Logical AND)

Hasil akhir adalah True.

Kesimpulan

Mengerti operator precedence adalah penting untuk menulis kode Python yang benar dan efisien. Hal ini membantu Anda memprediksi bagaimana ekspresi Anda akan dievaluasi dan menghindari hasil yang tidak diharapkan. Ingat, saat ragu, gunakan tanda kurung untuk menentukan secara eksplisit urutan operasi. Hal ini tidak hanya menjamin kode Anda bekerja seperti yang dikehendaki tetapi juga membuatnya lebih mudah dibaca oleh orang lain (dan diri Anda di masa depan!).

Sebagai Anda melanjutkan perjalanan Python Anda, Anda akan menjadi lebih familiar dengan aturan precedence ini. Jangan khawatir jika terasa menantang di awal – dengan latihan, hal ini akan menjadi alami. Tetap untuk mengkodekan, tetap untuk eksperimen, dan yang paling penting, bersenang-senang! Setelah semua, pemrograman adalah seperti memasak – semakin banyak Anda latih, semakin baik "masakan" Anda akan terbentuk. Selamat coding, para chef Python masa depan!

Credits: Image by storyset