Kategori
Python

Alur Kontrol

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 – iffor 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

alur kontrol

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 &lt; 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 – ifwhile 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”

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *