Bab 2. Belajar Memprogram [Pemrograman Python Untuk Anak] – bagian 8 { If dan Else }

2.5. Bertanya dengan If dan Else

Dalam pemrograman, kita sering bertanya dengan  pertanyaan ya atau tidak, dan memutuskan untuk melakukan sesuatu tergantung jawabannya. Sebagai contoh, kita mungkin bertanya, “Apakah kamu lebih tua dari 20 tahun?” dan jika jawabannya ya, akan diberikan respon “Kamu terlalu tua!”. Pertanyaan pendek ini disebut Conditions, dan kita menggabungkan kondisi dan respon menjadi statement if. Kondisi bisa lebih rumit dari satu pertanyaan, dan statement if juga bisa dikombinasikan dengan banyak pertanyaan dan respon yang berbeda tergantung jawaban tiap pertanyaan yang diberikan. Dalam bab ini kamu akan belajar bagaimana menggunakan pernyataan if untuk membuat program.

Pernyataan if

Sebuah pernyataan if mungkin ditulis dalam Python seperti ini:

>>> age = 13
>>> if age > 20:
        print('You are too old!')

Sebuah pernyataan if jika dibuat dengan keyword if, diikuti dengan sebuah kondisi dan sebuah titik dua (:), seperti dalam if age > 20:. Baris dibawah kolom haruslah sebuah blok, dan jika jawaban dari pertanyaan ini adalah ya (atau true, dalam bahasa pemrograman python), perintah dalam blok akan dijalankan. Sekarang, mari kita tinjau bagaimana menulis blok dan kondisi.

Fig 2.5.1. Gambar anjing

Blok adalah Sekelompok Pernyataan Pemrograman

Sebuah blok kode program adalah seperangkat pernyataan pemrograman yang dikelompokkan. Sebagai contoh, ketika jika usia > 20: benar, Anda mungkin ingin melakukan lebih dari sekedar mencetak “Kau terlalu tua!” Mungkin Anda ingin mencetak beberapa kalimat pilihan lain, seperti ini:

>>> age = 25
>>> if age > 20:
        print('You are too old!')
        print('Why are you here?')
        print('Why aren\'t you mowing a lawn or sorting papers?')

Blok kode ini terdiri dari tiga pernyataan print/cetak yang dijalankan hanya jika kondisi usia > 20 ditemukan. Setiap baris di blok tersebut memiliki empat spasi di awal, bila Anda membandingkannya dengan pernyataan if di atasnya. Mari kita lihat kode itu lagi, dengan spasi yang terlihat:

>>> age = 25
>>> if age > 20:
    ▯▯▯▯print('You are too old!')
    ▯▯▯▯print('Why are you here?')
    ▯▯▯▯print('Why aren\'t you mowing a lawn or sorting papers?')

Dalam Python, whitespace, seperti sebuah tab (dimasukkan ketika kamu menekan tombol [tab]) atau sebuah spasi (dimasukkan ketika kamu menekan tombol spacebar), adalah berharga. Kode yang berada pada posisi yang sama (menjorok dengan sejumlah spasi dari margin kiri) adalah dikelompokkan menjadi sebuah blok, dan ketika kamu memulai dengan baris yang baru dengan spasi lebih banyak dari sebelumnya, kamu memulai sebuah blok baru yang merupakan bagian dari blok sebelumnya, seperti ini:

Fig 2.5.2. blok kode python

Kami mengelompokkan pernyataan bersama-sama ke dalam sebuah blok karena mereka saling berhubungan. Pernyataan harus dijalankan bersama-sama. Bila Anda mengubah lekukan/identasi, Anda biasanya membuat blok baru. Contoh berikut ini menunjukkan tiga blok terpisah yang dibuat hanya dengan mengubah lekukan.

Fig 2.5.3. blok kode python 2

Di sini, meskipun blok 2 dan 3 memiliki lekukan yang sama, mereka dianggap blok yang berbeda karena ada blok dengan lekukan yang kurang (lebih sedikit spasi) di antara mereka.

Untuk itu, sebuah blok dengan empat spasi pada satu baris dan enam spasi pada berikutnya akan menghasilkan kesalahan lekukan ketika Anda menjalankannya, karena Python mengharapkan Anda untuk menggunakan jumlah spasi yang sama untuk semua baris dalam blok. Jadi jika Anda memulai blok dengan empat spasi, Anda harus secara konsisten menggunakan empat spasi untuk blok tersebut. Berikut ini adalah contohnya:

>>> if age > 20:
    ▯▯▯▯print('You are too old!')
    ▯▯▯▯▯▯print('Why are you here?')

Saya membuat spasinya terlihat jadi kamu bisa melihat perbedaanya. Perhatikan bahwa baris ketiga memiliki enam spasi alih-alih menggunakan empat spasi.

Ketika kamu menjalankan kode ini, IDLE akan menyoroti baris dimana ia tampaknya bermasalah dengan blok merah dan menampilkan penjelasan pesan SintaxError :

>>> age = 25
>>> if age > 20:
        print('You are too old!')
          print('Why are you here?')
SyntaxError: unexpected indent

Python tidak mengharapkan untuk melihat dua spasi tambahan pada awal baris print yang kedua.

Catatan:

Gunakan spasi secara konsisten untuk membuat kode Anda lebih mudah dibaca. Jika Anda mulai menulis sebuah program dan menempatkan empat spasi pada awal blok, tetap menggunakan empat spasi pada awal blok lain dalam program Anda. Juga, pastikan untuk menjorokkan setiap baris di blok yang sama dengan jumlah spasi yang sama.

Kondisi Membantu Kita Membandingkan Sesuatu

Sebuah kondisi adalah pernyataan pemrograman yang membandingkan sesuatu dan memberitahu kita apakah kriteria yang ditetapkan dalam perbandingan adalah bernilai True (yes ) atau False (no). Sebagai contoh, kondisi  age > 10, dan ini adalah cara lain untuk mengatakan “Apakah nilai dari variabel age lebih besar dari 10?” Ini juga kondisi: hair_color == ‘mauve’, yang mana adalah cara lain untuk mengatakan, “Apakah nilai variabel hair_color adalah mauve?”

Kita menggunakan simbol di Python (disebut operators) untuk membuat kondisi yang kita inginkan, seperti sama dengan, lebih besar dari, dan lebih kecil dari. Tabel 5-1 mendaftar beberapa simbol kondisi.

Fig 2.5.4. tabel simbol kondisi

Misalnya, jika Anda berusia 10 tahun, kondisi your_age == 10 akan mengembalikan nilai True/Benar, jika tidak, ia akan mengembalikan nilai  False/Salah. Jika Anda berusia 12 tahun, kondisi your_age> 10 akan mengembalikan nilai Benar.

Peringatan:
Pastikan untuk menggunakan tanda sama dengan ganda (==) ketika mendefinisikan kondisi – sama dengan.

Mari kita coba beberapa contoh. Di sini, kita menetapkan usia kita sama dengan 10 dan kemudian menulis sebuah pernyataan kondisional yang akan mencetak “Kamu terlalu tua untuk lelucon saya!” Jika umur lebih besar dari 10:

>>> age = 10
>>> if age > 10:
        print('You are too old for my jokes!')

Apa yang terjadi ketika kita mengetikkan ini di IDLE dan menekan [enter]?

Tidak ada.

Karena nilai yang dikembalikan oleh usia/age tidak lebih besar dari 10, Python tidak mengeksekusi (menjalankan) blok print. Namun, jika kita telah menetapkan variabel usia/age sama dengan 20, pesan akan dicetak.

Fig 2.5.5. Gambar Badut

Sekarang mari kita mengubah contoh sebelumnya dengan menggunakan  “lebih besar dari atau sama dengan” (> =) sebagai  kondisinya:

>>> age = 10
>>> if age >= 10:
        print('You are too old for my jokes!')

Kamu seharusnya melihat “You are too old for my jokes!” Dicetak ke layar karena nilai minimum adalah sama dengan 10.
Selanjutnya, mari kita coba menggunakan kondisi “sama dengan” (==):

>>> age = 10
>>> if age == 10:
        print('What\'s brown and sticky? A stick!!')

Anda akan melihat pesan “‘What’s brown and sticky? A stick!!” dicetak ke layar.

Pernyataan if-then-else

Di samping menggunakan pernyataan if untuk melakukan sesuatu ketika kondisi terpenuhi (True), kita juga dapat menggunakan pernyataan if untuk melakukan sesuatu ketika kondisi tidak terpenuhi atau bernilai salah (False). Sebagai contoh, kita bisa mencetak satu pesan ke layar jika usia Anda adalah 12 dan pesan lainnya jika usianya bukan 12 (False).

Kuncinya di sini adalah dengan menggunakan pernyataan if-then-else, yang pada dasarnya mengatakan “Jika ada sesuatu yang benar, kemudian melakukan hal ini,. Atau jika salah, lakukan itu”

Mari kita membuat pernyataan if-then-else. Masukkan berikut kode ini ke shell:

>>> print("Want to hear a dirty joke?")
Want to hear a dirty joke?
>>> age = 12
>>> if age == 12:
        print("A pig fell in the mud!")
else:
        print("Shh. It's a secret.")

A pig fell in the mud!

Kamu seharusnya akan melihat tulisan “A pig fell in the mud!”.

Karena kita sudah mengatur variabel usia sama dengan 12, dan kondisi ini menanyakan apakah usia sama dengan 12? Anda akan melihat pesan pertama tercetak di layar. Sekarang coba mengubah nilai usia ke angka selain 12, seperti ini:

>>> print("Want to hear a dirty joke?")
Want to hear a dirty joke?
>>> age = 8
>>> if age == 12:
        print("A pig fell in the mud!")
else:
        print("Shh. It's a secret.")

Shh. It's a secret.

Kali ini, kamu akan melihat pesan kedua tercetak .

Pernyataan if dan elif

Kita dapat memperpanjang pernyataan if lebih jauh dengan elif (yang merupakan kependekan else-if). Sebagai contoh, kita dapat memeriksa apakah usia seseorang adalah 10, 11, atau 12 (dan seterusnya) dan program kita melakukan sesuatu yang berbeda berdasarkan jawaban yang diberikan. Pernyataan ini berbeda dengan pernyataan if-thenelse karena dengan pernyataan elif bisa digunakan lebih dari satu pernyataan elif:

Fig 2.5.6. penyataan elif

Dalam contoh ini, jika pernyataan pada baris kedua memeriksa untuk melihat apakah nilai variabel usia sama dengan 10 di (1). Pernyataan print yang berikutnya (2) di dijalankan jika usia sama dengan 10. Namun, karena kita telah menetapkan usia sama dengan 12, komputer melompat ke pernyataan elif di depannya (3) dan memeriksa apakah nilai usia/age adalah sama dengan 11. Dalam hal ini tenyata tidak, sehingga komputer melompat ke pernyataan elif di depannya (4) untuk melihat apakah usia sama dengan 12. Maka kali ini, komputer mengeksekusi perintah cetak pada blok dibawahnya (5).

Fig 2.5.7. gambar animasi penyataan elif

Mengkombinasikan Kondisi

Kamu bisa mengkombinasikan kondisi dengan menggunakan keyword and dan or, yang menghasilkan kode program yang simpel dan lebih pendek. Disini adalah contoh penggunaan or:

>>> if age == 10 or age == 11 or age == 12 or age == 13:
print('What is 13 + 49 + 84 + 155 + 97? A headache!')
else:
print('Huh?')

Dalam kode ini, jika salah satu kondisi pada baris pertama adalah benar (dengan kata lain, jika usia 10, 11, 12, atau 13), blok kode pada baris berikutnya dimulai dengan print akan dijalankan.

Jika kondisi di baris pertama tidak benar (yang lain), Python pindah ke blok di baris terakhir, menampilkan Huh? di layar.

Untuk mengecilkan contoh ini lebih jauh, kita bisa menggunakan kata kunci and, bersama dengan operator lebih besar dari atau sama dengan (>=) dan operator kurang dari atau sama dengan (<=), sebagai berikut:

>>> if age >= 10 and age <= 13:
print('What is 13 + 49 + 84 + 155 + 97? A headache!')
else:
print('Huh?')

Di sini, jika usia lebih besar dari atau sama dengan 10 dan kurang dari atau sama dengan 13, sebagaimana didefinisikan pada baris pertama dengan jika usia >= 10 dan usia <= 13:, blok kode yang diawali dengan print pada baris berikutnya akan dijalankan. Misalnya, jika nilai age adalah 12, maka “What is 13 + 49 + 84 + 155 + 97? A headache!” akan dicetak ke layar, karena 12 adalah lebih dari 10 dan kurang dari 13.

Variabel dengan tanpa nilai — None

Sama seperti kita dapat menetapkan angka, string, dan list ke variabel, kita juga dapat menetapkan tidak ada apa-apa, atau nilai kosong, untuk variabel. Dalam Python, nilai kosong disebut sebagai None, dan itu adalah tidak adanya nilai. Dan penting untuk dicatat bahwa Tidak ada nilai berbeda dari nilai 0 karena ini adalah tidak adanya nilai, bukan adanya nilai nomor dengan nilai 0. Satu-satunya nilai yang variabel miliki ketika kita memberikan nilai kosong None adalah tidak ada apa-apa. Berikut ini adalah contohnya:

>>> myval = None
>>> print(myval)
None

Menetapkan nilai Kosong untuk variabel adalah salah satu cara untuk me-reset ke kondisi aslinya, keadaan yang kosong. Menetapkan variabel ke None juga merupakan cara untuk mendefinisikan variabel tanpa pengaturan nilainya. Anda mungkin melakukan hal ini ketika Anda tahu Anda akan membutuhkan variabel kemudian dalam program Anda, tetapi Anda ingin mendefinisikan semua variabel Anda di awal. Programmer sering mendefinisikan variabel mereka pada awal program karena menempatkan mereka di sana membuatnya mudah untuk melihat nama-nama semua variabel yang digunakan oleh serangkaian kode.

Anda dapat memeriksa bahwa hal seperti itu ada dalam sebuah pernyataan if juga, seperti dalam contoh berikut:

>>> myval = None
>>> if myval == None:
print("The variable myval doesn't have a value")

The variable myval doesn't have a value

Hal ini berguna bila Anda hanya ingin menghitung nilai variabel jika memang belum pernah dihitung.

Perbedaan String dan Angka

Input pengguna adalah apa yang seseorang masukkan melalui keyboard, apakah itu karakter, panah ditekan atau tombol enter, atau apa pun. Input pengguna datang ke Python sebagai string, yang berarti bahwa ketika anda mengetik nomor 10 pada keyboard Anda, Python menyimpan angka 10 ke dalam variabel sebagai string, bukan angka.

Apa perbedaan antara nomor 10 dan string ’10 ‘? Keduanya terlihat sama kepada kami, dengan satu-satunya perbedaan adalah bahwa satu dikelilingi oleh tanda kutip. Tetapi untuk komputer, keduanya sangat berbeda.

Sebagai contoh, misalkan kita membandingkan nilai variabel usia/age dengan nomor dalam sebuah pernyataan if, seperti ini:

>>> if age == 10:
print("What's the best way to speak to a monster?")
print("From as far away as possible!")

 

Kemudian kita mengatur variabel age menjadi angka 10 :

>>> age = 10
>>> if age == 10:
print("What's the best way to speak to a monster?")
print("From as far away as possible!")
What's the best way to speak to a monster?
From as far away as possible!

 

Seperti yang Anda lihat, pernyataan print dijalankan.

Selanjutnya, kita menetapkan age ke string ’10 ‘(dengan tanda kutip), seperti ini:

>>> age = '10'
>>> if age == 10:
print("What's the best way to speak to a monster?")
print("From as far away as possible!")

 

Di sini, kode dalam pernyataan print tidak dijalankan karena Python tidak melihat nomor dalam tanda kutip (string) sebagai angka.

Untungnya, Python memiliki fungsi ajaib yang dapat mengubah string menjadi angka dan angka ke string. Sebagai contoh, Anda dapat mengkonversi string ’10’ menjadi angka dengan int:

>>> age = '10'
>>> converted_age = int(age)

 

 

Variabel converted_age sekarang akan terus bertipe angka dengan nilai 10.

Untuk mengkonversi angka menjadi string, gunakan fungsi str:

>>> age = 10
>>> converted_age = str(age)

 

Dalam hal ini, converted_age akan memegang string 10 bukan angka 10.

Ingat bahwa pernyataan if age == 10  yang tidak mencetak apa-apa ketika variabel ditetapkan sebagai string (age = ’10 ‘)? Jika kita mengubah variabel terlebih dahulu, kita mendapatkan hasil yang sama sekali berbeda:

>>> age = '10'
>>> converted_age = int(age)
>>> if converted_age == 10:
print("What's the best way to speak to a monster?")
print("From as far away as possible!")
What's the best way to speak to a monster?
From as far away as possible!

 

Tapi dengar ini: Jika Anda mencoba untuk mengubah nomor dengan titik desimal, Anda akan mendapatkan error karena fungsi int mengharapkan integer.

>>> age = '10.5'
>>> converted_age = int(age)
Traceback (most recent call last):
File "<pyshell#35>", line 1, in <module>
converted_age = int(age)
ValueError: invalid literal for int() with base 10: '10.5'

 

Sebuah ValueError adalah yang Python gunakan untuk memberitahu Anda bahwa nilai yang Anda telah coba untuk digunakan tidak tepat. Untuk mengatasinya, gunakan fungsi float bukan int. Fungsi float dapat menangani angka yang bukan bilangan bulat.

>>> age = '10.5'
>>> converted_age = float(age)
>>> print(converted_age)
10.5

 

 

Anda juga akan mendapatkan ValueError jika Anda mencoba untuk mengkonversi string yang tidak mengandung angka menjadi angka:

>>> age = 'ten'
>>> converted_age = int(age)
Traceback (most recent call last):
File "<pyshell#1>", line 1, in <module>
converted_age = int(age)
ValueError: invalid literal for int() with base 10: 'ten'

 

Apa Yang Telah Kamu Pelajari

Dalam bab ini, Anda belajar bagaimana bekerja dengan pernyataan if untuk membuat blok kode yang dijalankan hanya jika kondisi tertentu adalah benar. Anda melihat bagaimana untuk memperpanjang pernyataan if menggunakan Elif sehingga bagian yang berbeda dari kode akan dieaksekusi sebagai akibat dari kondisi yang berbeda, dan bagaimana menggunakan kata kunci else untuk mengeksekusi kodenya jika tidak ada kondisi yang bernilai benar. Anda juga belajar bagaimana untuk menggabungkan kondisi menggunakan kata kunci and dan or  sehingga Anda dapat melihat apakah nilai angkanya berada dalam kisaran tertentu, dan bagaimana mengubah string menjadi angka dengan int, str, dan float. Dan Anda menemukan bahwa tidak ada (None) memiliki makna dalam Python dan dapat digunakan untuk me-reset variabel ke kondisi awal, keadaan kosong mereka.

 

Iklan
Categories: Pemrograman Komputer, Python | Tag: | Tinggalkan komentar

Navigasi pos

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout / Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout / Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout / Ubah )

Foto Google+

You are commenting using your Google+ account. Logout / Ubah )

Connecting to %s

Blog di WordPress.com.

%d blogger menyukai ini: