Conditional Statement

Membuat program erat hubungannya dengan mengevaluasi suatu kondisi, dan memutuskan aksi apa yang dilakukan saat menemukan kondisi tersebut. Python menggunakan conditional statement if…else, untuk memeriksa apakah suatu kondisi terjadi (dipenuhi), dan memutuskan apakah ada aksi (perintah-perintah) yang perlu dilakukan atau tidak. Berikut contoh sederhana untuk memahami penggunaan if…else.

If Statement
Contoh Penggunaan If Else

Program di atas menggunakan if…else dalam sebuah looping yang sedang mengakses data mobil pada List Cars secara berurutan. Pada baris ke-4, if digunakan untuk mengecek, apakah mobil (car) yang sedang diakses sama dengan ‘bmw’. Python menggunakan simbol ‘==‘ untuk membandingkan apakah 2 buah data memiliki nilai yang sama. Jika kondisi car == ‘bmw’ dipenuhi, maka tampilkan car dengan syntax car.upper(). Method upper() berfungsi menjadikan semua karakter pada String menjadi huruf kapital. Tetapi jika car bernilai selain ‘bmw’ (else), maka tampilkan car dengan syntax car.title(), dimana method title() berfungsi menjadikan karakter pertama pada String menjadi huruf kapital. Perhatikan bahwa, pada akhir statement if dan else selalu diakhir tanda “:“, sama halnya seperti for. Demikian halnya dengan penulisan baris perintah berikutnya, harus menggunakan indentasi 1 Tab, untuk menandakan bahwa baris perintah tersebut berada dalam lingkup suatu “if” ataupun “else“.

>>> for item in lists"
>>>     if item == 'something':
>>>         perintah ke-1 dalam if
>>>         perintah ke-2 dalam if
>>>     else:
>>>         perintah ke-3 dalam else
>>>         perintah ke-4 dalam else
>>>     perintah ke-5 dalam for
>>>     perintah ke-6 dalam for  
>>> perintah ke-7 diluar for
>>> perintah ke-8 diluar for

Contoh skema di atas, menunjukkan secara lebih jelas, bagaimana menempatkan indentasi yang benar menurut ruang lingkupnya. Statement if, else, perintah ke-5, dan perintah ke-6 berada dalam lingkup for, sehingga penulisannya dimajukan 1 Tab dari posisi for. Perintah ke-1 dan ke-2 berada dalam lingkup if (yang juga di dalam for), sehingga penulisannya dimajukan 1 Tab dari posisi if (2 Tab dari posisi for). Demikian halnya dengan perintah ke-3 dan ke-4 berada dalam lingkup else (yang juga di dalam for), dimajukan 1 Tab dari posisi else (2 Tab dari posisi for).


Pengecekan Kondisi

Equality

Kondisi yang paling sering dicek adalah membandingkan apakah suatu variable sama dengan nilai tertentu (equality), menggunakan operator ==

Operator == mengembalikan nilai True jika nilai operand di sebelah kiri sama dengan operand sebelah kanan. Sebaliknya, operator akan mengembalikan nilai False, jika nilai keduanya berbeda.

>>> fruit = 'apple'
>>> fruit == 'orange'
False
>>> fruit == 'apple'
True

Pada contoh di atas, baris pertama mendefinisikan variable fruit dan memberinya nilai ‘apple’. Baris kedua mengecek apakah fruit sama dengan ‘orange’. Karena tidak sama, maka hasil yang keluar adalah False. Jika fruit dibandingkan dengan ‘apple’, baru akan menghasilkan nilai True.

Yang perlu diperhatikan adalah, karakter ‘A’ dengan ‘a’, akan menghasilkan False. Walaupun secara makna, sebuah ‘Apple’ sama dengan ‘apple’, namun komputer menganggapnya berbeda. Jika program yang kita bikin memang memperhitungkan perbedaan kapital dan huruf biasa, maka hal tersebut tidak masalah. Namun ada saatnya, kita ingin program mengabaikan perbedaan jenis huruf, cukup memperhitungkan nilainya saja. Untuk keperluan tersebut, kita bisa menggunakan method lower() pada salah satu atau kedua variable String ketika pengecekan kondisi. Contohnya sebagai berikut.

>>> fruit == 'Apple'
>>> if fruit.lower()=='apple':
>>>    print("I love it.")
I love it.

Pada statement if di atas, karakter pada variable fruit, terlebih dahulu “dijadikan” huruf kecil sebelum dibandingkan dengan ‘apple’, sehingga pengecekan kondisi dalam if, menghasilkan nilai True, dan pesan “I love it” ditampilkan.

Inequality

Kondisi lainnya yang umum digunakan adalah ketidaksamaan (inequality) dua buah nilai, menggunakan operator !=

Jika dua buah nilai operand tidak sama, maka perbandingan menghasilkan nilai True. Dan sebaliknya, jika dua nilai operand sama, hasilnya justru akan False.

>>> 'Apple' != 'apple'
True

>>> 'orange' != 'orange'
False

Operator equality memang lebih sering digunakan dibandingkan inequality, namun ada saja kondisi tertentu, dimana penggunaan operator != membuat program lebih efisien.

Perbandingan Numerik

Untuk perbandingan angka, baik itu integer maupun float, selain menggunakan operator == dan !=, operator lebih besar dan lebih kecil juga sering digunakan. Berikut contoh-contohnya.

>>> num = 17
>>> num == 17
True
>>> num < 20
True
>>> num <= 20
True
>>> num > 20
False
>>> num >= 15
True
>>> num !=10
True

Catatan: String berisi angka, tidak sama dengan angka itu sendiri. Angka 20 tidak sama dengan ’20’. Jika kita mengecek kondisi if 20 == ’20’, maka hasilnya adalah False.

Multiple Condition

Dalam sebuah statement if, kita bisa memeriksa lebih dari satu kondisi. Jika semua kondisi pada statement tersebut menghasilkan True, maka perintah di bawah lingkup if akan dijalankan. Untuk mengecek lebih dari satu kondisi, kita gunakan keyword and dan or.

And digunakan ketika kita ingin semua kondisi dipenuhi. Jika salah satu kondisi tidak dipenuhi atau False, maka statement if akan bernilai False, sehingga perintah di bawahnya tidak dijalankan.  Contoh sebagai berikut.

>>> player1 = 'on'
>>> player2 = 'off'
>>> if player1 == 'on' and player2 == 'on':
>>>     print("All players are ready, let's start")
>>> else:
>>>     print("Waiting for another player....")
Waiting for another player....

Pada contoh di atas, kondisi player1 == ‘on’ adalah True, sementara kondisi player2 == ‘on’ adalah False, sehinga hasil keseluruhan statement if adalah False. Akibatnya, program masuk ke kondisi else dan menampilkan pesan “Waiting for another player…

Or digunakan ketika kita ingin, minimal satu kondisi bisa dipenuhi. Jika satu saja, ada kondisi yang dipenuhi alias True, maka statement if akan bernilai True. Contoh sebagai berikut.

>>> guest1_age = 65
>>> guest2_age = 13
>>> if guest1_age >= 60 or guest2_age >= 60:
>>>     print("You got 50% discount!!")
You got 50% discount!!

Pada contoh di atas, tamu pertama berusia 65 tahun, dan tamu kedua berusia 13 tahun. Karena salah satu tamu memenuhi persyaratan, yakni berusia lebih dari 60 tahun, maka mereka mendapat diskon. Or pada kondisi di atas, hanya akan menghasilkan False, bila kedua tamu tidak ada yang berumur di atas 60 tahun.


Multiple IF

Pada penjelasan di awal, kita sudah melihat contoh sederhana penggunanaan if dan if…else. Dalam membuat program, seringkali programmer dihadapkan dengan percabangan kondisi yang lebih kompleks. Python menyediakan syntax if…elif…else untuk mengakomodasi kebutuhan tersebut. Misal, kita ingin membuat program untuk menentukan harga tiket wahana hiburan berdasarkan rentang usia pengunjung.

  • Untuk bayi usia 0-4 tahun, harga tiket gratis
  • Untuk anak 5 – 12 tahun, harga tiket 10000
  • Untuk remaja dan dewasa, 13 – 49 tahun, harga tiket 20000
  • Untuk pengunjung senior, usia di atas 50 tahun, harga tiket 5000

Jika kondisi-kondisi di atas akan kita terjemahkan menjadi penggalan program, maka hasilnya seperti berikut ini.

if age <= 4:
    price = 0
elif age >= 5 and age <=12:
    price = 10000
elif age >=13 and age <=49:
    price = 20000
else:
    price = 5000

Pada program di atas, usia pengunjung disimpan dalam variable age. If pertama mengecek apakah age masih 4 tahun ke bawah, jika ya maka harga (variable price) digratiskan. Jika tidak, maka perintah price = 0 diabaikan dan interpreter maju ke baris berikutnya, yakni elif. Elif pertama mengecek apakah usia berada dalam rentang 5 – 12 tahun. Jika ya, maka harga (price) di beri 10000, namun jika tidak, maka interpreter akan maju lagi ke elif kedua. Elif kedua mengecek jika usia berada dalam rentang 13 – 49 tahun. Jika ya, maka harga (price) di beri 20000, namun jika tidak, interpreter maju ke else. Statement else (jika digunakan) akan selalu ditempatkan pada posisi terakhir dan tidak bisa berdiri sendiri, yang artinya baris perintah di bawah else akan dijalankan hanya jika nilai age tidak memenuhi kondisi-kondisi di atasnya. Dalam contoh ini, price = 5000 akan dieksekusi jika nilai age lebih dari 49 tahun.

Pada kombinasi if…else maupun if…elif…else, statement else tidak harus selalu ada. If dapat digunakan tanpa else, dan if…elif dapat digunakan tanpa harus diakhiri dengan else.

Coba perhatikan ulang contoh di atas. Dari sekian banyak kondisi yang diberikan, hanya akan ada satu yang dipenuhi, sementara yang lainnya diabaikan. Ketika menemukan satu kondisi yang True, maka interpreter tidak akan mengecek/menjalankan kondisi-kondisi setelahnya. Untuk kasus tertentu, cara tersebut memang sesuai dan efisien. Namun, ada saat tertentu, di mana kita tetap perlu mengecek semua kondisi, misalnya saat kita ingin menambahkan aksi atau perintah tambahan terhadap kondisi tertentu. Di bawah ini diberikan sebuah contoh sederhana. Jika pengunjung masih bayi, maka ia mendapat harga tiket gratis. Dan jika ia kebetulan berulang tahun hari ini, maka petugas akan menghadiahkan sebuah souvenir untuknya.

if age <= 4:
    price = 0
if birhday == today:
    free_baby_gift = 'yes'

Menggunakan IF pada List

Jika kita ingin memeriksa apakah data ‘X’ ada pada sebuah List, kita dapat menggunakan looping for untuk menelusuri data pada List, kemudian membandingkan apakah data di indeks tertentu bernilai ‘X’. Namun, hal tersebut bisa “dipangkas” dan disederhanakan hanya dengan sebuah statement if saja, tanpa looping. Perhatikan contoh berikut ini.

>>> toppings = ['pepperoni', 'mushroom', 'cheese', 'onions']
>>> if 'mushroom' in toppings:
        print("Sorry, we are out of mushroom right now.")
Sorry, we are out of mushroom right now.

Kita tidak menggunakan looping di atas, tetapi langsung melakukan pengecekan, jika ‘mushroom’ ada dalam List toppings, makan tampilkan pesan berikut.

If juga sering digunakan untuk memastikan apakah suatu List kosong atau tidak.

>>> orders = ['vegetable soups', 'chicken grilled']
>>> if orders:
>>>     for order in orders:
>>>         print("Cooking " + order)
>>> else:
>>>     print("Waiting for orders....")

Pada contoh di atas, if orders artinya adalah jika List orders tidak kosong, statement if akan menghasilkan kondisi True, dan proses memasak pesanan akan dimulai. Sebaliknya, jika List orders kosong (atau [ ]), maka statement if akan mengembalikan nilai False, sehingga perintah di bawah else yang akan dijalankan.


Setelah menguasai looping dan conditional statement, saatnya kita mempelajari tipe data yang lebih luas dari List, yakni Dictionary. Tipe data ini akan membantu kita untuk memodelkan data dan kondisi di dunia nyata yang lebih kompleks. Kita akan membuat, mengakses, dan mengolah dictonary menggunakan kombinasi looping dan if.

What do you think? Leave a Comment Below.

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

Up ↑

%d bloggers like this: