Cara menggunakan ekspresi boolean python

Ketika melakukan operasi matematika, kita sering setelah dilakukan operasi hasil tersebut kita simpan dalam variabel. Di python ada jalan pintas untuk melakukan operasi dan melakukan assignment.

Program akan menjadi sangat menarik ketika kita bisa menguji kondisi dan merubah prilaku program berdasarkan hasil test dari kondisi tersebut. Inilah yang akan kita bahas pada bab ini.

5.1. Nilai dan Ekspresi dari Boolean

Nilai dari Boolean jika bukan true ya false, hanya dua itu, antara iya dan tidak, benar dan salah. Namanya diambil dari ahli matematika Inggris, George Boole, yang pertama kali merumuskan aljabar Boolean - yaitu beberapa aturan mengenai penalaran dan kombinasi dari dua nilai tersebut. Inilah asal muasal dan dasar dari semua logika komputer moderen yang kita kenal dan pakai saat ini.

Di Python, dua nilai Boolean itu dimanakan dengan

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9 dan
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0 (huruf besarnya wajib seperti yang terlihat), dan nama tipenya adalah bool.

>>> type(True)
<class 'bool'>
>>> type(true)
Traceback (most recent call last):
  File "<interactive input>", line 1, in <module>
NameError: name 'true' is not defined

Ekspresi Boolean merupakan ekspresi yang menilai dan menghasilkan hasil dalam bentuk nilai Boolean. Contohnya, operator

>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
1 akan menguji apakah dua nilai tersebut sama. Ia akan menghasilkan (atau memberikan - yield) sebuah nilai Boolean:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True

Pada pernyataan pertama, dua operand yang dinilai nilainya adalah sama, jadi ekspresi memberikan nilai

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9; namun pada pernyataan kedua, 5 tidak sama dengan 6, jadi kita dapat
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0.

Operator

>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
1 adalah satu dari enam operator perbandingan yang paling sering digunakan yang semuanya akan menghasilkan nilai
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
5; ini adalah daftar keenam operator tersebut:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y

Meskipun operasi tersebut mungkin tidak asing, simbol-simbol Python berbeda dengan simbol matematika. Kesalahan yang paling sering terjadi adalah menggunakan tanda sama dengan (

>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
6) daripada sama dengan dobel (
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
1). Ingat kalau
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
6 adalah operator pemberian nilai dan
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
1 adalah operator perbandingan. Juga, di Python tidak ada penulisan semacam
n * 0 == 0
0 atau
n * 0 == 0
1. Jadi menulisnya jangan sampai terbalik.

Sama seperti tipe-tipe lainnya yang telah kita lihat sejauh ini, nilai-nilai Boolean bisa diberikan ke variabel, dicetak, dll.

>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>

5.2. Operator-operator Logika

Tedapat tiga operator logika,

n * 0 == 0
2,
n * 0 == 0
3, dan
n * 0 == 0
4, yang memungkinkan kita untuk membangun ekspresi Boolean yang jauh lebih rumit. Semanticnya (arti / maksud) dari operator-operator tersebut adalah mirip dengan artinya dalam bahasa Inggris. Contoh,
n * 0 == 0
5 menghasilkan
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9 jika
n * 0 == 0
7 lebih besar dari 0 dan pada saat yang sama,
n * 0 == 0
7 juga lebih kecil dari 10.

n * 0 == 0
9 adalah
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9 jika salah satu dari kondisi tersebut bernilai
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9, yang berarti, jika
if x % 2 == 0:
    print(x, " is even.")
    print("Did you know that 2 is the only even number that is prime?")
else:
    print(x, " is odd.")
    print("Did you know that multiplying two odd numbers " +
                                         "always gives an odd result?")
2 bisa dibagi dengan 2
if x % 2 == 0:
    print(x, " is even.")
    print("Did you know that 2 is the only even number that is prime?")
else:
    print(x, " is odd.")
    print("Did you know that multiplying two odd numbers " +
                                         "always gives an odd result?")
3dengan 3. (Terus kalau misalnya 2 dan 3 keduanya bisa dibagi dua pada saat yang sama, apakah ekspresinya akan menghasilkan
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9atau
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0? Silahkan coba langsung pada Python interpreter mu.)

Yang terakhir, operator

n * 0 == 0
4gunanya untuk menegasi sebuah nilai Boolean (mengubah nilai menjadi kebalikannya), jadi
if x % 2 == 0:
    print(x, " is even.")
    print("Did you know that 2 is the only even number that is prime?")
else:
    print(x, " is odd.")
    print("Did you know that multiplying two odd numbers " +
                                         "always gives an odd result?")
7 bernilai
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9jika
if x % 2 == 0:
    print(x, " is even.")
    print("Did you know that 2 is the only even number that is prime?")
else:
    print(x, " is odd.")
    print("Did you know that multiplying two odd numbers " +
                                         "always gives an odd result?")
9 adalah
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0, yang artinya menjadi: jika
n * 0 == 0
7kurang dari
if BOOLEAN EXPRESSION:
    STATEMENTS_1        # Executed if condition evaluates to True
else:
    STATEMENTS_2        # Executed if condition evaluates to False
2.

Ekspresi yang letaknya paling kiri dari operator

n * 0 == 0
3akan dinilai terlebih dahulu: Jika hasilnya
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9, Python tidak (dan tentunya tidak perlu) menilai ekspresi di kanannya -- ini dinamakan dengan short-circuit evaluation.
Begitu juga dengan operator
n * 0 == 0
2, jika ekspresi paling kiri memberikan
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0, Python tidak menilai lagi ekspresi di kanan.

Jadi tidak ada penilain yang dijalankan dengan percuma.

5.3. Tabel Kebenaran

Tabel kebenaran adalah tabel kecil yang memungkinkan kita untuk melihat semua masukan yang ada, dan memberikan hasil dari operator logika. Karena operator

n * 0 == 0
2dan
n * 0 == 0
3masing-masing memiliki dua operand, maka hanya ada dua baris pada tabel kebenaran yang menjelaskan maksud dari
n * 0 == 0
2.

aba and bFalseFalseFalseFalseTrueFalseTrueFalseFalseTrueTrueTrue

Pada tabel kebenaran, kita kadang menggunakan T dan F sebagai singkatan untuk dua nilai Boolean: berikut adalah tabel kebenaran yang menjelaskan

n * 0 == 0
3:

aba or bFFFFTTTFTTTT

Operator logika yang ketiga,

n * 0 == 0
4, hanya menggunakan satu operand, jadi tabel kebenarannya hanya dua baris:

anot aFTTF

5.4. Menyederhanakan Ekspresi Boolean

Sekumpulan aturan untuk menyederhanakan dan mengatur ulang ekspresi-ekspresi dinamakan dengan aljabar. Contohnya, kita semua familiar dengan aturan aljabar di sekolah, seperti:

n * 0 == 0

Disini kita melihat aljabar yang berbeda -- aljabar Boolean -- yang menyediakan aturan-aturan untuk bekerja dengan nilai-nilai Boolean.

Pertama, operator

n * 0 == 0
2.

x and False == False
False and x == False
y and x == x and y
x and True == x
True and x == x
x and x == x

Berikut beberapa aturan-aturan terkait dari operator

n * 0 == 0
3:

x or False == x
False or x == x
y or x == x or y
x or True == True
True or x == True
x or x == x

Dua operator

n * 0 == 0
4membatalkan dirinya masing-masing:

not (not x) == x

5.5. Eksekusi Bersyarat/Kondisional (Conditional Execution)

Agar dapat menulis program yang berguna, kita selalu memerlukan kemampuan untuk mengecek kondisi dan demikian pula merubah prilaku program untuk menyesuaikan diri. Pernyataan kondisional memberikan kita kemampuan ini. Bentuk paling sederhana dari pernyataan if adalah:

if x % 2 == 0:
    print(x, " is even.")
    print("Did you know that 2 is the only even number that is prime?")
else:
    print(x, " is odd.")
    print("Did you know that multiplying two odd numbers " +
                                         "always gives an odd result?")

Ekspresi Boolean setelah pernyataan if dinamakan kondisi. Jika kondisi true, maka semua pernyataan bertakuk di bawahnya akan dieksekusi. Jika tidak, maka semua pernyataan yang bertakuk di bawah klausa

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5lah yang akan dieksekusi.

Flowchart dari pernyataan if dengan klausa else


Flowchart pernyataan if.png

Cara menggunakan ekspresi boolean python

Syntaks dari pernyataan

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6terlihat seperti ini:

if BOOLEAN EXPRESSION:
    STATEMENTS_1        # Executed if condition evaluates to True
else:
    STATEMENTS_2        # Executed if condition evaluates to False

Sama seperti pendefinisian fungsi pada bab sebelumnya dan pernyataan majemuk lainnya seperti

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
7, pernyataan
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6juga terdiri dari barsis header dan body. Baris header dimulai dengan keyword
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6diikuti dengan ekspresi Boolean dan diakhiri dengan titik dua (:).

Pernyataan yang bertakuk yang mengikutinya dinamakan dengan block. Pernyataan yang paling pertama yang tidak bertakuk menandakan akhir dari block.

Masing-masing pernyataan di dalam block pertama dari pernyataan dieksekusi untuk menentukan apakan ekspresi Boolean bernilai

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9. Semua pernyataan yang ada di block pertama akan dilewati jika ekspresi Boolean bernilai
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0, dan kemudian semua pernyataan pada klausa
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5lah yang akan dieksekusi.

Tidak ada batasan seberapa banyak pernyataan yang bisa masuk pada kedua klausa dari pernyataan

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6, tapi setidaknya harus ada satu pernyataan pada masing-masing block. Terkadang, akan sangat berguna untuk memiliki section tanpa pernyataan (biasanya sebagai penanda tempat, atau perancah, untuk kode yang kita belum tulis). Pada kasus seperti itu, kita bisa menggunakan pernyataan
if x < 0:
    print("The negative number ",  x, " is not valid here.")
    x = 42
    print("I've decided to use the number 42 instead.")

print("The square root of ", x, "is", math.sqrt(x))
4, yang tidak akan melakukan apapun kecuali hanya sebagai placeholder.

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass

5.6. Menghilangkan klause else

Flowchart dari pernyataan if tanpa menggunaka klausa else


Flowcart pernyataan if tanpa else.png

Cara menggunakan ekspresi boolean python


Bentuk lain dari pernyataan

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6adalah
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6yang klausa
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5-nya dihilangkan seluruhnya. Pada kasus ini, ketika kondisi bernilai
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9, pernyataan akan dieksekusi, jika tidak flow of execution berlanjut ke pernyataan setelah
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6.

if x < 0:
    print("The negative number ",  x, " is not valid here.")
    x = 42
    print("I've decided to use the number 42 instead.")

print("The square root of ", x, "is", math.sqrt(x))

Pada kasus ini, fungsi print yang mengeluarkan akar pangkat dua adalah berada setelah

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6-- tanda berakhirnya sebuah pernyataan if bukan karena kita meninggalkan baris kosong, tapi karena bagaimana kode setelahnya ditakuk / indentasinya. Catat juga kalau pemanggilan fungsi
if x < y:
    STATEMENTS_A
elif x > y:
    STATEMENTS_B
else:
    STATEMENTS_C
1 akan menghasilkan error kalau kita tidak memiliki pernyataan
if x < y:
    STATEMENTS_A
elif x > y:
    STATEMENTS_B
else:
    STATEMENTS_C
2, biasanya diletakan pada bagian atas dari script kita.

Peristilahan Python

Dokumentasi Python terkadang menggunakan istilah suite of statement untuk merujuk pada apa yang kita namai disini dengan sebutan block. Mereka merujuk ke hal yang sama, dan kerana kebanyakan bahasa lainnya dan ilmuan komputer menggunakan kata block, maka kita tetap menggunakannya.
Perhatikan juga bahwa

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5bukanlah pernyataan. Pernyataan
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6memiliki dua klausa, salah satu darinya (yang mana bersifat opsional) adalah klausa
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5.

5.7. Pengkondisian Berantai (Chained conditionals)

Terkadang terdapat kemungkinan yang jumlahnya lebih dari dua dan kita memerlukan lebih dari dua cabang. Salah satu cara untuk mengekspresikan perhitungan seperti itu adalah pengkondisian berantai:

if x < y:
    STATEMENTS_A
elif x > y:
    STATEMENTS_B
else:
    STATEMENTS_C

Flowchart dari pengkondisian berantai


Flowchart pengkondisian berantai.png

Cara menggunakan ekspresi boolean python

if x < y:
    STATEMENTS_A
elif x > y:
    STATEMENTS_B
else:
    STATEMENTS_C
6adalah singkatan dari
if x < y:
    STATEMENTS_A
elif x > y:
    STATEMENTS_B
else:
    STATEMENTS_C
7. Sama dengan yang sebelumnya, disini satu cabang akan dieksekusi. Tidak ada batasan jumlah seberapa banyak pernyataan
if x < y:
    STATEMENTS_A
elif x > y:
    STATEMENTS_B
else:
    STATEMENTS_C
6 bisa digunakan, tapi untuk
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5hanya boleh ada satu dan harus ditempatkan paling akhir dari cabang pernyataan:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
0

Setiap kondisi dicek sesuai urutan. Jika yang pertama false, yang berikutnya akan dicek, dan begitu seterusnya. Jika satu diantaranya bernilai true, cabang terkait akan dieksekusi, dan pernyataannya berhenti sampai disitu. Bahkan jika lebih dari satu kondisi true, hanya cabang yang kondisinya true duluan yang akan dieksekusi.

5.8. Pengkondisian Bersarang (Nested Conditional)

Setiap pengkondisian juga bisa disarangkan (nested) satu dengan yang lain. (Ini temanya sama dengan tema dari sifat penyusunan). Kita bisa menulis contoh sebelumnya menjadi seperti berikut:

Flowchart dari pengkondisian bersarang


Pengkondisian Bersarang.png

Cara menggunakan ekspresi boolean python

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
1

Pengkondisian terluar memiliki dua cabang. Cabang kedua berisi pernyataan

if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6lainnya yang juga memiliki dua cabangnya sendiri. Kedua cabang-cabang tersebut bisa berisi pernyataan pengkondisian juga.

Meskipun indentasi dari pernyataan membuat strukturnya terlihat jelas, tapi pengkondisian bersarang dengan cepat menjadi sulit untuk kita baca. Umumnya, sangat disarankan untuk menghindari penggunaan pengkondisian bersarang jika dimungkinkan.

Operator-operator logika umumnya menyediakan cara untuk menyederhanakan pernyataan kondisional bersarang. Sebagain contoh, kita bisa menulis ulang kode berikut menggunakan satu pengkondisian:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
2

Fungsi

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
01 dipanggil hanya jika kita membuat dirinya bisa melewati kedua kondisi, jadi daripada menggunakan kode diatas yang menggunakan dua pernyataan
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
6masing-masing dengan kondisi sederhana, kita bisa membuat kondisi yang sedikit lebih kompleks menggunakan operator
n * 0 == 0
2. Sekarang setelah ditulis ulang, kita bisa menyederhanakan kode diatas menjadi seperti berikut:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
3

5.9. Pernyataan >>> 5 == (3 + 2) # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2? True >>> 5 == 6 False >>> j = "hel" >>> j + "lo" == "hello" True04

Pernyataan

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
04, dengan atau tanpa sebuah nilai, bergantung pada apakah fungsinya fruitful atau void, yang memungkinkan kita untuk mengakhiri eksekusi dari sebuah fungsi (atau ketika) kita mencapai akhir dari fungsi. Satu alasan untuk menggunakan early return (return lebih awal) adalah jika kita mendapatkan sebuah kondisi error.

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
4

Fungsi

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
06 memiliki sebuah parameter yang dinamakan
n * 0 == 0
7. Hal pertama yang ia lakukan adalah mengecek apakah
n * 0 == 0
7kurang dari atau sama dengan 0, yang dalam hal ini menampilkan persan error lalu menggunakan
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
04untuk keluar dari fungsi. Flow of execution secara langsung kembali ke pemanggil, tanpa mengeksekusi sisa baris dari fungsi tersebut.

5.10. Logika Kebalikan

Masing-masing operator relasional memiliki sebuah kebalikan: contoh, anggap kita bisa mendapatkan SIM ketika umur kita lebih dari 17 tahun, kita tidak bisa mendapatkan SIM jika kurang dari 17.

Perhatikan kalau kebalikan dari

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
10 adalah
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
11 .

operatorlogical opposite==!=!===<>=<=>><=>=<

Memahami kebalikan dari logika tersebut memungkinkan kita sewaktu-waktu untuk menyingkirkan operator

n * 0 == 0
4. Operator
n * 0 == 0
4sering menjadi cukup sulit untuk dibaca pada kode computer, dan perhatian kita biasanya menjadi lebih jernih jika kita menghilangkannya.

Contoh, jika kita menulis di Python:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
5

itu tentu akan menjadi lebih bersih jika menggunakan hukum penyederhanaan, dan merubahnya menjadi:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
6

Dua hukum penyederhanaan yang powerful (dinamakan hukum de Morgan) yang sering menjadi sangat berguna ketika berurusan dengan ekspresi Boolean yang rumit seperti berikut:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
7

Contohnya, anggap kita bisa membunuh naga hanya jika pedang lightsabre kita terisi dayanya hingga 90% atau lebih, dan kita punya 100 atau lebih unit energi pada perisai pelindung kita. Kita menemukan pecahan kode Python berikut pada permainan:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
8

hukum de Morgan bersama-sama dengan logika kebalikan akan memungkinkan kita membuat ulang kondisi menjadi lebih mudah dimengerti seperti kode berikut:

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
9

Kita juga bisa menyingkirkan

n * 0 == 0
4dengan menyapu bagian
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
15dan
if True:          # This is always True,
    pass          # so this is always executed, but it does nothing
else:
    pass
5dari pengkondisian. Jadi ini adalah versi ketiganya, juga sama:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
0

Versi ini tentunya yang terbaik dari ketiganya, karena ia sangat dekat dengan pernyataan bahasa Indonesia yang mengawali. Kejelasan dari kode yang kita buat (untuk orang lain) semestinya selalu diberikan prioritas tinggi, sehingga memudahkan mereka untuk melihat dan mengerti apa kode yang kita tulis lakukan.

Seiring dengan perkembangan skil pemrograman yang kita miliki, kita akan menyadari kalau kita memiliki lebih dari satu cara untuk memecahkan masalah apapaun. Jadi program yang bagus itu pasti sebelumnya didesain terlebih dahulu. Pada proses desain tersebut, kita membuat pilihan yang menghargai kejelasan, kesederhanaan, dan elegansi. Bidang pekerjaan yang bernama arsitek perangkat lunak (software architect) menjelaskan banyak tentang apa yang kita lakukan -- kita adalah para arsitek yang merekayasa produk kita sehingga memiliki keseimbangan dalam kecantikan, fungsionalitas, kesederhanaan dan kejelasan dalam kreasi kita.

Tips

Setelah program kita bekerja, kita harus bermain-main sedikit untuk mempolesnya lagi. Menulis komentar yang baik. Pikirkan mengenai apakah kodenya harus lebih jelas dengan nama variabel yang lain. Bisakah kita melakukannya dengan lebih elegan? Apakah lebih baik kita menggunakan fungsi? Bisakan kita menyederhanakan pengkondisiannya?

Kita memikirkan kode yang kita buat sebagai kreasi kita, sebuah hasil seni kita! Kita membuatnya dengan sebaik-baiknya.

5.11. Konversi Tipe

Kita pertama kali melihatnya pada bab awal. Melihatnya lagi ketika kita sudah jauh move on sampai disini tidak akan menyakiti kok! hehe

Kebanyakan tipe pada Python hadir dengan fungsi built-in yang mencoba untuk mengkonversi nilai dari tipe lain menjadi tipenya sendiri. Fungsi

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
17, sebagai contoh, menerima nilai apapun dan mengkonversinya menjadi sebuah integer, jika mungkin, jika tidak ya si Python komplain:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
1

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
17juga bisa mengkonversi nilai floating-point menjadi integer, tapi ingat bahwa ia akan menghilangkan bagian fraksionalnya:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
2

Fungsi

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
19mengkonversi integer dan string menjadi bilangan floating-point:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
3

Mungkin terlihat aneh kalau Python membedakan integer bernilai 1 dan nilai floating point bernilai 1.0. Mereka memang merepresentasikan bilangan yang sama, tapi mereka memiliki tipe yang berbeda. Alasannya adalah karena mereka direpresentasikan berbeda di dalam komputer.

Fungsi

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
20mengkonversi argumen apapun yang ia terima menjadi tipe
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
21:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
4

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
20bisa bekerja dengan nilai apapun dan mengkonversinya menjadi string. Seperti yang dijelaskan sebelumnya,
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9adalah nilai Boolean; dan
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
24hanyalah nama variabel biasa, dan tidak didefinisikan disini, jadi kita mendapatkan error.

5.12. Sebuah Grafik Bar dengan Turtle

Turtle memliki banyak kekuatan lain yang lebih besar daripada apa yang sudah pernah kita lihat. Dokumentasi lengkapnya bisa dilihat di http://docs.python.org/py3k/library/turtle.html atau melalui PyScripter, gunakan Help dan cari modul turtle.

Berikut beberapa trik baru yang bisa digunakan pada turtle kita:

  • Kita bisa menyuruh turtle untuk menampilkan teks pada canvas pada posisinya sekarang. Metode untuk melakukannya adalah
    >>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
    True
    >>> 5 == 6
    False
    >>> j = "hel"
    >>> j + "lo" == "hello"
    True
    25.
  • Kita bisa mewarnai bentuk (lingkaran, setengah lingkaran, segitiga, dll.) dengan warna apapun. Ini memiliki dua langkah proses. Pertama kita memanggil metode
    >>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
    True
    >>> 5 == 6
    False
    >>> j = "hel"
    >>> j + "lo" == "hello"
    True
    26, lalu kemudian kita menggambar bentuknya, dan kemudian memanggil
    >>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
    True
    >>> 5 == 6
    False
    >>> j = "hel"
    >>> j + "lo" == "hello"
    True
    27.
  • Sebelumnya kita mengatur warna dari turtle kita -- kita sekarang bisa juga mengatur warna isiannya, yang mana tidak harus sama dengan warna turtle dan pensilnya. Kita menggunakan
    >>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
    True
    >>> 5 == 6
    False
    >>> j = "hel"
    >>> j + "lo" == "hello"
    True
    28 untuk membuat turte menggambar menggunakan biru, dan mewarnainya dengan merah.

Oke, jadi bisakah kita membuat

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
29menggambar sebuah grafik batangan? Mari kita mulai dengan beberapa data yang akan dibuatkan grafiknya,

xs = [48, 117, 200, 240, 160, 260, 220]

Berkaitan dengan pengukuran masing-masing data, kita akan menggambar sebuah persegi panjang dengan panjang dari data tersebut dan lebar yang telah ditetapkan.

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
5

tess_bar_1.png

Cara menggunakan ekspresi boolean python

Oke, masih belum begitu mengesankan, tapi bisa jadi start yang bagus! Disini, hal pentingnya adalah mental pembilahan, atau bagaimana kita memecah masalah menjadi pecahan-pecahan yang lebih kecil. Bilahan kita adalah menggambar satu batang, dan membuat fungsi untuk melakukannya. Lalu, untuk grafik keseluruhannya, kita secara berulang memanggil fungsi yang kita buat tadi menggunakan perulangan.

Selanjutnya, pada bagian atas dari masing-masing batang, kita akan mencetak nilai dari datanya. Kita akan melakukan ini pada body dari

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
30, dengan menambahkan
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
31 sebagai baris baru ketiga dari body. Kita menempatkan sedikit spasi di depan dari angkanya, dan merubah angka tersebut menjadi string. Jika tanpa spasi ekstra ini tulisannya akan menempel ke batang di sebalah kirinya. Hasilnya terlihat seperti gambar berikut:

tess_bar_2.png

Cara menggunakan ekspresi boolean python

Dan sekarang kita akan menambahkan dua baris untuk mewarnai setiap batang. Program final kita akan terlihat seperti ini:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
6

Hasilnya adalah seperti ini, yang tentu lebih memuaskan:

tess_bar_3.png

Cara menggunakan ekspresi boolean python

Hmmm.. Andai batangnya tidak terhubung satu sama lain di bagian bawah. Kita akan perlu mengangkat pensilnya sementara membuat jarak antara batang. Tugas mu untuk membuatnya menjadi lebih cantik!

5.13. Glosarium

block

Sekumpulan pernyataan berurutan dengan indentasi yang sama.

body

block dari pernyataan-permnyataan di dalam pernyataan majemuk yang mengikuti headernya.

Boolean algebra (Aljabar Boolean)

Beberapa aturan untuk mengatur ulang dan pemikiran mengenai ekspresi Boolean.

Boolean value (Nilai Boolean)

Hanya ada dua nilai Boolean: True dan False. Nilai Boolean dihasilkan ketika ekspresi Boolean dinilai oleh Python interpreter. Mereka memiliki tipe

>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
5.

branch

Salah satu dari jalur yang bisa dilalui oleh flow of execution yang ditentukan oleh eksekusi pengkondisian.

chained conditional (pengkondisian berantai)

Cabang pengkondisian dengan kemungkinan arah flow of execution lebih dari satu. Di Python pengkondisian berantai ditulis dengan pernyataan if ... elif ... else.

comparison operator (operator perbandingan)

Enam operator yang membandingkan dua nilai: ==, !=, >, <, >=, dan <= .

condition (kondisi)

Ekspresi Boolean dalam sebuah pernyataan pengkondisian yang menentukan cabang yang mana yang akan dieksekusi.

conditional statement (pernyataan pengkondisian)

Sebuah pernyataan yang mengendalikan arah flow of execution yang bergantung pada beberapa kondisi. Di Python kata kunci if, elif, dan else digunakan untuk pernyataan pengkondisian.

logical operator (operator logika)

Salah satu dari operator yang mengkombinasikan ekspresi Boolean: and, or, dan not.

nesting (persarangan)

Salah satu struktur program yang berada di dalam struktur yang lainnya, seperti pernyataan pengkondisian yang berada di dalam cabang dari pernyataan pengkondisian lainnya.

prompt

Isyarat visual yang memberitahu pengguna bahwa sistem siap untuk menerima data input.

truth tabel (tabel kebenaran)

Tabel ringkas dari nilai Boolean yang bisa menjelaskan makna atau arti dari sebuah operator.

type conversion (konversi tipe)

Pemanggilan fungsi eksplisit yang menerima nilai dari satu tipe dan menghitung nilai terkait dari tipe lainnya.

wrapping code in function (membungkus kode ke dalam fungsi)

Proses menambahkan header fungsi dan parameter hingga menjadi urutan pernyataan program biasanya dinamakan dengan "wrapping the code in a function". Proses ini sangat berguna ketika pernyataan program digunakan berulang-ulang. Ia juga bahkan jauh lebih berguna ketia ia memungkinkan programer untuk mengekspresikan mental pembilahannya, dan bagaimana mereka memecah sebuah masalah yang kompleks menjadi pecahan-pecahan kecil.

5.14. Latihan

1. Asumsikan hari dalam seminggu 0,1,2,3,4,5,6 mulai dari Minggu hingga Sabtu. Tulis fungsi yang menerima nomer hari, dan mengembalikan nama hari (sebuah string).

2. Kamu sedang pergi berlibur ke tempat yang sangat indah dan menyenangkan (anggap saja ke penjara, jika tidak suka latihan happy-happy) keluar pada hari nomer 3 (hari Rabu). Kamu pulang kerumah setelah 137 kali tidur. Tulis versi umum dari program yang menanyakan nomer awal hari, dan lamanya kamu tinggal, dan ia akan memberitahu mu nama dari hari dalam seminggu kamu akan kembali pulang.

3. Berikan logika kebalikan dari kondisi berikut

  1. a > b
  2. a >= b
  3. a >= 18 and day == 3
  4. a >= 18 and day != 3

4. Apa hasil penilaian dari ekspresi berikut?

  1. 3 == 3
  2. 3 != 3
  3. 3 >= 4
  4. not (3 < 4)

5. Lengkapi tabel keberanan ini:

p

q

r

(not (p and q)) or r

F

F

F

?

F

F

T

?

F

T

F

?

F

T

T

?

T

F

F

?

T

F

T

?

T

T

F

?

T

T

T

?

6. Tulis fungsi yang menerima nilai ulangan, dan mengembalikan string -- peringkat untuk nilai ulangan tersebut -- berdasarkan skema berikut:

Nilai

Peringkat

>= 75

First

[70-75)

Upper Second

[60-70)

Second

[50-60)

Third

[45-50)

F1 Supp

[40-45)

F2

< 40

F3

Kurung siku dan kurung bulat menandakan interval tertutup dan terbuka. Bilangan termasuk interval tertutup, dan interval terbuka mengecualikan bilangan. Jadi 39.99999 mendapatkan peringkat F3, tapi 40 mendapatkan peringkat F2. Asumsikan:

xs = [83, 75, 74.9, 70, 69.9, 65, 60, 59.9, 55, 50, 49.9, 45, 44.9, 40, 39.9, 2, 0]

Uji fungsi yang kamu buat dengan mencetak nilai dan peringkat dari semua elemen dalam list.

7. Modifikasi grafik batang turtle tadi sehingga pensilnya diangkat ketika membuat jarak antar batang.

8. Modifikasi program grafik batang dengan turtle tadi sehingga batang dengan nilai 200 atau lebih diwarnai dengan merah, nilai antara [100 dan 200] diwarnai kuning, dan batang yang merepresentasikan nilai dibawah 100 diwarnai hijau.

9. Pada program grafik batang tadi, apa yang kamu harapkan terjadi jika satu atau lebih nilai data dalam list bernilai negatif? Ayo coba. Ubah programnya sehingga ketika ia mencetak nilai teks untuk batang negatif, ia mencetak teksnya dibagian bawah dari batang.

10. Tulis fungsi dengan nama

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
33 yang mana menerima panjang dua sisi dari segitiga siku-siku, dan mengembalikan panjang dari hypotenuse. (Petunjuk:
>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
34 akan mengembalikan akar pangkat dua.)

11. Tulis fungsi dengan nama

>>> 5 == (3 + 2)   # Apakah lima sama dengan 5 yang merupakan hasil dari 3 + 2?
True
>>> 5 == 6
False
>>> j = "hel"
>>> j + "lo" == "hello"
True
35 yang menerima panjang ketiga sisi dari sebuah segita, dan akan menentukan apakan segitiga itu siku-siku. Asumsikan bahwa argumen ketiga dari fungsi harus selalu sisi yang paling panjang. Ia akan mereturn
x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
9jika segitiganya adalah siku-siku, atau
>>> umur = 18
>>> cukup_umur_untuk_buat_sim = umur >= 17
>>> print(cukup_umur_untuk_buat_sim)
True
>>> type(cukup_umur_untuk_buat_sim)
<class 'bool'>
0jika tidak.

Petunjuk: Aritmatika floating-point tidaklah selalu akurat, jadi sangat tidak aman untuk menguji bilangan floating-point berdasarkan kualitas. Jika seorang programer yang baik ingin mengetahui apakah

n * 0 == 0
7sama dengan atau mendekati y, mereka mesti menggunakan kode semacam ini:

x == y               # Menghasilkan True jika ... x adalah sama dengan y
x != y               # ... x adalah tidak sama dengan y
x > y                # ... x adalah lebih besar dari y
x < y                # ... x adalah lebih kecil dari y
x >= y               # ... x adalah lebih besar atau sama dengan y
x <= y               # ... x adalah lebih kecil atau sama dengan y
7

12. Kembangkan program diatas sehingga setiap sisi bisa dimasukan ke fungsi dalam urutan apapun.

13. Jika kamu tertarik dan penasaran dengan asalan kenapa aritmatika floating-point terkadang tidak akurat, pada selembar kertas, bagi 10 dengan 3 dan tulis hasilnya dalam desimal. Kamu akan menyadari itu tidak akan ada habisnya, jadi kamu akan perlu kertas yang panjangnya tidak terhingga. Representasi dari bilangan pada memori komputer atau pada kalkulator mu memiliki masalah yang sama: memori itu terbatas, dan beberapa digit bisa dan harus dihilangkan. Jadi ketidakakuratan kecil akan terjadi. Coba skrip berikut:

Apa itu Boolean pada Python?

Boolean adalah tipe data Python yang hanya bisa diisi oleh dua nilai, yaitu True dan False.

Apa yang dimaksud Boolean dalam pemrograman?

Boolean adalah jenis tipe data selanjutnya yang perlu kamu kuasai sebelum terjun ke dunia pemrograman. Jenis data type ini biasanya digunakan untuk mewakili nilai yang benar dan salah dalam data. Umumnya, nilai yang salah (false) dan benar (true) direpresentasikan dengan angka 0 (false) dan 1 (true).

Apa yang menandakan akhir dari blok pernyataan atau suite di Python?

Peningkatan indentasi muncul setelah pernyataan tertentu; penurunan indentasi menandakan akhir dari blok saat ini.

Apa itu statement Python?

Statement adalah instruksi atau kalimat perintah yang diberikan dalam beberapa baris untuk dieksekusi oleh komputer. Pada bahasa Python, penulisan tidak diakhiri dengan tanda titik-koma. Akan tetapi, jika kita ingin menuliskan beberapa statement dalam satu baris maka kita harus memisahkannya dengan titik-koma.