Di dalam program yang kita lihat hingga saat ini, selalu saja ada beberapa urutan statemen yang dijalankan secara saklak oleh Python, berurutan dari atas ke bawah. Bagaimana jika Anda ingin mengubah alur kerjanya? Di sinilah kita belajar alur kontrol.
Sebagai contoh Anda ingin program untuk mengambil keputusan dan bertindak secara berbeda tergantung keputusan yang diambil. Sebagai contoh, misalnya mencetak ‘Selamat Pagi’ atau ‘Selamat Sore’ tergantung waktu yang ada saat itu?
Sebagaimana yang Anda bisa tebak, ini dapat dilakukan lewat statemen alur kontrol. Ini yang perlu Anda kuasai setelah belajar operator dan ekspresi. Ada tiga macam statemen alur kontrol di Python – if
, for
dan while
.
Statemen if
Alur kontrol statemen if
digunakan untuk mengecek kondisi: jika kondisi if bernilai benar, maka kita akan menjalankan satu blok statemen (disebut if-block), selain itu diteruskan dengan statemen else kita gunakan untuk memproses blok statemen yang lain (dinamakan else-block). Klausul else tersebut sifatnya tidak wajib.
Contoh (simpan dengan nama if.py
):
angka = 23
tebakan = int(input('Masukkan sebuah angka : '))
if tebakan == angka:
print('Selamat Anda telah menebaknya') # Blok baru mulai di sini
print('(Tapi tidak ada satu hadiahpun untuk Anda!)') # Blok baru berakhir di sini
elif tebakan < angka:
print('Tidak, angkanya sedikit lebih besar lagi') # Blok lainnya
# Anda dapat melakukan apapun di blok ini ...
else:
print('Tidak, angkanya lebih kecil lagi')
# Pesan ini keluar jika Anda menebak angka yang lebih besar
print('Selesai')
# Statemen terakhir ini selalu dieksekusi, setelah statemen if tersebut dijalankan.
Keluaran:
$ python3 if.py
Masukkan sebuah angka : 50
Tidak, angkanya lebih kecil lagi
Selesai
$ python3 if.py
Masukkan sebuah angka : 22
Tidak, angkanya sedikit lebih besar lagi
Selesai
$ python3 if.py
Masukkan sebuah angka : 23
Selamat, Anda telah menbaknya
(Tapi tidak ada satu hadiahpun untuk Anda!)
Selesai
Bagaimana Cara Kerjanya
Dalam program ini, kita menebak dari pengguna dan mengeceknya dengan nomor yang kita punya. Di awal, kita sudah mengeset variabel angka
ke dalam nilai integer yang kita inginkan, misalnya 23
. Lalu, kita gunakan tebakan dari pengguna lewat fungsi input()
. Fungsi adalah bagian dari program yang dapat digunakan kembali. Kita akan membaca tentang hal ini di bagian berikutnya.
Kita memasukkan sebuah string ke dalam fungsi built-in bernama input
yang akan mencetak di layar sesuai dengan masukan yang diketikkan oleh pengguna di layar. Sekali dimasukkan, dan pengguna menekan tombol enter
, maka fungsi input()
akan mengembalikan apapun yang dimasukkan oleh pengguna, sebagai sebuah string. Lalu kita mengkonversi string ini ke dalam integer dengan menggunakan int
lalu menyimpannya ke dalam variabel bernama tebakan
. Sebetulnya, int
merupakan class, tapi yang Anda perlu tahu saat ini adalah Anda dapat menggunakannya untuk mengonversi sebuah string ke dalam integer (asumsikan string tersebut berisi integer yang valid di dalamnya).
Berikutnya, kita bandingkan tebakan dari pengguna dengan nomor yang telah kita tentukan sebelumnya. Jika mereka bernilai sama, kita tampilkan pesan berhasil. Perhatikan bahwa kita menggunakan level indentasi untuk memberitahu Python, statemen mana ikut ke dalam blok mana. Inilah mengapa indentasi sangat penting di Python. Saya harap Anda menggunakan aturan “indentasi yang konsisten”. Betul kan?
Pengingat
Perhatikan bahwa dalam alur kontrol ini, jika statemen if
berisi titik koma di akhir kalimat 0 kita mengindikasikan kepada Python bahwa blok statemen tersebut akan mengikuti.
Lalu kita cek lagi, apakah tebakan tersebut lebih kecil atau lebih besar dari angka yang kita tentukan, dan jika memang demikian kasusnya, kita informasikan kepada pengguna bahwa mereka harus menebak angka yang lebih tinggi daripada itu. Apa yang kita gunakan di sini adalah klausul elif
yang sebenarnya bertugas untuk membandingkan dua statemen if else-if else
yang berhubungan satu sama lain. Ini akan membuat program lebih mudah, dan mengurangi jumlah indentasi yang dibutuhkan.
Statemen elif
dan else
juga harus punya titik koma di akhir baris logis diikuti oleh blok statemen terkait (dengan indentasi yang benar tentu saja)
Anda dapat menambahkan statemen if
yang lain di dalam blok statemen if
dan seterusnya – ini dinamakan statemen if
tergabung (nested).
Ingat bahwa bagian elif
dan else
sifatnya tidak wajib. Statemen if
yang valid, minimal:
if True:
print('Yak, itu benar')
Setelah Python menyelesaikan eksekusi dan melengkapi statemen if
termasuk klausul elif
dan else
terkait, maka statemen berikutnya adalah print('Selesai')
. Setelah ini, Python akan melihat bahwa program sudah selesai dan berhenti.
Meskipun program ini sangat sederhana, Saya telah menunjukkan banyak hal yang harus Anda perhatikan. Semua ini sangat langsung (dan sangat mudah jika Anda memiliki latar belakang C/C++). Anda hanya perlu menyadari ini di depan, dan setelah praktik beberapa kali Anda akan merasa nyaman dengan itu, sehingga terasa ‘natural’ untuk Anda.Catatan untuk programer C/C++
Tidak ada statemen switch
di Python. Anda dapat menggunakan if..elif..else
untuk melakukan hal yang sama (dalam beberapa kasus dapat menggunakan dictionary untuk mengerjakannya dengan cepat)
Statemen While
Alur kontrol statemen while
memungkinkan Anda untuk mengeksekusi blok statemen berkali kali sepanjang kondisinya true. Statemen while
adalah sebuah contoh terhadap apa yang dinamakan statemen looping. Statemen while
dapat memiliki klausul opsional else
.
Contoh (simpan dengan namawhile.py
):
angka = 23
jalankan = True
while lari:
tebak = int(input('Masukkan sebuah angka: '))
if tebak == angka:
print('Selamat, Anda telah menebaknya.')
jalankan = False # ini akan menyebabkan loop while-nya berhenti
elif tebak < angka:
print('Tidak, sedikit lebih besar dari itu.')
else:
print('Tidak, sedikit lebih kecil dari itu.')
else:
print('Loop while-nya telah selesai.')
# Kerjakan hal lain yang Anda inginkan di sini.
print('Selesai')
Output:
$ python3 while.py
Masukkan sebuah angka: 50
Tidak, sedikit lebih kecil dari itu.
Masukkan sebuah angka: 22
Tidak, sedikit lebih besar dari itu.
Masukkan sebuah angka: 23
Selamat, Anda telah menebaknya.
Loop while-nya telah selesai.
Selesai
Bagaimana Cara Kerjanya
Dalam program ini, kita masih bermain dengan program tebakan, tapi dibanding yang sebelumnya, dalam program ini pengguna dapat terus menebak hingga dia menebak secara benar – pengulangan program pada setiap tebakan tidak dibutuhkan, sebagaimana yang sudah kita kerjakan pada bagian sebelumnya. Ini secara jelas mendemonstrasikan bagaimana statemen while
bekerja.
Kita pindahkan statemen input
dan if
ke dalam putaran while
dan kita tentukan variabel bernama jalankan
dengan nilai True
sebelum putaran while
di mulai. Pertama jalan, kita cek dulu apakah vaiabel jalankan
bernilai True
lalu lanjut mengeksekusi while-block terkait. Setelah blok ini dieksekusi, program akan mengecek kembali apakah nilai variabel jalankan
. Jika nilainya masih True
, maka while-block akan dieksekusi kembali, begitu seterusnya.
Blok else
akan dieksekusi ketika kondisi putaran while
menemukan nilai False
– bahkan ini bisa juga terjadi pada putaran pertama. Jika ada klausul else
dalam putaran while
, klausul tersebut akan selalu dieksekusi kecuali Anda menghentikannya dengan statemen break
.
Nilai True
dan False
dianggap sebagai tipe Boolean, dan Anda dapat menganggapnya memiliki nilai 1
untuk True
dan 0
untuk False
.Catatan untuk Programmer C/C++
Selalu ingat bahwa Anda dapat menyisipkan klausul else
dalam putaran while

Putaran For
Ada lagi statemen putaran yang mengulang urutan objek seperti menjalankan tiap item dalam urutan (sequence). Statemen ini disebut for..in
. Kita akan lihat tentang urutan di bab berikutnya secara detail. Apa yang pelru Anda ketahui sekarang bahwa urutan/sequence hanyalah kumpulan item berurut.
Contoh (simpan dengan nama for.py
):
for i in range(1, 5):
print(i)
else:
print('Putaran telah selesai')
Keluaran:
$ python3 for.py
1
2
3
4
Putaran telah selesai
Bagaimana Cara Kerjanya
Dalam program ini, kita akan menampilkan urutan angka. Kita akan menghasilkan urutan angka ini dalam fungsi built-in dengan nama range
.
Apa yang akan kita lakukan di sini adalah memberikan dua angka dan range
akan mengembalikan urutan mulai dari angka yang paling kecil hingga angka yang paling besar. Sebagai contoh, range(1,5)
akan memberikan urutan [1, 2, 3, 4]
. Secara baku, range
memulai langkah dalam hitungan 1. Jika kita memberikan angka ketiga ke dalam range
, maka angka tersebut akan menjadi hitungan langkah. Contohnya, range(1,5,2)
akan memberikan urutan [1,3]
. Ingat bahwa range hanya memperluas hingga angka kedua, dengan kata lain tidak memasukkan angka kedua.
Sebagai catatan, range() menghasilkan urutan angka, tapi hanya satu angka dalam satu waktu, ketika menjalankan permintaan for loop dalam item berikutnya. Jika Anda ingin melihat urutan angka secara penuh dengan cepat, gunakan list(range()). Lists dijelaskan di bagian tentang struktur data.
for
loop akan melakukan iterasi dalam range ini – for i in range(1,5)
adalah sama dengan for i in [1, 2, 3, 4]
yang akan menugaskan setiap angka (atau objek) di dalam urutan ke dalam variabel i, sekali dalam satu waktu, dan mengeksekusi statemn blok dari tiap nilai i
. Dalam kasus ini kita akan mencetak statemen blok.
Pengingat
Ingat bahwa bagian else
sifatnya tidak wajib. Jika dimasukkan, bagian tersebut hanya akan dijalankan setelah putaran for
selesai, kecuali ketemu statemen break.
Ingat bahwa putaran for..in
bisa berjalan di urutan appaun. Di sini, kita memiliki daftar angka yang dihasilkan oleh fungsi range
secara built-in, namun secara umum kita dapat menggunakan segala macam urutan dari berbagai jenis objek! Kita akan mengeksplorasi ide ini secara detail di bab berikutnya.Catatan untuk Programmer /C++/Java/C#
Putaran for
di Python secara radikal berbeda dengan putaran for
di C/C++. Programmer C# akan mencatat bahwa putaran for
di dalam Python mirip dengan putaran foreach
di C#. Sedangkan programmer Java bisa mencatat bahwa hal ini sama dengan for (int i : IntArray)
di JAva 1.5.
Di C/C++, jika Anda ingin menulis for (int i = 0; i < 5; i++)
, maka di Python cukup tuliskan for i in range(0,5)
. Sebagaimana yang Anda lihat, putaran for
di Python lebih sederhana, lebih ekspresif dan lebih kecil kemungkinan salahnya.
Statemen break
Statemen break
digunakan untuk menghentikan statemen dalam sebuah loop (putaran), dengan kata lain akan menghentikan eksekusi dari statemen yang berputar, meskipun kondisinya tidak bernilai False
atau item urutannya belum dijalankan secara keseluruhan.
Sebagai catatan yang cukup penting, jika Anda menghentikan putaran for
atau while
, setiap blok else
yang terkait tidak akan dieksekusi.
Contoh (simpan dengan nama break.py
):
while True:
s = input('Masukkan sesuatu: ')
if s == 'berhenti':
break
print('Panjang hurufnya adalah ', len(s))
print('Selesai')
Keluaran:
$ python3 break.py
Masukkan sesuatu: Programming sangat menyenangkan
Panjang hurufnya adalah 31
Masukkan sesuatu: Saat pekerjaan selesai
Panjang hurufnya adalah 22
Masukkan sesuatu: jika Anda ingin pekerjaan Anda menyenangkan:
Panjang hurufnya adalah 44
Masukkan sesuatu: gunakan Python!
Panjang hurufnya adalah 15
Masukkan sesuatu: berhenti
Selesai
Bagaimana Cara Kerjanya
Dalam program ini, kita berulangkali minta masukan dari pengguna, dan menampilkan jumlah panjang seluruh input yang dimasukkan. Kita memberikan kondisi khusus untuk menghentikan program dengan mengecek apakah masukan dari pengguna adalah 'berhenti'
. Kita menghentikan program dengan berhenti dari putaran (loop) dan menuju akhir dari program.
Panjang dari string yang dimasukkan dapat dicari dengan menggunakan fungsi built-in bernama len
Ingat bahwa statemen break
dapat digunakan dalam putaran for
juga.
Puisi Python dari Swaroop
Input yang saya gunakan di sini adalah puisi mini yang saya tulis dengan nama Puisi Python Swaroop:
Programming sangat menyenangkan
Saat pekerjaan selesai
jika Anda ingin pekerjaan Anda menyenangkan:
gunakan Python!
Statemen Continue (Lanjutkan)
Statemen continue
digunakan untuk memberitahu Python agar mengabaikan statemn yang tersisa dari blok putaran yang ada saat ini, dan melanjutkan blok putaran berikutnya.
Contoh (simpan dengan nama continue.py
):
while True:
s = input('Masukkan sesuatu: ')
if s == 'berhenti':
break
if len(s) < 3:
print('Terlalu kecil')
continue
print('Nilai yang Anda masukkan memiliki panjang yang cukup')
# Lakukan pemrosesan lainnya di sini...
Output:
$ python3 continue.py
Masukkan sesuatu: a
Terlalu kecil
Masukkan sesuatu: 12
Terlalu kecil
Masukkan sesuatu: abc
Nilai yang Anda masukkan memiliki panjang yang cukup
Masukkan sesuatu: quit
Bagaimana Cara Kerjanya
Dalam program ini, kita menerima masukan dari pengguna, tapi kita hanya memproses masukan tersebut jika panjangnya lebih besar daripada 3. Jadi, kita menggunakan fungsi built-in len
untuk memperoleh panjang masukan, dan jika panjangnya kurang dari 3, kita mengabaikan statemen berikutnya di blok yang sama dengan statemen continue
. Dan selanjutnya, statemen yang tersisa dalam putaran tersebut akan dieksekusi, apapun pemrosesan yang kita inginkan di sini.
Catat bahwa statemen continue
juga bisa jalan untuk putaran for
.
Ringkasan Alur Kontrol
Kita telah melihat bagaimana menggunakan tiga statemen alur kontrol – if
, while
dan for
lengkap dengan statemen terkait yakni break
dan continue
. Ini merupakan bagian yang paling sering digunakan di Python, sehingga membuat kita terbiasa dengan statemen tersebut sangatlah penting dan mendasar.
Berikutnya, kita akan melihat bagaimana membuat dan menggunakan fungsi.
Satu tanggapan untuk “Alur Kontrol”
[…] Kita telah melihat bagaimana menggunakan operator, operan dan ekspresi – ini adalah kerangka dasar dari sebuah program. Berikutnya kita akan melihat bagaimana cara menggunakan hal ini ke dalam program lewat alur kontrol statemen. […]