Pada pertemuan kali ini, kita akan mempelajari tentang percabangan if-else
pada python, yang mana ia adalah flow-control super dasar yang sangat penting untuk dipahami oleh pemrogram.
Sebelum kita mulai ngoding, kita pahami apa pengertian percabangan terlebih dahulu.
Apa itu Percabangan?
Percabangan –dalam dunia pemrograman– adalah proses penentuan keputusan atau dalam bahasa inggris ini biasa disebut sebagai conditional statement [1].
Konsepnya sederhana: kita menginstruksikan komputer untuk melakukan suatu aksi tertentu (X), hanya jika suatu kondisi Y terpenuhi. Atau, kita memerintahkan komputer untuk melakukan aksi tertentu (A) jika suatu kondisi tidak terpenuhi.
Premisnya adalah “Jika-Maka”. Contoh:
- Jika nilai siswa lebih dari atau sama dengan 90, maka dia dapat predikat A.
- Jika nilai siswa lebih dari atau sama dengan 80, maka dia dapat predikat B.
- Jika nilai siswa lebih dari atau sama dengan 40, maka dia dapat predikat C.
- Dan seterusnya.
Ilustrasi:
Contoh kehidupan nyata
Contoh dari kehidupan nyata yang saya yakin semuanya pernah mengalami, adalah saat mengakses facebook.com.
-
Ketika mengakses facebook dan kita dalam kondisi belum login, kita akan mendapatkan halaman ini:
-
Sedangkan jika kita dalam kondisi login, maka kita akan mendapatkan halaman seperti ini:
Itu adalah contoh di kehidupan nyata di mana jika suatu kondisi terpenuhi, maka suatu aksi akan dijalankan (dalam hal ini adalah menampilkan halaman A), dan jika kondisi tidak terpenuhi maka yang ditampilkan adalah halaman B.
Bisa kita simpulkan, bahwa di setiap program atau aplikasi, baik yang berbasis web, desktop, mobile, maupun CLI tidak akan pernah lepas dari yang namanya percabangan.
Sehingga: logika percabangan adalah hal yang sangat dasar dan sangat penting sekali untuk dikuasai ketika kita mempelajari sebuah bahasa pemrograman tertentu.
Percabangan Pada Python
Dalam bahasa pemrograman python π, syntax atau statement yang digunakan untuk melakukan percabangan adalah:
if
elif
- dan
else
Di mana if
merupakan kondisi utama, sedangkan elif
adalah kondisi kedua atau ketiga hingga ke-x, sedangkan else
adalah kondisi terakhir di mana semua kondisi sebelumnya tidak ada yang terpenuhi.
Agar lebih paham, kita langsung praktikkan saja π¨π»βπ».
Blok If
Blok kode if
pada python, strukturnya seperti ini:
if kondisi:
statements()
Bagian kondisi
adalah sebuah variabel / atau nilai yang bertipe data boolean
. Baik berupa nilai True
/False
secara langsung, atau pun sebuah ekspresi logika.
Jika kondisi
bernilai True
, maka statements()
akan dieksekusi oleh sistem.
Tulis dan perhatikan kode program berikut:
if True:
print('Kode program ini akan dieksekusi')
if False:
print('Kode program ini tidak akan dieksekusi')
print('Kode program ini akan selalu dieksekusi karena tidak termasuk pada percabangan')
Jika kita jalankan, kode program di atas hanya akan memunculkan output:
Kode program ini akan dieksekusi
Kode program ini akan selalu dieksekusi
Kenapa?
Karena kondisi if
yang kedua tidak bernilai True
, sehingga statemen yang ada di dalamnya pun tidak akan pernah dieksekusi oleh sistem.
Dan print()
yang ke-3 akan selalu dieksekusi karena ia berada di luar blok kode if.
Ingat bahwa blok kode di dalam python ditentukan oleh indentasi seperti yang telah kita bahas pada Aturan Penulisan Sintaks Python
Selain menggunakan boolean secara langsung, kita juga bisa menggunakan ekspresi logika untuk percabangan.
Perhatikan contoh berikut:
if 5 > 10: # β
print('Nilai 5 lebih dari 10')
if 10 > 5: # β
print('Nilai 10 lebih dari 5')
Jika dijalankan, program di atas hanya akan menampilkan output:
Nilai 10 lebih dari 5
Blok if..else
Yang kedua adalah blok if else
. Blok if else ini biasa dinamakan percabangan, karena memiliki setidaknya 2 cabang:
- Cabang
if
- Cabang
else
Perhatikan contoh berikut:
nilai = 50
print('Nilai anda adalah:', nilai, '\n')
if nilai >= 70:
print('Selamat, anda lulus!')
else:
print('Maaf, anda tidak lulus.')
Jika dijalankan, program di atas akan menghasilkan output:
Nilai anda adalah: 50
Maaf, anda tidak lulus.
Anda bisa mengganti nilai = 50
menjadi inputan user seperti ini.
nilai = int(input('Masukkan nilai anda: '))
...
Lalu jalankan kembali program di atas.
Blok if..elif..else
Sebagaimana pohon, cabangnya tidak hanya 2, tapi bisa 3, 4, 5 bahkan lebih.
Begitu juga pada logika kita. Kita bisa membuat lebih dari 2 cabang logika. Dan pada python, untuk membuat lebih dari 2 cabang, kita bisa menggunakan blok kode if..elif..else
.
Agar lebih jelas, mari kita coba praktikkan.
Contoh yang paling umum digunakan untuk kasus percabangan if..elif..else
adalah menentukan grade nilai suatu siswa.
Jika nilainya sekian, dia dapat predikat A. Sedangkan jika nilainya sekian maka predikatnya adalah B, dan seterusnya.
Berikut ini rules yang akan kita gunakan:
- Predikat A untuk nilai >= 90
- Predikat B untuk nilai >= 80 < 90
- Predikat C untuk nilai >= 60 < 80
- Predikat D untuk nilai >= 40 < 60
- Selain itu, maka predikat E.
Dari 5 rule di atas, kita akan menggunakan satu if
, 3 elif
, dan 1 else
.
Perhatikan contoh berikut:
nilai = int(input('Masukkan nilai: '))
if nilai >= 90:
print('Predikat A')
elif nilai >= 80:
print('Predikat B')
elif nilai >= 60:
print('Predikat C')
elif nilai >= 40:
print('Predikat D')
else:
print('Predikat E')
Jalankan program lalu memasukkan angka 80
, maka kita akan mendapatkan output predikat B:
Masukkan nilai: 80
Predikat B
Kenapa Pakai elif? Kan Bisa Pakai if saja?
Oke. Sebelum kita jawab pertanyaan di atas, mari kita coba ubah kode program di atas menjadi menggunakan if
semua, tanpa elif
sama sekali.
nilai = int(input('Masukkan nilai: '))
if nilai >= 90:
print('Predikat A')
if nilai >= 80:
print('Predikat B')
if nilai >= 60:
print('Predikat C')
if nilai >= 40:
print('Predikat D')
else:
print('Predikat E')
Jalankan program, lalu coba masukkan angka 80
.
Sistem akan memberikan kita output seperti berikut:
Masukkan nilai: 80
Predikat B
Predikat C
Predikat D
Kenapa?
Karena setiap kali kita membuat blok if
, itu artinya kita membuat satu pohon percabangan.
Dan pada pemrograman, pohon percabangan selalu hanya mengeluarkan satu kondisi yang terpenuhi.
Jika ada lebih dari satu kondisi yang terpenuhi, maka kondisi yang pertamalah yang akan dieksekusi. Tidak semuanya.
Oleh karena itu, di kode program yang pertama, kita sejatinya hanya membuat satu pohon percabangan, dan kondisi yang dieksekusi hanya 1, meskipun yang terpenuhi lebih dari 1.
Berbeda dengan contoh yang kedua, kita sejatinya sedang membuat 4 buah pohon percabangan, oleh karena itu outputnya pun akan berbeda sesuai dengan banyaknya pohon percabangan yang kita buat.
Operator-Operator Boolean
Jangan lupa dengan tipe data boolean, operator logika, operator keanggotaan dan lain-lain yang telah kita pelajari pada serial belajar python ini.
Pada percabangan if..else
, operator logika dan juga tipe data boolean akan sangat sering kita gunakan.
Berikut ini contohnya untuk operator keanggotaan:
buah_yang_tersedia = ['jeruk', 'mangga', 'melon']
buah_yang_dicari = input('Masukkan nama buah dalam huruf kecil: ')
if (buah_yang_dicari in buah_yang_tersedia):
print('Buah yang anda cari tersedia!')
else:
print('Buah yang anda cari tidak tersedia!')
Contoh output ketika saya ketik ‘mangga’:
Masukkan nama buah dalam huruf kecil: mangga
Buah yang anda cari tersedia!
Percabangan Satu Baris
Pada python, kita bisa menggunakan if..else
dalam satu baris. Biasanya, pada bahasa pemrograman lainnya, ini disebut sebagai ternary (meskipun python cukup unik dari segi sintaksisnya).
Perhatikan contoh berikut:
nilai = int(input('Masukkan nilai: '))
status = 'lulus' if nilai >= 70 else 'tidak lulus'
print(status)
Kode program di atas adalah shortcut dari kode seperti di bawah:
if nilai >= 70:
status = 'lulus'
else:
status = 'tidak lulus'
print(status)
Percabangan Bertingkat
Percabangan bertingkat adalah sebuah istilah untuk if di dalam if.
Kalau dalam dunia per-bakso-an, percabangan bertingkat adalah bakso beranak π€€. Alias di dalam pentol ada pentol yang lainnya π’π’
Silakan coba dan jalankan kode program di bawah ini:
nilai = int(input('Masukkan nilai: '))
usia = int(input('Masukkan usia: '))
if nilai >= 75:
if (usia < 15):
print('Selamat adek, kamu lulus!')
else:
print('Selamat kakak, kamu lulus!')
else:
if (usia < 15):
print('Mohon maaf dek, coba lagi ya!')
else:
print('Mohon maaf kak, coba lagi ya!')
Kode program di atas akan memeriksa terlebih dahulu apakah nilai
yang dimasukkan adalah lulus atau tidak. Setelah itu, program akan memeriksa usia, apakah dia akan disapa dengan “kakak” atau kah dengan “adek”.
Contoh Program Percabangan Python
Selain contoh-contoh yang telah kita coba di atas, teman-teman bisa melihat contoh-contoh lainnya di seri Latihan Program Python. Di situ ada berbagai macam contoh program untuk melatih logika, dan hampir setiap program menggunakan percabangan if-else
seperti:
- Angka Terbesar dari 3 Angka
- Memeriksa Bilangan Ganjil Genap
- Menghitung Jumlah Huruf Vokal
- Memeriksa Tahun Kabisat
- dan lain-lain
Kode Program Lengkap
Untuk kode program lengkapnya bisa anda dapatkan pada repository github python-dasar.
Jangan lupa kasih star ya!βπ
Pertemuan Selanjutnya
Alhamdulillah. Kita telah selesai membahas tentang kondisi percabangan pada python. Jika ada yang kurang jelas, jangan sungkan bertanya.
Dan..
Pada pertemuan selanjutnya, insyaallah kita akan membahas tentang hal yang sangat penting lainnya pada python: yaitu perulangan!
Nantikan terus tutorial-tutorial di Jago Ngoding ya, jangan lupa komentar, share, dan like fanspage kami! π€πΌ
Terima kasih banyak ππΌπ
Referensi
[1] https://en.wikipedia.org/wiki/Conditional_(computer_programming) – diakses tanggal 16 Mei 2021