Lompat ke konten Lompat ke sidebar Lompat ke footer

Operator dan Ekspresi (Expressions) Python

 


Setiap logika komputasi yang berada dalam program Anda akan menggunakan ekspresi. 
Sebuah ekspresi dapat terdiri dari operator dan operan. 

Salah satu contoh termudah adalah a + b atau 2 + 3, yang dapat kita pecah yakni + sebagai operator dan a, b, 2, atau 3 sebagai variabel/operand. Operator jelas memiliki fungsinya masing-masing dan direpresentasikan dengan simbol atau keyword tertentu.
Tip: Anda dapat melakukan expression tanpa menggunakan variabel secara langsung pada mode interaktif Python:

  1. 2 + 3


Output:
5

  1. 3 * 5


Output:
15

Jenis-jenis operator

Matematika dan string

  • + (tambah)
    • Menambahkan dua objek.
    • 3 + 5 menghasilkan 8
    • 'a' + 'b' menghasilkan 'ab'.
  • - (kurang)
    • Mengurangkan operand kedua dari operand pertama. Jika hanya satu operand, diasumsikan nilai operand pertama adalah 0.
    • -5.2 adalah expression yang sama dengan 0 - 5.2 menghasilkan -5.2.
    • 50 - 24 menghasilkan 26.
    • Tidak berlaku untuk string, akan menghasilkan error unsupported operand.
  • * (perkalian)
    • Mengembalikan hasil perkalian angka atau mengembalikan string yang diulang sejumlah tertentu.
    • 2 * 3 menghasilkan 6.
    • 'la' * 3 menghasilkan 'lalala'.
  • ** (pangkat)
    • Mengembalikan operand pertama pangkat operand kedua.
    • 3 ** 4 menghasilkan 81 (sama dengan 3 * 3 * 3 * 3).
      | Tips: untuk akar dua, gunakan pangkat 0.5.
  • / (pembagian)
    • Mengembalikan hasil pembagian operand pertama dengan operand kedua (float).
    • 13 / 3 menghasilkan 4.333333333333333.
  • // (pembagian habis dibagi / div)
    • Mengembalikan hasil pembagian operand pertama dengan operand kedua (bilangan bulat), kecuali jika salah satu operand adalah float, akan menghasilkan float.
    • 13 // 3 menghasilkan 4.
    • -13 // 3 menghasilkan -5.
    • 9//1.81 menghasilkan 4.0.
  • % (modulo)
    • Mengembalikan sisa bagi.
    • 13 % 3 menghasilkan 1.
    • -25.5 % 2.25 menghasilkan 1.5.

Operasi Bit

  • << (left shift)
    • Menggeser representasi bit/binary dari operand pertama sebanyak operand kedua ke kiri.
    • 2 << 2 menghasilkan 8.
      • 2 direpresentasikan sebagai 10 dalam binary.
      • Geser ke kiri sebanyak 2x, menjadi 1000 (tambahkan 0 di belakangnya).
    • 1000 dalam binary bernilai 8 dalam desimal.
  • >> (right shift)
    • Menggeser representasi bit/binary dari operand pertama sebanyak operand kedua ke kanan.
    • 11 >> 1 menghasilkan 5.
      • 11 direpresentasikan sebagai 1011 dalam binary.
      • Geser ke kanan sebanyak 1x, menjadi 101.
    • 101 dalam binary bernilai 5 dalam desimal.
  • & (bit-wise AND)
    • Menjalankan operasi binary AND pada representasi operand pertama dan kedua.
    • 5 & 3 menghasilkan 1.
      • Representasi binary 5 adalah 101 dan representasi binary 3 adalah 011.
      • 101 and 011 bernilai 001.
    • 001 dalam desimal adalah 1.
  • | (bit-wise OR)
    • Menjalankan operasi binary OR pada representasi operand pertama dan kedua.
    • 5 | 3 menghasilkan 7.
      • Representasi binary 5 adalah 101 dan representasi binary 3 adalah 011.
      • 101 or 011 bernilai 111.
    • 111 dalam desimal adalah 7.
  • ^ (bit-wise XOR)
    • Menjalankan operasi binary XOR pada representasi operand pertama dan kedua.
    • 5 ^ 3 menghasilkan 6.
      • Representasi binary 5 adalah 101 dan representasi binary 3 adalah 011.
      • 101 xor 011 bernilai 110.
    • 110 dalam desimal adalah 6.
  • ~ (bit-wise invert)
    • Menjalankan operasi binary invert pada representasi operand.
    • Nilai invert dari x adalah -(x+1), menggunakan metode Two’s Complement
    • ~5 menghasilkan -6.
    • Lebih lanjut mengenai Two’s Complement dapat dibaca pada https://en.wikipedia.org/wiki/Two%27s_complement

Perbandingan

  • < atau operator.lt (less than)
    • Menjalankan perbandingan apakah operand pertama lebih kecil dari operand kedua.
    • 5 < 3 menghasilkan False and 3 < 5 menghasilkan True.
    • Perbandingan dapat berisi lebih dari dua operand, misalnya 3 < 5 < 7 menghasilkan True.
  • > atau operator.gt (greater than)
    • Menjalankan perbandingan apakah operand pertama lebih besar dari operand kedua.
    • 5 > 3 menghasilkan True.
  • <= atau operator.le (less than or equal to)
    • Menjalankan perbandingan apakah operand pertama lebih kecil atau sama dengan operand kedua.
    • x = 3; y = 6;
      • x <= y menghasilkan True.
  • >= atau operator.ge (greater than or equal to)
    • Menjalankan perbandingan apakah operand pertama lebih besar atau sama dengan operand kedua.
    • x = 4; y = 3;
      • x >= y menghasilkan True.
  • == atau operator.eq (equal to)
    • Menjalankan perbandingan apakah operand pertama sama dengan operand kedua.
    • x = 2; y = 2;
      • x == y menghasilkan True.
    • x = 'str'; y = 'stR';
      • x == y menghasilkan False.
    • x = 'str'; y = 'str';
      • x == y menghasilkan True.
  • != atau operator.ne (not equal to)
    • Menjalankan perbandingan apakah operand pertama tidak sama dengan operand kedua.
    • x = 2; y = 3;
      • x != y returns True.

Penggunaan le, lt, gt, ge, eq, ne


  1. from operator import *

  2. a = 1

  3. b = 5.0

  4. print('a = {}'.format(a))

  5. print('b = {}'.format(b))

  6. for func in (lt, le, eq, ne, ge, gt):

  7.     print ('{}(a, b): {}'.format(func.__name__, func(a, b)))


Output:
a = 1
b = 5.0
lt(a, b): True
le(a, b): True
eq(a, b): False
ne(a, b): True
ge(a, b): False
gt(a, b): False

Boolean Operator

  • not (boolean NOT)
    • Jika x bernilai True, fungsi akan mengembalikan nilai False.
    • Jika x bernilai False, fungsi akan mengembalikan nilai True.
    • x = True;
      • not x akan mengembalikan nilai False.
  • and (boolean AND)
    • x AND y akan mengembalikan nilai False jika x bernilai False, atau fungsi akan mengembalikan nilai y.
    • x = False; y = True;
      • x AND y, Fungsi akan mengembalikan nilai False karena x bernilai False.
      • Dalam kasus ini, Python tidak akan mengevaluasi nilai y karena apapun nilai y tidak akan mempengaruhi hasil. Hal ini dinamakan short-circuit evaluation.
  • or (boolean OR)
    • x OR y, Jika x bernilai True, fungsi akan mengembalikan nilai True, atau fungsi akan mengembalikan nilai dari y.
    • x = True; y = False;
      • x OR y, fungsi akan mengembalikan nilai True.
      • Dalam kasus ini, Python juga menggunakan short-circuit evaluation karena apapun nilai y tidak akan mempengaruhi hasil.

Cara singkat menuliskan operasi

Jika Anda melakukan assignment kembali hasil sebuah expression, beberapa di antaranya bisa disingkat sebagai berikut:

  1. a = 2

  2. a = a * 3


Dapat dituliskan sebagai

  1. a = 2

  2. a *= 3


Perhatikan formatnya menjadi [operand] [operasi] = expression.

Urutan matematis dalam melakukan evaluasi

Jika Anda memiliki expression 2 + 3 * 4, Apakah penambahan dilakukan terlebih dahulu sebelum perkalian? Jika merujuk pada aturan yang benar, maka perkalian dilakukan lebih dahulu, sehingga perkalian memiliki urutan lebih awal/tinggi.
Berikut adalah tabel urutan yang diambil dari referensi Dokumentasi Python:
OperatorDescription
lambdaLambda expression
if - elseConditional expression
orBoolean OR
andBoolean AND
not xBoolean NOT
in, not in, is, is not, <, <=, >, >=, !=, ==Comparisons, including membership tests and identity tests
|Bitwise OR
^Bitwise XOR
&Bitwise AND
<<, >>Shifts
+, -Addition and subtraction
*, @, /, //, %Multiplication, matrix multiplication, division, floor division, remainder
+x, -x, ~xPositive, negative, bitwise NOT
**Exponentiation
await xAwait expression
x[index], x[index:index], x(arguments...), x.attributeSubscription, slicing, call, attribute reference
(expressions...), [expressions...], {key: value...},{expressions...}Binding or tuple display, list display, dictionary display, set display
Tip:    Gunakan kurung untuk memudahkan keterbacaan dan memastikan urutan secara tepat.
            2 + (3 * 4) akan lebih mudah dibaca daripada 2 + 3 * 4, meskipun hasilnya sama

Gunakan kurung untuk mengubah urutan operasi. 2 + 3 * 4 seharusnya dikalikan terlebih dahulu.
            Anda dapat menggunakan (2 + 3) * 4 untuk memastikan penjumlahan dilakukan terlebih dahulu.
Operator di Python juga bersifat asosiatif dari kiri ke-kanan. Artinya, semua operator yang memiliki tingkatan yang sama akan dijalankan berurutan dari kiri ke kanan
Rio Widyatmoko
Rio Widyatmoko Desainer Grafis, Trainer, Developer & Pecandu Teknologi Lulus dengan Jurusan Sistem Informasi, Jangan ragu untuk terhubung dengan saya di Media Sosial Instagram: @widyatmokorio :)

Posting Komentar untuk "Operator dan Ekspresi (Expressions) Python"