Menghitung dengan Operator Python
Operator aritmatika memberi tahu Python jenis perhitungan yang harus dilakukan. Misalnya, + menjumlahkan nilai, * mengalikan dua nilai, dan ** memangkatkan satu nilai dengan nilai lain.
Python memiliki tujuh operator aritmatika utama. Prioritas operator menentukan pengelompokan operasi dalam ekspresi ketika tanda kurung tidak menentukan pengelompokan tersebut.
Urutan Prioritas Operator
Ketika satu ekspresi memuat beberapa operator aritmatika sekaligus, Python memerlukan urutan tetap untuk menentukan perhitungan mana yang dikerjakan lebih dulu. Tujuh operator biner ini dikelompokkan ke dalam tiga tingkat prioritas. Prioritas menentukan pengelompokan operasi. Tanda kurung dapat mengubah pengelompokan tersebut.
Prioritas Tertinggi
Operator Perpangkatan
Operator ** digunakan untuk perpangkatan dan memiliki prioritas tertinggi di antara tujuh operator aritmatika biner yang dibahas di sini. Berbeda dari operator lainnya, operator ini memiliki asosiativitas kanan.
>>> 2**3
8
>>> 2**-1
0.5
>>> 2**0.5
1.4142135623730951Gunakan ** untuk menghitung kuadrat, kubik, akar, dan pangkat negatif. Misalnya, akar kuadrat dapat ditulis dengan pangkat 0.5.
Prioritas Menengah
Kelompok operator dengan prioritas menengah terdiri dari empat operator yang sering kamu gunakan dalam perhitungan sehari-hari.
Operator Perkalian
Operator * digunakan untuk mengalikan dua angka.
Operator Pembagian
Operator / melakukan pembagian dan menghasilkan bilangan float untuk operand int atau float, bahkan ketika kedua operand adalah integer.
>>> 7.0 / 2.0
3.5
>>> 7.0 / 2
3.5
>>> 7 / 2.0
3.5
>>> 7 / 2
3.5
>>> 4 / 2
2.0Perhatikan bahwa meskipun 4 / 2 menghasilkan angka bulat secara matematis, Python tetap mengembalikan sebagai float.
Operator Floor Division
Operator // melakukan floor division. Hasil bagi dibulatkan ke bilangan bulat terbesar yang lebih kecil atau sama dengan hasil pembagian.
>>> 4 // 2
2
>>> 7 // 2
3
>>> -7 // 2
-4
>>> 7.0 // 2
3.0Floor division membulatkan hasil ke arah negatif tak hingga. Untuk -7 // 2, Python memperoleh -3.5 lalu membulatkannya menjadi -4. Jika salah satu operand berupa float, Python tetap melakukan floor division, tetapi mengembalikan float.
Operator Modulo %
Operator % mengembalikan sisa pembagian. Untuk operand bilangan bulat dan pembagi bukan nol, berlaku identitas eksak .
>>> 5 % 4
1
>>> -5 % 4
3
>>> 5 % -4
-3
>>> -5 % -4
-1Untuk bilangan bulat negatif, Python tetap memenuhi identitas di atas. Itulah sebabnya 5 % 4 menghasilkan 1, sedangkan -5 % 4 menghasilkan 3. Modulo berguna untuk memeriksa apakah satu bilangan habis dibagi bilangan lain dan, pada bilangan bulat tak negatif, mengambil digit terakhir.
Prioritas Terendah
Penjumlahan dan pengurangan memiliki prioritas lebih rendah daripada lima operator lainnya. Tanda kurung tetap dapat mengubah pengelompokan operasi. Pada 2 + 3 * 4, Python mengalikan lebih dulu lalu menjumlahkan, sehingga hasilnya 14. Agar penjumlahan dikerjakan lebih dulu, bungkus bagian itu dengan tanda kurung dan tulis (2 + 3) * 4.
Aturan Prioritas dan Asosiativitas
Prioritas dan asosiativitas menentukan pengelompokan operasi, sedangkan Python mengevaluasi operand dari kiri ke kanan. Prioritas mengelompokkan operator dari tingkat berbeda, sedangkan asosiativitas mengelompokkan operator pada tingkat yang sama. Kedua aturan ini bekerja pada operator yang kamu tulis, sehingga 2 ** 3 ** 2 dan 8 - 3 - 2 masing-masing hanya punya satu cara pembacaan.
Urutan Evaluasi Ekspresi
Tiga aturan berikut menentukan pengelompokan operasi dalam ekspresi.
- Urutan prioritas menentukan operator yang mengikat operand lebih kuat
- Asosiativitas kiri berlaku untuk operator dengan prioritas yang sama, kecuali perpangkatan
- Tanda kurung dapat mengubah urutan evaluasi
>>> 2 + 4 * 3
14
>>> (2 + 4) * 3
18
>>> 2 * 2**3
16
>>> 6 / 2 * 4
12.0
>>> 6 / (2 * 4)
0.75Aturan Asosiativitas
Asosiativitas menentukan pengelompokan operator berprioritas sama dalam satu ekspresi.
Asosiativitas Kiri
Sebagian besar operator aritmatika biner berprioritas sama dikelompokkan dari kiri ke kanan.
>>> 6 / 2 * 4
12.0
>>> 10 - 3 - 2
5Perkalian dan pembagian memiliki prioritas yang sama, sehingga Python membaca ekspresi ini dari kiri ke kanan: 6 / 2 * 4 = (6 / 2) * 4 = 12.
Asosiativitas Kanan
Di antara tujuh operator ini, perpangkatan ** dikelompokkan dari kanan ke kiri.
>>> 2 ** 3 ** 2
512
>>> 3 ** 2 ** 2
81Python mengelompokkan perpangkatan berulang dari kanan ke kiri: 2 ** 3 ** 2 = 2 ** (3 ** 2) = 2 ** 9 = 512.
Python Shell sebagai Kalkulator
Untuk operand int atau float, operator / menghasilkan float, termasuk ketika hasilnya berupa bilangan bulat. Operator // menghasilkan integer jika kedua operand berupa integer dan menghasilkan float jika salah satunya berupa float. Hasil modulo yang tidak nol memiliki tanda yang sama dengan pembagi. Identitas di atas berlaku eksak untuk bilangan bulat, sedangkan operasi float dapat mengalami pembulatan.
Tabel Ringkasan Operator Aritmatika
| Prioritas | Operator | Fungsi | Asosiativitas |
|---|---|---|---|
| Tertinggi | ** | Perpangkatan | Kanan |
| Menengah | * | Perkalian | Kiri |
| Menengah | / | Pembagian | Kiri |
| Menengah | // | Floor division | Kiri |
| Menengah | % | Modulo | Kiri |
| Terendah | + | Penjumlahan | Kiri |
| Terendah | - | Pengurangan | Kiri |
Prioritas operator menentukan cara Python mengelompokkan ekspresi aritmatika. Gunakan tanda kurung jika urutan yang dimaksud berbeda dari pengelompokan standar.