Control Statement - Mengatur Alur Kerja Program Komputer
if-else statement, while loop, dan for loop
Dalam membuat sebuah algoritma, sudah sewajarnya kita memiliki beberapa statement dasar. Statement dasar yang dimaksud disini adalah statement seperti "jika...maka...", Atau "selama... Lakukan..."
Terdengar abstrak? begini, misalnya kamu memiliki sebuah buku resep masakan. Di setiap resep masakan, pastinya kamu pernah melihat "jika sudah matang, matikan kompor lalu tiriskan makanan". Apa kamu menyadari sesuatu? Disana terdapat kata "jika" yang akan menentukan langkah yang akan kita selanjutnya. Jika makanan sudah matang, tiriskan. Jika belum, tunggu sampai matang. bukankah ini langkah yang benar? Nah, hal yang serupa nantinya juga akan kita terapkan pada setiap bahasa pemrograman. Semua bahasa pemrograman selalu memiliki statement seperti ini, karena statement ini adalah dasar yang membedakan bahasa pemrograman dengan bahasa komputer lainnya.
Contoh
Kamu akan diberikan sebuah angka. Tugasmu adalah, kamu harus menentukan apakah angka tersebut merupakan bilangan genap atau bilangan ganjil.
"ini kan mudah sekali?" tentu saja, kamu bahkan bisa melakukan hal ini kurang dari 1 detik. Bagimu hal ini terasa sangat mudah karena kamu sudah terlalu sering membedakan mana angka genap dan mana angka ganjil. Sedangkan, komputer sama sekali tidak paham hal ini. Karena itu, kita akan mencoba membuat algoritma untuk menentukan apakah suatu bilangan itu bilangan genap atau bilangan ganjil.
Coba ingat, bagaimana kamu menentukan apakah suatu bilangan itu bilangan genap atau bilangan ganjil? Pertama, kamu diberikan sebuah angka. Kedua, kamu mencoba membagi angka tersebut dengan angka 2. Ketiga, Jika hasilnya menyisakan sisa pembagian, itu artinya bilangan yang kamu dapatkan tersebut adalah bilangan ganjil. Jika hasilnya tidak memiliki sisa bagi, itu artinya bilangan yang kamu dapat adalah bilangan genap.
Mari kita coba algoritma tersebut dengan sebuah bilangan, contohnya saja bilangan 7.
- Kamu mendapatkan sebuah bilangan. Benar, dalam kasus ini kamu sudah mendapatkan sebuah bilangan, yaitu 7.
- Bagi bilangan tersebut dengan 2. Dalam kasus ini, jika angka 7 dibagi 2, hasilnya adalah 3 dengan sisa pembagian, yaitu 1.
- Jika tidak memiliki sisa bagi, maka bilangan tersebut adalah bilangan genap, sedangkan jika memiliki sisa bagi, berarti bilangan tersebut merupakan bilangan ganjil. Dalam kasus ini, hasil bagi 7 oleh 2 menghasilkan sisa berupa angka 1. Itu artinya 7 adalah bilangan ganjil. Dan benar saja, seperti yang kita ketahui, 7 adalah bilangan ganjil.
Hmm🤔 oke, lumayan...
Sekarang saatnya kita mengeksekusi algoritma ini ke program komputer. Pada langkah pertama, untuk mendapatkan sebuah angka, kita bisa menggunakan fungsi input()
. Untuk langkah kedua (membagi bilangan), kita bisa menggunakan simbol /
.
Nah, untuk langkah ketiga, kita memerlukan sesuatu yang dapat merepresentasikan kata "jika" ini. Dalam bahasa pemrograman, ini dinamakan sebagai if-else statement.
Sintaks Untuk if - else Statement
if Statement
Pada bahasa pemrograman Python, membuat statement if
dengan cara menuliskan if
, lalu diikuti dengan kondisi yang diperlukan. Jika kondisi tersebut bernilai true
, maka baris kode yang diindentasi dibawahnya akan dijalankan.
Contoh :
if [kondisi] :
[Baris kode ini akan dijalankan jika kondisi di atas bernilai true]
Note : Pada bahasa Python, indentasi sangatlah penting. Jika kode dibawha statement if
tidak diindentasi, maka baris kode tersebut tidak akan dianggap sebagai bagian dari blok kode if
. Biasanya, indentasi ini dilakukan dengan menggeser baris kode ke kanan sebesar 3 spasi.
Contoh
Perhatikan kode berikut :
x = 5
if x>0 :
print("x bernilai positif")
Pada kode di atas, kita me-assign angka 5 ke variabel x, sehingga variabel x sekarang memiliki nilai 5. Lalu, pada kode berikutnya kita menyatakan bahwa jika x lebih besar daripada 0, maka jalankan kode terindentasi dibawahnya, yaitu mencetak x bernilai positif
ke layar. Simpel sekali, bukan?
else Statement
Kita mungkin butuh lebih banyak hal. Mungkin kita ingin seperti, "jika x besar dari 0, maka lakukan ini. jika tidak (jika x tidak lebih besar daripada 0), maka lakukan itu". Nah, untuk menerapkan ini, kita punya else
statement. Blok kode else
statement ini akan dijalankan jika kondisi-kondisi pada blok if
tidak terpenuhi, alias memiliki nilai kebenaran false
. Untuk contoh, kita akan menggunakan contoh kode tadi, dengan sedikit modifikasi menggunakan else statement.
x = -3
if x>0 :
print("x bernilai positif")
else :
print("x bernilai negatif atau bernilai 0")
Pada kode tersebut kita menyatakan bahwa jika x lebih besar daripada 0, maka cetak teks x bernilai positif
ke layar. Jika tidak, cetak teks x bernilai negatif atau bernilai 0
ke layar.
elif statement
Sebenarnya, selain if dan else, masih ada 1 blok kode lagi dalam statement if-else statement
, yaitu elif statement. Format penulisan elif statement ini persis sama dengan if statement, hanya saja kita tidak menggunakan if, melainkan menggunakan elif.
Apa yang membedakan if dan elif? pekerjaan yang dilakukan oleh elif ini merupakan "kombinasi" dari else dan if (karena itulah disebut elif).
maksudnya begini. Coba perhatikan kode di bawah. Kita sebut ini sebagai kode_1 :
x = 5
if x>3 :
print("x lebih besar dari 3")
if x>4 :
print("x lebih besar daripada 4")
Jika kita menjalankan kode tersebut, hasilnya akan menjadi seperti ini :
Apakah kamu menyadari sesuatu? Ternyata, jika kita menggunakan 2 kali if atau lebih dan kondisi-kondisi yang ada tetap terpenuhi, maka setiap blok kode if tersebut akan dilaksanakan. Pada kode tersebut, x = 5. Lalu ada sebuah blok if yang menyatakan jika x lebih besar daripada 3, maka print x lebih besar dari 3
. Lalu ada blok if yang lain, yaitu jika x lebih besar daripada 4, maka print x lebih besar daripada 4
. Karena x = 5, kedua kondisi pada kedua if statement di atas terpenuhi, sehingga kedua blok kode tersebut akan dijalankan dan akan di-print 2 kalimat tadi sekaligus.
Namun, hal ini berbeda dengan elif
. Blok elif hanya akan dijalankan jika kondisi pada blok if atau blok elif lain di atasnya tidak terpenuhi.
Balik lagi ke contoh kode tadi, tetapi kita akan mengganti blok if kedua dengan blok elif.
x = 5
if x>3 :
print("x lebih besar dari 3")
elif x>4 :
print("x lebih besar daripada 4")
Pada kode di atas, kita menyatakan bahwa jika (if) x lebih besar daripada 3, maka print x lebih besar dari 3
. karena kita memiliki x = 5, maka blok if pertama ini akan dijalankan dan akan menampilkan x lebih besar dari 3
. Nah, karena kondisi pada blok if pertama ini sudah terpenuhi, maka blok kode elif dibawahnya tidak akan dijalankan.
While Loop
Seperti namanya, while berarti "ketika". kode di dalam blok while loop akan tetap dijalankan selama kondisi yang ada masih terpenuhi terpenuhi. Ini artinya blok kode while loop dapat dijalankan berulang-ulang. Berikut adalah sintaks untuk while loop :
while [kondisi] :
[Perintah yang akan dilakukan berulang-ulang]
kode yang ada pada bagian [Perintah yang akan dijalankan]
akan dijalankan selama kondisi pada while loop masih terpenuhi. Contoh :
x = 5
while x>0 :
print("halo")
Pada kode di atas, awalnya kita me-assign nilai 5 ke variabel x. Kemudian kita menyatakan bahwa selama x lebih besar daripada 0, maka akan di-print halo
ke layar. Mari kita coba ikuti alurnya. Pertama, x = 5. Lalu, karena x lebih besar daripada 0, maka perintah pada while loop akan dijalankan. Karena itu, akan muncul halo
di layar. Eits, ini belum selesai. Ingat kan kalau while loop akan terus berjalan selama kondisi terpenuhi? Pada contoh di atas, kondisi nya adalah x>0. Setelah kode tadi dijalankan, nilai x masih saja bernilai 5, yang artinya kondisi pada while loop masih terpenuhi. Karena masih terpenuhi, blok kode while loop dijalankan kembali. Setelah kodenya dijalankan, nilai x masih bernilai 5, yang berarti kondisi pada while loop masih terpenuhi. Begitu seterusnya. Karena kondisinya terus terpenuhi, maka loop ini tidak akan pernah berhenti. Loop yang seperti ini disebut dengan infinity loop.
Kedengaran bagus, tapi sebenarnya tidak. infinity loop berarti komputer-mu akan terus bekerja tanpa henti, dan ini dapat merusak komputer-mu jika terjadi dalam waktu yang lama. Bagaimana cara mencegahnya? Ya tentu saja dengan cara tidak membuat infinity loop. Maksudnya begini : seperti yang kita tau, infinity loop terjadi karena kondisi pada blok while selalu terpenuhi terus menerus. Jadi untuk mencegah infinity loop, kita harus mencegah agar kondisi pada blok while terpenuhi terus menerus. Berikut adalah contoh yang benar :
x = 5
while x>0 :
print("halo" + str(x))
x = x - 1
Jika kamu menjalankan kode di atas, akan muncul hasil seperti ini :
hello5
hello4
hello3
hello2
hello1
Lalu berhenti, semua perintah sukses dijalankan.
Apa yang sebenarnya terjadi? Pada contoh kode di atas, kita menyatakan nilai awal x adalah 5. Lalu kita membuat sebuah loop dengan kondisi tertentu. Kondisi nya itu adalah x>0. Jadi selama x lebih besar daripada 0 (bernilai positif), maka blok kode while loop akan terus dijalankan. Awalnya x = 5, sehingga kondisi x>0 terpenuhi dan perintah print akan dijalankan, dan nilai x dikurangi 1, sehingga nilai x sekarang adalah 4. Lalu program akan men-cek kembali, apakah x masih lebih besar dari 0. 4 lebih besar daripada 0, maka perintah print akan dijalankan kembali dan nilai x akan dikurangi 1 lagi, sehingga nilai x sekarang adalah 3. Karena 3 lebih besar daripada 0, maka kondisi while loop tetap terpenuhi dan perintah print dijalankan kembali. Begitu seterusnya sehingga nilai x = 0. Saat x = 0, maka x tidak lebih besar daripada 0 lagi, sehingga blok kode while loop akan berhenti berjalan dan perintahnya berhenti. Jadi, perintah print("hello")
akan dijalankan sebanyak 5 kali.
for Loop
Jika pada while loop blok kodenya akan terus dilakukan beruang selama kondisi nya terpenuhi, maka pada for loop blok kode-nya akan terus dilakukan berulang-ulang dengan jumlah tertentu, misalnya 2 kali, atau 3 kali, dsb.
Analaginya seperti ini : kamu diminta untuk mengisi air ke ember. Jika kamu disuruh mengisi air sampai penuh, maka ini disebut while loop. Namun, jika kamu disuruh mengisi air sebanyak 5 gayung, maka ini disebut sebagai for loop. Lihat kan perbedaannya? Kondisi while loop pada analogi di atas adalah ember harus penuh. Jadi selama ember belum penuh, kamu akan terus mengisi ember dengan air. Sedangkan untuk for loop, banyak perulangannya adalah 5 kali. Jadi kamu akan mengisi ember sebanyak 5 kali, terserah apakah embernya akan penuh atau tidak.
berikut adalah sintaks dari for loop :
for i in range(a) :
[perintah yang ingin dilakukan secara berulang-ulang]
a
menunjukkan seberapa banyak perintah di blok kode ini harus dilakukan. penghitungan akan dimulai dari saat i=0
, dan setelah perintah dibawahnya telah dilakukan 1 kali, maka nilai a
akan meningkat menjadi 1, dan perintah dibawahnya akan dilakukan lagi. hal tersebut terjadi terus menerus hingga saat nilai i=a-1
.
berikut adalah contohnya :
for i range(5) :
print("hello" + str(i))
hasilnya adalah seperti berikut :
hello0
hello1
hello2
hello3
hello4
pada kode di atas,kita melakukan perintah print() berulang-ulang mulai dari i=0
hingga i=5-1=4
. jadi, dengan begini maka string hello
yang diikuti nilai i
dilakukan berulang kali, tergantung seberapa besar nilai a
.
berikut adalah ilustrasi 'apa yang terjadi pada for loop' :
dengan memahami artikel ini semua artikel sebelumnya saja, kamu sudah bisa membuat game sederhana. kita akan mencoba membuatnya pada artikel berikutnya.