Salah satu yang menjadi dasar setiap program adalah logika. Python menyediakan empat set operasi logika.
- operator identitas
- operator pembanding
- operator member
- operator logika
1. Operator Identitas
Semua variable dalam Python adalah refernsi objek, dan kadang kita ingin mengetahui apakah dua atau lebih refersi objek itu merupakan objek yang sama. Operator 'is' merupakan operato binary yang menghasilkan 'True' bila objek yang sebelah kiri merupakan objek referen dengan objek yang sebelah kanan.
- >>> a=[1,2,3,'hallo']
- >>> b=[1,2,3,'hallo']
- >>> a is b
- False
- >>> b=a
- >>> a is b
- True
- >>> b is a
- True
- >>>
Pada contoh diatas data variable a (baris 1) dan variable b (baris 2) adalah sama, tetapi data yang ada pada variable b bukanlan refernsi objek dari data variable a. Sehingga a is b (baris 3) menjadi 'False'. Apa yang terjadi disini? varible a dan variable b memiliki lokasi alamat memori yang berbeda, karena kita membuat data tersebut satu-satu, sehinggal Python menyimpan data tersebut dengan dua alamat memory (walaupun isi data adalah sama). Sedangkan pada baris 5, b=a, kita membuat objek referensi pada alamat a. Bila kita ingin membandingkan data, jangan menggunakan perintah 'is'.
Keuntungan menggunakan refernsi objek adalah sangat cepat, Python tidak perlu menganalisa data satu per satu, Operator 'is' hanya membandingkan alamat memory pada objek, alamat yang sama adalah objek yang sama.
Penggunaan operator 'is' biasanya untuk membandingkan data yang nilainya 'None'.
Python juga menyediakan opertor pembanding binary, yaitu
Python memberikan tiga opeartor logika yaitu, 'and', 'or ', dan 'not'. Operator 'and' dan 'or' memberikan hasil bukan boolean, kecuali merupakan operasi boolean.
Keuntungan menggunakan refernsi objek adalah sangat cepat, Python tidak perlu menganalisa data satu per satu, Operator 'is' hanya membandingkan alamat memory pada objek, alamat yang sama adalah objek yang sama.
Penggunaan operator 'is' biasanya untuk membandingkan data yang nilainya 'None'.
- >>> a='satu hal'
- >>> b=None
- >>> a is None
- False
- >>> a is not None
- True
- >>> b is None
- True
- >>> b is not None
- False
- >>>
Untuk membalikan identitas kita menpergunakan 'is not'.
2. Operator Pembanding
Python juga menyediakan opertor pembanding binary, yaitu
- ' < ' (kurang dari),
- ' <= ' (kurang dari atau sama-dengan),
- ' > ' (lebih dari),
- ' >= '(lebih dari atau sama-dengan),
- ' == ' (double sama dengan equal sama-dengan), dan
- ' =! ' (sama dengan tanda seru, equal tidak sama-dengan)
Operator ini yang membandingkan nilai objek.
- >>> a=[1,2,3]
- >>> b=[2,3,4]
- >>> a > b
- False
- >>> a<b
- True
- >>> a<=b
- True
- >>> a != b
- True
- >>> c=[2,3,4]
- >>> d=b
- >>> b is c
- False
- >>> b is d
- True
- >>> b == c
- True
- >>>
Pada baris 17, walaupun b dan c adalah objek yang berbeda tetapi memiliki nilai yang sama, sehingga Python mengeluakan hasil 'True'. Hati-hati bila kita menggunakan pembandingan ini bila nilai dari variable adalah unicode, sehingga penggunaanya lebih komplek.
Perhatikan contoh dibawah ini:
3.Operator Member
Perhatikan contoh dibawah ini:
- >>> a,b,c=2,2,b
- >>> a
- 2
- >>> b
- 2
- >>> c
- 2
- >>> a==b
- True
- >>> a is b
- True
- >>> b is c
- True
- >>>
Pada variable a, kita membuat variable sendiri, dan variable c adalah refernsi dari variable b, dan pada baris ke 8 (a == b) menghasilkan 'True', ini disebabkan Python menggunakan objek yang sama secara otomatis, ini bisa terjadi pada angka dan string, walaupun kita membuat secara terpisah variable a dan b, juga karena pertimbangan harga sama dan tidak dapat dimodifikasi.
3.Operator Member
Untuk data yang merupakan baris atau kumpulan data seperti list, strings, dan tuples, kita bisa mengujinya dengan operator 'in' dan untuk nilai yang bukan member dari data menggunakan 'not in'.
- >>> a=(1,2,3,'hello', 'hi')
- >>> 1 in a
- True
- >>> 6 in a
- False
- >>> 'hello' in a
- True
- >>> hi in a
- Traceback (most recent call last):
- File "<pyshell#41>", line 1, in <module>
- hi in a
- NameError: name 'hi' is not defined
- >>> 'hi' in a
- True
- >>> 6 not in a
- True
- >>>
Operator 'in' dan 'not in' ini biasa digunakan untuk dictionaries dan set. Operator ini akan berjalan lambat bila digunakan oleh lists dan tuple yang datanya mencapai ribuan (mungkin ribuan masih 'ok' yang pasti puluhan ribu akan terasa pelannya).
- >>> a='Begitu banyak hal menakjubkan yang terjadi dalam masa kecil para anggota Laskar Pelangi. Sebelas orang anak Melayu Belitong yang luar biasa ini tak menyerah walau keadaan tak bersimpati pada mereka. Tengoklah Lintang, seorang kuli kopra cilik yang genius dan dengan senang hati bersepeda 80 kilometer pulang pergi untuk memuaskan dahaganya akan ilmu'
- >>> 'orang' in a
- True
- >>> 'a' in a
- True
- >>> 'anyak' in a
- True
- >>>
4.Operator Logika
Python memberikan tiga opeartor logika yaitu, 'and', 'or ', dan 'not'. Operator 'and' dan 'or' memberikan hasil bukan boolean, kecuali merupakan operasi boolean.
- >>> a=1
- >>> b=2
- >>> a and b
- 2
- >>> a or b
- 1
- >>> b and a
- 1
- >>> b or a
- 2
- >>>
Pada dasarnya opeator 'and' dalam bentuk boolean adalah untuk memberikan hasil sebagai berikut:
Operator 'or' :
Dan operator 'not' adalah kebalikanya:
a
|
b
|
Hasil
|
0
|
0
|
0
|
0
|
1
|
0
|
1
|
0
|
0
|
1
|
1
|
1
|
Operator 'or' :
a
|
b
|
Hasil
|
0
|
0
|
0
|
0
|
1
|
1
|
1
|
0
|
1
|
1
|
1
|
1
|
Dan operator 'not' adalah kebalikanya:
a
|
Hasil
|
0
|
1
|
1
|
0
|
No comments:
Post a Comment