Kategori
Python

Operator dan Ekspresi

Hampir semua statemen (baris logika) yang Anda tulis akan mengandung ekspresi. Contoh sederhana dari ekspresi adalah 2+3. Sebuah ekspresi dapat diturunkan menjadi operator dan operand.

Operator adalah fungsi yang menjalankan sesuatu dan direpresentasikan oleh simbol, seperti + atau simbol-simbol lain secara khusus. Operator butuh data untuk bisa dioperasikan dan data ini disebut operand. Dalam kasus ini 2 dan 3 adalah operand.

Operator

Kita akan melihat operator secara singkat dan bagaimana penggunaannya:

Catat bahwa Anda dapat mengecek dan memperbaiki ekspresi yang diberikan di contoh ini dengan menggunakan interpreter secara interaktif. Sebagai contoh, untuk menguji ekspresi 2+3, gunakan prompt interpreter interaktif Python:

>>> 2 + 3
5
>>> 3 * 5
15
>>>

+ (tambah)

Menambahkan dua objek

3 + 5 menghasilkan 8'a' + 'b' menghasilkan 'ab'.

- (minus)

Mengurangi satu angka terhadap angka lainnya. Jika operand pertama tidak ada, diasumsikan nol.

-5.2 memberikan angka negatif dan 50 - 24 memberi hasil 26.

* (perkalian)

Menghasilkan perkalian dari dua angka atau mengembalikan string yang diulang beberapa kali.

2 * 3 menghasilkan 6'la' * 3 menghasilkan 'lalala'.

** (pangkat)

Menghasilkan x pangkat y

3 ** 4 memberikan 81 (dengan kata lain 3 * 3 * 3 * 3)

/ (pembagian)

Membagi x oleh y

4 / 3 menghasilkan 1.3333333333333333.

// (pembagi bulat ke bawah)

Mengembalikan hasil pembulatan ke bawah dari hasil pembagian

4 // 3 menghasilkan 1.

% (modulo)

Menghasilkan sisa dari pembagian

8 % 3 menghasilkan 2-25.5 % 2.25 menghasilkan 1.5.

<< (geser kiri)

Menggeser nomor bit ke sebelah kiri sesuai dengan jumlah bit yang telah ditentukan (setiap angka merupakan representasi bit di memori atau digit biner, yakni 0 dan 1)

2 << 2 menghasilkan 82 direpresentasikan 10 dalam bits.

Menggeser 2 bit kekiri akan menghasilkan 1000 yang merupakan representasi dari desimal 8.

>> (geser kanan)

Menggeser angka bit ke kanan sesuai dengan jumlah bit yang telah ditentukan.

11 >> 1 menghasilkan 5.

11 direpresentasikan oleh bit dengan 1011 kemudian digeser ke kanan 1 bit menghasilkan 101 yang merupakan desimal angka 5

& (bitwise AND)

Operasi bit-wise AND dari angka (bitwise adalah operasi angka berbasis bit yakni dengan 0 dan 1)

5 & 3 menghasilkan 1.

| (bitwise OR)

Operasi bitwise OR dari angka

5 | 3 menghasilkan 7

^ (bitwise XOR)

Operasi angka Bitwise XOR (OR ekslusif/exclusive or)

5 ^ 3 menghasilkan 6

~ (bitwise invert)

Membalikkan angka bitwise dari x atau -(x+1)

~5 menghasilkan -6.

< (kurang dari)

Menghasilkan pengembalian apakah x kurang dari y. Semua operator perbandingan hanya menghasilkan True atau False. Catat huruf besar yang ada di awal kata tersebut.

5 < 3 menghasilkan False dan 3 < 5 menghasilkan True.

Perbandingan dapat dirangkai secara bebas: 3 &lt; 5 &lt; 7 menghasilkan True.

> (lebih besar dari)

Menghasilkan pengembalian apakah x lebih besar daripada y

5 &gt; 3 menghasilkan True. Jika operand berupa angka, keduanya akan dikonversikan dalam tipe yang sejenis. Selain itu, selalu mengembalikan nilai False

<= (lebih kecil atau sama dengan)

Menghasilkan pengembalian apakah x lebih kecil atau sama dengan y

x = 3; y = 6; x &lt;= y menghasilkan True.

>= (lebih besar atau sama dengan)

Menghasilkan pengembalian apakah x lebih besar atau sama dengan y

x = 4; y = 3; x &gt;= 3 menghasilkan True.

== (sama dengan)

Membandingkan apakah kedua objek sama atau tidak

x = 2; y = 2; x == y menghasilkan True.

x = 'str'; y = 'stR'; x == y menghasilkan False.

x = 'str'; y = 'str'; x == y menghasilkan True.

!= (tidak sama dengan)

Membandingkan apakah kedua objek berbeda atau tidak

x = 2; y = 3; x != y menghasilkan True.

not (boolean NOT)

Jika x True, akan menghasilkan False. Jika x False, menghasilkan True.

x = True; not x menghasilkan False.and (boolean AND)

x dan y menghasilkan False Jika x False, selain itu akan menghasilkan pengembalian evaluasi nilai y

x = False; y = True; x and y menghasilkan False mengingat x False. Dalam kasus ini, Python tidak akan mengevaluasi y mengingat nilai dari ekspresi and adalah False yang menunjukkan bahwa seluruh ekspresi akan bernilai False dengan mengabaikan nilai apapun yang ada setelahnya. Ini disebut evaluasi sirkuit-pendek.or (boolean OR)

Jika x True, akan mengembalikan True, selain itu akan mengembalikan nilai y

x = True; y = False; x or y mengembalikan True. Evaluasi sirkuit pendek juga berlaku di sini.

Jalan pintas untuk operasi matematika dan penugasan

Menjalankan operasi matematika di variable lalu menugaskan hasilnya kembali kepada variabel cukup umum dilakukan di Python. Berikut adalah jalan pintas untuk menjalankan ekspresi tersebut.

Anda dapat menulis:

a = 2
a = a * 3

dengan cara:

a = 2
a *= 3

Perhatikan bahwa operasi ekxpresi var = var menjadi var operasi = ekspresi.

Urutan Evaluasi

Jika Anda memiliki ekspresi seperti 2 + 3 * 4, yang dilakukan penambahan dulu atau perkalian dulu? Dulu guru matematika di sekolah kita mengatakan bahwa perkalian harus dilakukan lebih dulu. Ini berarti operasi perkalian memiliki tingkat yang lebih tinggi daripada operasi penambahan.

Tabel berikut memberikan urutan untuk Python, dari urutan paling rendah (ikatan terendah) ke urutan tertinggi (ikatan tertinggi). Ini berarti bahwa dalam setiap ekspresi yang diberikan, Python akan mengevaluasi operator dan ekspresi di tabel yang lebih rendah sebelum menjalankan operasi di tabel yang lebih tinggi.

Tabel berikut diambil dari manual referensi Python, diberikan hanya untuk kelengkapan saja. Lebih disarankan sebetulnya untuk menggunakan tanda kurung untuk mengelompokkan operasi dan operand secara benar, dan secara eksplit menentukan urutan. Ini membuat program dapat lebih dibaca. Lihat Mengubah Urutan Evaluasi di bawah untuk lebih lengkapnya.lambda

Ekspresi lambdaor

Boolean ORand

Boolean ANDnot x

Boolean NOTin, not in

Tes keanggotaan variabelis, is not

Tes identitas variabel<, <=, >, >=, !=, ==

Perbandingan|

Bitwise OR^

Bitwise XOR&

Bitwise AND<<, >>

Menggeser+, -

Penambahan dan Pengurangan*, /, //, %

Perkalian, Pembagian, Pembagian pembulatan kebawah dan sisa (modulo)+x, -x

Positif, Negatif~x

Bitwise NOT**

Eksponensial/Pangkatx.attribute

Referensi terhadap atributx[index]

Pendaftaranx[index1:index2]

Pemotonganf(argumen ...)

Pemanggilan fungsi(ekspresi, ...)

Pengikatan atau penampilan dalam format tuple[ekspresi, ...]

Penampilan dalam format list{key:datum, ...}

Penampilan dalam format kamus (dictionary)

Simbol operasi yang belum dibahas akan dijelaskan nanti pada bagian berikutnya.

Simbol operasi yang memiliki bobot yang sama akan ditampilkan pada baris yang sama di tabel di atas. Sebagai contoh, + dan - memiliki bobot yang sama.

Mengubah Urutan Pelaksanaan Ekspresi

Untuk membuat ekspresi lebih mudah dibaca kita dapat menggunakan tanda dalam kurung. Sebagai contoh 2 + ( 3 * 4 ) jauh lebih mudah untuk dipahami daripada2 + 3 * 4yang membutuhkan pengetahuan urutan operator. Sebagaimana hal lainnya, tanda dalam kurung harus digunakan secara tepat (jangan berlebihan) dan jangan berulang seperti di(2 + (3 * 4)).

Ada keuntungan lain menggunakan tanda kurung – membantu penggantian urutan pelaksanaan. Sebagai contoh jika Anda ingin penambahan diproses dulu sebelum perkalian dalam satu ekspresi, Anda dapat menuliskannya dengan (2 +3) * 4.

Asosiatifitas

Operator biasanya diasosiasikan dari kiri kekanan. Ini berarti operator dengan urutan yang sama, akan dijalankan secara urut dari kiri ke kanan. Sebagai contoh, 2 + 3 + 4 akan dijalankan dengan urutan (2 + 3) + 4. Beberapa operator seperti operator sama-dengan (penugasan/assignment) memiliki asosiatifitas dari kanan ke kiri. Misalnya a = b = c diperlakukan a = (b = c).

Ekspresi

Contoh (simpan berkas berikut dengan nama expression.py):

panjang = 5
lebar = 2

area = panjang * lebar
print('Area seluas', area)
print('Perimeter seluas', 2 * (panjang + lebar))

Keluaran:

$ python3 expression.py
Area seluas 10
Perimeter seluas 14

Bagaimana Cara Kerjanya:

Panjang dan lebar dari sebuah persegi empat disimpan dalam variabel dengan nama sama. Kita gunakan ini untuk menghitung area dan perimeter persegi empat di mana variabelnya disimpan dengan nama yang sama. Kita simpan hasil dari ekspresi panjang * lebar ke dalam variabel bernama area, lalu mencetaknya di layar dengan perintah print. Dalam kasus kedua, kita secara langsung menggunakan nilai dari eksresi 2 * (panjang + lebar) dalam fungsi print.

Juga perhatikan bagaimana Python ‘mencetak-cantik’ keluarannya. Meskipun kita tidak menentikan spasi antara 'Area seluas' dengan variabel area, Python menampilkannya dalam keluaran yang manis dan bersih sehingga program dapat jauh lebih mudah dibaca dengan cara ini (mengingat kita tidak perlu khawatir tentang spasi dan string untuk menggunakan keluaran). Ini adalah salah satu contoh bagaimana Python membuat hidup programmer menjadi lebih mudah.

Ringkasan

Kita telah melihat bagaimana menggunakan operator, operan dan ekspresi – ini adalah kerangka dasar dari sebuah program. Berikutnya kita akan melihat bagaimana cara menggunakan hal ini ke dalam program lewat alur kontrol statemen.

2 tanggapan untuk “Operator dan Ekspresi”

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *