Halo!
Pada 2 pertemuan kemarin kita telah mempelajari tentang tipe 2 data koleksi pada Python. Masih tersisa 2 tipe data koleksi lagi yang belum kita bahas.
Saya kira pembahasannya bisa kita tunda di beberapa pertemuan kedepan π
Di pertemuan kali ini, kita akan bahas dulu hal yang sangat dasar di dalam bahasa pemrograman Python: yaitu Operator.
Seperti biasa, siapkan kopi β terlebih dahulu π¨βπ»
Apa itu Operator?
Operator di dalam Python adalah simbol khusus yang berfungsi untuk menjalankan suatu operasi tertentu, baik operasi aritmatika maupun operasi logika. Sedangkan nilai yang dioperasikan oleh operator dinamakan sebagai operan [1].
Berikut ini salah satu contoh paling sederhana dari operator aritmatika pada Python:
>>> 10 + 5
15
Pada kode program di atas, tanda +
adalah sebuah operator. Sedangkan angka 10
dan 5
keduanya merupakan operan.
Dari operasi tersebut, didapatkanlah sebuah hasil akhir berupa nilai integer yaitu 15
.
Jenis-jenis operator pada python
Terdapat 7 jenis operator pada python:
- Operator aritmatika
- Operator komparasi atau perbandingan
- Operator penugasan
- Operator logika
- Operator keanggotaan (membership)
- Operator identitas
- Operator bitwise
Markibas tusatu. Mari kita bahas satu-persatu! π¨βπ»
Operator aritmatika
Operator matematika adalah operator yang kita gunakan untuk menghitung operasi matematika, mulai dari penjumlahan, pengurangan, perkalian, perpangkatan, dan lain sebagainya [2].
Berikut ini tabel operator aritmatika pada python π.
Simbol | Nama | Tugas | Contoh |
---|---|---|---|
+ |
Penjumlahan | Menjumlahkan nilai operan | 5 + 1 = 6 |
- |
Pengurangan | Mengurangkan nilai operan | 10 - 10 = 0 |
* |
Perkalian | Mengalikan nilai operan | 2 * 2 = 4 |
/ |
Pembagian | Membagi nilai operan | 100 / 5 = 50 |
% |
Modulus | Menghitung sisa hasil bagi dari operan | 10 / 3 = 1 |
** |
Perpangkatan | Menghitung pangkat dari operan | 2 ** 3 = 8 |
// |
Pembagian Bulat | Membagi operan lalu membulatkannya dengan menghapus angka dibelakang koma | 10 // 3 = 3 |
Kita bisa mencoba satu-persatu dari masing-masing operator di atas.
a, b = 10, 3
print(a, '+', b, '=', a + b)
print(a, '-', b, '=', a - b)
print(a, '*', b, '=', a * b)
print(a, '/', b, '=', a / b)
print(a, '%', b, '=', a % b)
print(a, '**', b, '=', a ** b)
print(a, '//', b, '=', a //b)
Output:
10 + 3 = 13
10 - 3 = 7
10 * 3 = 30
10 / 3 = 3.3333333333333335
10 % 3 = 1
10 ** 3 = 1000
10 // 3 = 3
Operator komparasi atau perbandingan
Operator perbandingan adalah operator yang bertugas untuk membandingkan antar dua operan. Apakah operan 1 lebih besar dari pada operan 2, atau apakah keduanya sama? Dan lain sebagainya.
Berikut ini adalah tabel operator perbandingan pada Python.
Simbol | Nama | Contoh | Hasil |
---|---|---|---|
> |
Lebih dari | 5 > 5 |
False |
< |
Kurang dari | 2 < 4 |
True |
== |
Sama dengan | 10 == 10 |
True |
!= |
Tidak sama dengan | 5 != 5 |
False |
>= |
Lebih dari atau sama dengan | 10 >= 10 |
True |
<= |
Kurang dari atau sama dengan | 9 <= 10 |
True |
Agar menjadi lebih jelas, mari kita gerak-gerakkan jari kita π
# buat variabel a dan b dengan teknik squence ordering
a, b = 5, 10
print(a, '>', b, '=', a > b)
print(a, '<', b, '=', a < b)
print(a, '==', b, '=', a == b)
print(a, '!=', b, '=', a != b)
print(a, '>=', b, '=', a >= b)
print(a, '<=', b, '=', a <= b)
Output dari kode program di atas adalah:
5 > 10 = False
5 < 10 = True
5 == 10 = False
5 != 10 = True
5 >= 10 = False
5 <= 10 = True
Operator penugasan
Operator penugasan adalah operator yang digunakan untuk memberikan sebuah tugas terhadap suatu variabel. Atau dalam bahasa yang lebih manusiawi: operator penugasan adalah operator yang berfungsi untuk memberikan nilai ke dalam sebuah variabel.
Sebenarnya operator penugasan ini hanya ada 1 saja, yaitu operator =
.
Akan tetapi, ada banyak variant shortcut yang memudahkan kita untuk melakukan operasi aritmatika atau operasi bitwise bersamaan dengan operasi penugasan.
Berikut ini adalah tabel operator penugasan pada Python.
Operator | Contoh | Sama dengan |
---|---|---|
= |
a = 10 | a = 10 |
+= |
a += 5 | a = a + 5 |
-= |
a -= 3 | a = a - 3 |
*= |
a *= 6 | a = a * 6 |
/= |
a /= 8 | a = a / 8 |
%= |
a %= 9 | a = a % 9 |
//= |
a //= 6 | a = a // 6 |
**= |
a **= 1 | a = a ** 1 |
&= |
a &= 2 | a = a & 2 |
|= |
a |= 3 | a = a | 3 |
^= |
a ^= 4 | a = a ^ 4 |
>>= |
a »= 4 | a = a » 4 |
<<= |
a «= 2 | a = a « 2 |
Agar lebih ahsan (baik), mari kita coba masing-masing dari operator penugasan di atas.
# penugasan pertama
a = 10
print('a = 10 -> ', a)
a += 5
print('a += 5 -> ', a)
a -= 3
print('a -= 3 -> ', a)
a *= 6
print('a *= 6 -> ', a)
a /= 8
print('a /= 8 -> ', a)
# karena a jadi float, kita ubah lagi menjadi integer
a = int(a)
a %= 9
print('a %= 9 -> ', a)
a //= 6
print('a //= 6 -> ', a)
a **= 1
print('a **= 1 -> ', a)
a &= 2
print('a &= 2 -> ', a)
a |= 3
print('a |= 3 -> ', a)
a ^= 4
print('a ^= 4 -> ', a)
a >>= 4
print('a >>= 4 -> ', a)
a <<= 2
print('a <<= 4 -> ', a)
Output dari kode program di atas adalah:
a = 10 -> 10
a += 5 -> 15
a -= 3 -> 12
a *= 6 -> 72
a /= 8 -> 9.0
a %= 9 -> 0
a //= 6 -> 0
a **= 1 -> 0
a &= 2 -> 0
a |= 3 -> 3
a ^= 4 -> 7
a >>= 4 -> 0
a <<= 4 -> 0
NB: beberapa operator terakhir di atas mengandung operasi bitwise. Operasi bitwise ada di bagian akhir dari pembahasan hari ini.
Operator logika
Operator logika adalah operator yang sangat penting. Operator ini sangat berkaitan erat dengan operator perbandingan. Dan kedua-duanya juga mengembalikan nilai dengan tipe data yang sama yaitu boolean.
Berikut ini tabel dari operator logika pada python.
Simbol | Tugas | Contoh |
---|---|---|
and |
Mengembalikan True jika dua statement sama-sama benar |
True and True |
or |
Mengembalikan True jika salah satu statement bernilai benar |
2 > 5 or 1 < 3 |
not |
Menegasikan hasil. True menjadi False dan sebaliknya |
not(1 > 5) |
Mari kita coba masing-masing dari operator di atas.
print(True and True)
print(1 + 2 == 3 and True)
print('----')
print(False or 1 > 5)
print(False or 5 > 2)
print('----')
print(not(1 > 5))
print(not(1 < 5))
Jika kita jalankan, kita akan mendapatkan output sebagai berikut:
True
True
----
False
True
----
True
False
Operator keanggotaan
Python adalah bahasa pemrograman yang terbilang unik, ia memiliki operator khusus atau juga sering dinamakan sebagai operator spesial. Dinamakan spesial karena memang operator ini hanya ada di Python dan tidak ada di bahasa pemrograman lainnya.
Di antara operator spesial tersebut adalah operator keanggotaan. Atau di dalam bahasa inggris ia dinamakan membership operator.
Operator keanggotaan dalam python hanya memiliki dua varian, yaitu in
dan not in
. Berikut ini tabel lebih lengkapnya:
Simbol | Tugas |
---|---|
in |
Bernilai true jika suatu nilai ada di dalam sequence |
not in |
Bernilai false jika suatu nilai tidak ada di dalam sequence |
Agar lebih jelas, mari kita coba kode program berikut ini:
perusahaan = 'Microsoft'
list_pulau = ['Jawa', 'Sumatra', 'Sulawesi']
# ini adalah dictionary, insyaallah akan kita pelajari
# di pertemuan-pertemuan yang akan datang
mahasiswa = {
'nama': 'Lendis Fabri',
'asal': 'Lamongan'
}
print(
"Apakah 'c' ada di variabel perusahaan?",
'c' in perusahaan
)
print(
"Apakah 'z' tidak ada di variabel perusahaan?",
'c' not in perusahaan
)
print(
"Apakah 'Madura' ada di variabel list_pulau?",
'Madura' in perusahaan
)
print(
"Apakah 'Madura' tidak ada di variabel list_pulau?",
'Madura' not in perusahaan
)
print(
"Apakah atribut 'nama' ada di variabel mahasiswa?",
'nama' in mahasiswa
)
Jika kita jalankan program di atas, kita akan mendapatkan output sebagai berikut:
Apakah 'c' ada di variabel perusahaan? True
Apakah 'z' tidak ada di variabel perusahaan? False
Apakah 'Madura' ada di variabel list_pulau? False
Apakah 'Madura' tidak ada di variabel list_pulau? True
Apakah atribut 'nama' ada di variabel mahasiswa? True
Operator identitas
Selain operator keanggotaan, python juga masih memiliki operator spesial lainnya: yaitu operator identitas. Operator ini didefinisikan dengan is
dan is not
.
Tugasnya adalah untuk mengetahui apakah dua buah variabel memiliki nilai yang sama dan posisi yang sama di dalam memori. Karena tidak semua nilai yang sama memiliki tempat / posisi yang sama di dalam memori.
Simbol | Tugas |
---|---|
is |
Bernilai true jika dua variabel bersifat identik baik dari segi nilai mau pun penempatan lokasi di memory |
is not |
Bernilai false jika dua variabel tidak identik baik dari segi nilai mau pun penempatan lokasi di memory |
Untuk lebih jelasnya, markitkod. Mari kita koding π
Silakan tulis dan jalankan kode program di bawah ini:
a = 5
b = 5
list_a = [1, 2, 3]
list_b = [1, 2, 3]
nama_a = 'budi'
nama_b = 'budi'
# output True
print('a is b:', a is b)
# output False
print('a is not b:', a is not b)
# output False
print('list_a is list_b:', list_a is list_b)
# output True
print('list_a == list_b:', list_a == list_b)
# output True
print('nama_a is nama_b:', nama_a is nama_b)
# output False
print('nama_a is not nama_b:', nama_a is not nama_b)
Output:
a is b: True
a is not b: False
list_a is list_b: False
list_a == list_b: True
nama_a is nama_b: True
nama_a is not nama_b: False
Penjelasan
Kita coba perhatikan output dari kode program di atas. Dari 3 pasang variabel yang kita tes, masing-masing memiliki nilai yang sama.
-
Variabel
a
danb
sama-sama memiliki nilai5
. Dan ketika kita periksa, mereka equal dan identical. Alias interpreter python menaruh nilai dari kedua variabel tersebut pada lokasi yang sama dalam memory. -
Pada pasangan kedua, variabel
list_a
danlist_b
juga memiliki nilai yang sama. Setelah kita tes, ternyata mereka berdua tidak identical meskipun nilai mereka berdua equal. Artinya, interpreter python menaruh nilai dari 2 variabel tersebut pada tempat yang berbeda pada memory. -
Untuk pasangan yang terakhir, variabel
nama_a
dannama_b
yang bertipe data string, mereka berdua memiliki nilai yang equal dan juga identical.
Untuk mengetahui id atau lokasi penyimpanan suatu nilai pada python, kita bisa memanggil fungsi id()
.
>>> id('merah')
140442358081648
>>> id('merah')
140442358081776
>>>
Pada kode di atas, kita mendefinisikan nilai merah
sebanyak 2x, dan python menempatkan dua nilai tersebut di lokasi yang berbeda di dalam memory.
Contoh berikutnya untuk nilai integer:
>>> id(10)
140442360371792
>>> id(10)
140442360371792
>>>
Di dalam kode di atas, kita mendefinisikan nilai 10
sebanyak 2x, akan tetapi python menempatkan keduanya dalam posisi yang sama.
Operator bitwise
Operator terakhir yang akan kita bahasa dalam pertemuan ini adalah operator bitwise.
Operator bitwise adalah operator yang berhubungan dengan angka-angka biner.
Angka-angka biner adalah angka 0
dan 1
. Dan pada hakikatnya hanya ini lah angka yang dipahami oleh mesin.
Sebelum kita mulai, kita bisa mengetahui nilai biner dari suatu angka desimal dengan melakukan perintah format()
dengan parameter kedua berupa string '08b'
. Berikut ini demonstrasi menggunakan python mode interaktif.
>>> # biner dari angka 0
>>> print(format(0, '08b'))
00000000
>>> # biner dari angka 1
>>> print(format(1, '08b'))
00000001
>>> # biner dari angka 2
>>> print(format(2, '08b'))
00000010
>>> # biner dari angka 37
>>> print(format(37, '08b'))
00100101
>>>
Setelah sedikit perkenalan dengan binary, berikut ini adalah tabel yang menjelaskan tentang operator bitwise pada python.
Simbol | Nama | Tugas |
---|---|---|
& |
Bitwise AND | Mengembalikan bit 1 jika dua bit bernilai 1 |
| |
Bitwise OR | Mengembalikan bit 1 jika salah satu bit bernilai 1 |
^ |
Bitwise XOR | Mengembalikan bit 1 jika hanya satu bit saja yang bernilai 1 |
- |
Bitwise NOT | Membalikkan semua bit |
>> |
Bitwise right shift | Menggeser bit ke kanan dengan mendorong salinan digit sebelah kiri dan membiarkan digit sebalah kanan terlepas |
<< |
Bitwise left shift | Menggeser bit ke kiri dengan mendorong digit 0 dan membiarkan bit paling kiri terlepas |
Mari kita coba satu persatu dari kode operator bitwise di atas.
a = 1
b = 64
print('a =', a, '=', format(a, '08b'))
print('b =', b, '=', format(b, '08b'), '\n')
print('[and]')
print('a & b =', a & b)
print(format(a, '08b'), '&', format(b, '08b'), '=', format(a & b, '08b'), '\n')
print('[or]')
print('a | b =', a | b)
print(format(a, '08b'), '|', format(b, '08b'), '=', format(a | b, '08b'), '\n')
print('[xor]')
print('a ^ b =', a ^ b)
print(format(a, '08b'), '^', format(b, '08b'), '=', format(a ^ b, '08b'), '\n')
print('[not]')
print('~a ~b =', ~a, ~b)
print('~' + format(a, '08b'), '~' + format(b, '08b'), '=', format(~a, '08b'), format(~b, '08b'), '\n')
print('[shift right]')
print('a >> b =', a >> b)
print(format(a, '08b'), '>>', format(b, '08b'), '=', format(a >> b, '08b'), '\n')
print('[shift left]')
print('b << a =', b << a)
print(format(b, '08b'), '<<', format(a, '08b'), '=', format(b << a, '08b'), '\n')
Output dari program di atas adalah:
a = 1 = 00000001
b = 64 = 01000000
[and]
a & b = 0
00000001 & 01000000 = 00000000
[or]
a | b = 65
00000001 | 01000000 = 01000001
[xor]
a ^ b = 65
00000001 ^ 01000000 = 01000001
[not]
~a ~b = -2 -65
~00000001 ~01000000 = -0000010 -1000001
[shift right]
a >> b = 0
00000001 >> 01000000 = 00000000
[shift left]
b << a = 128
01000000 << 00000001 = 10000000
Pertemuan Selanjutnya
Alhamdulillah. Kita telah selesai mempelajari berbagai macam jenis operator pada bahasa pemrograman python. Mulai dari operator dasar seperti aritmatika, penugasan, logika, dan juga operator yang agak rumit seperti operator bitwise, hingga operator-operator yang hanya ada di python seperti operator keanggotaan dan operator identitas.
Pada pertemuan selanjutnya, insyaallah kita akan membahas tentang input pada python!
Nantikan terus tutorial-tutorial di Jago Ngoding, jangan lupa komentar, share, dan like fanspage kami, ya! π€πΌ
Terima kasih banyak ππΌπ
Referensi
[1] https://www.programiz.com/python-programming/operators – diakses tanggal 15 Mei 2021
[2] https://www.microfocus.com/documentation/silk-test/205/en/silktestclassic-help-en/STCLASSIC-F02D493B-ARITHMETICOPERATORS-REF.html – diakses tanggal 15 Mei 2021