Bahasa Python - Loop, Iterasi dan While Loop

Selamat datang di materi lanjutan python, Loops and Iteration. Pada dasarnya, materi ini adalah di mana kita akan membahas komputer melakukan tugas-tugas (task) berulang yang kita sebagai manusia tidak ingin lakukan. Jika dilakukan secara manual mungkin hanya akan membuang-buang tenaga anda dengan menulis beratus-ratus bahkan beribu-ribu kode.

Maka inilah kegunaan dan kekuatan nyata dan manfaat nyata dari komputer terjadi. Setiap kali melalui loop kita harus melakukan sesuatu secara smart dimana kita bisa mengfungsikan komputer untuk melakukan iterasi dan loop jutaan kali, sangat mudah. Dan ide dasarnya adalah bahwa pada titik tertentu dalam kode, Anda kembali ke aturan kode diatas, Idenya Anda telah melakukan sesuatu perintah dari kode, dan anda akan lakukan hal itu lagi dan lagi. Dan cara kita menyatakan bahwa dengan Python adalah dengan beberapa kata kunci.

Sebenarnya disini pernyataan yang dieksekusi secara berurutan dengan Pernyataan pertama dalam fungsi dijalankan pertama lagi kemudian diikuti oleh yang kedua, dan seterusnya. Mungkin ada situasi ketika Anda perlu menjalankan blok kode beberapa kali. Maka disini bahasa pemrograman sudah menyediakan berbagai struktur kontrol yang memungkinkan jalur eksekusi lebih rumit. Dan Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau kelompok pernyataan beberapa kali.

box1

box2

Jadi disini Loop (repeat steps) memiliki variabel iterasi yang berubah setiap kali melalui loop. Seringkali variabel iterasi ini melalui urutan nomor.

Di dalam bahasa pemrograman Python pengulangan dibagi menjadi 3 bagian, yaitu :

While Loop
For Loop
Nested Loop

Komputer sering digunakan untuk mengotomatiskan tugas yang berulang. Mengulang tugas yang identik atau serupa tanpa membuat kesalahan adalah sesuatu yang komputer lakukan dengan baik dan orang-orang melakukannya dengan buruk. Karena iterasi sangat umum, Python menyediakan beberapa fitur bahasa untuk membuatnya lebih mudah. Nah Salah satu keyword adalah while keyword dan for keyword, diatas contoh penggunaan ‘while’ dan nantinya akan sedikit kita bahas tentang definite loops yang menggunakan ‘for’. Ini disebut indefinite loops.

Program sederhana diatas yang menghitung mundur dari lima dan kemudian mengatakan “Blastoff!”. Jadi disini ‘while’ adalah keyword dari program diatas dan ini ni seperti pernyataan if, menjadi sebuah pertanyaan. Apakah n > 0 ? dan tentunya akan mengarah ke jawaban true or false. Dan jika ‘true’ kode akan dijalankan, dan jika false atau tidak benar, kode akan dilewati. Dan dalam hal itu, itu persis sama dengan if. Anda bisa mengatakan jika n lebih besar dari 0, jalankan kode ini, jika tidak lewati kode ini. Tapi di situlah segalanya menjadi sedikit berbeda. Jadi jika ‘true’ dalam kasus ini, n adalah 5, jadi itu benar. Akan mengeksekusi print out 5. Kemudian mengurangi 1 dari n menjadi print out 4. Tetapi dengan pernyataan ‘while’, itu kembali naik lagi. Dan itu memeriksa kembali pertanyaannya. Begitu seterusnya. Dan selama n lebih besar dari 0 tetap benar sampai menguranginya menjadi 0

Ini berarti, “while n lebih besar dari 0, tampilkan nilai n dan kemudian kurangi n dengan 1. Saat Anda masuk ke 0, keluar dari pernyataan sementara dan tampilkan kata Blastoff!” Lebih formal, berikut adalah alurnya eksekusi untuk pernyataan sementara:

  1. Evaluasi kondisi, menghasilkan True atau False.
  2. Jika kondisi false, keluar dari pernyataan sementara dan lanjutkan eksekusi pada pernyataan berikutnya.
  3. Jika kondisinya true, jalankan body dan kemudian kembali ke langkah 1. Jenis aliran ini disebut loop karena langkah ketiga berayun kembali ke arah thetop. Kita memanggil setiap kali kami menjalankan body dari loop iterasi. Untuk loop di atas, kita akan mengatakan, “Ini memiliki lima iterasi”, yang berarti bahwa body loop dieksekusi lima kali.

Body loop harus mengubah nilai dari satu atau lebih variabel sehingga akhirnya kondisi menjadi false dan loop berakhir. Kami memanggil variabel yang berubah setiap kali loop mengeksekusi dan mengontrol ketika loop menyelesaikan variabel iterasi. Jika tidak ada variabel iterasi, loop akan berulang selamanya, menghasilkan loop tak terbatas atau infinite loop

Jadi, bagian penting dari setiap loop adalah apa yang kita sebut variabel iterasi, oke? Dan itu adalah sesuatu yang berubah, karena jika kita tidak mengubah apa pun dalam lingkaran, maka itu akan berjalan selamanya. Itulah yang kami sebut infinite loop.

box3

Jadi apa yang salah dengan loop ini? Disini terdapat sebuah sumber yang tak ada habisnya (infinite) bagi para pemrogram dengan pengamatan bahwa petunjuk pada sampo, “Lather, Rinse, ulangi,” adalah loop tak terbatas karena tidak ada variabel iterasi yang memberitahu Anda berapa kali untuk mengeksekusi loop.

Dalam kasus hitung mundur seperti contoh 1, kita dapat membuktikan bahwa loop berakhir karena kita tahu bahwa nilai n adalah terbatas, dan kita dapat melihat bahwa nilai n semakin kecil setiap kali melalui loop, jadi akhirnya kita harus mencapai 0. Lain lagi dengan infinite loop karena tidak memiliki variabel iterasi sama sekali.

Terkadang Anda tidak tahu saatnya untuk mengakhiri satu putaran sampai Anda mencapai separuh jalan menuju body. Dalam hal ini Anda dapat menulis loop tak terbatas dengan sengaja dan kemudian menggunakan pernyataan break untuk melompat keluar dari loop. Misal kita lihat di contoh kedua, kita memiliki n lebih besar dari 5 dan kita katakan sementara n lebih besar dari 0, yang benar, print out, kembali lagi, periksa lagi. Apakah n lebih besar dari 0? Ya. Print out, periksa lagi, apakah n lebih besar dari 0? Print out. Dan ini adalah ketika Anda membaca sampo Anda dan mengatakan busa, bilas, dan ulangi. Jadi apa yang salah dari kode diatas?

Inilah yang dipikirkan para pemrogrammer ketika mereka membaca itu. Seperti akan menjadi putaran tak terbatas. Karena masalah teknisnya adalah, n tidak berubah. n tidak berubah. Dan apa yang terjadi adalah tidak ada cara untuk ini menjadi bernilai ‘false’. Tidak mungkin, itu tetap true, dan menjadi putaran tak terbatas.

Jadi kita perlu memiliki variabel iterasi yang berubah dan yang sebelumnya, Saya kurangi 1 dari n. Dan jadi variabel ini akhirnya menjadi true, true, true,true, false dan false. Pertanyaan yang menjadi false, akan membuat kita keluar dari lingkaran loop.

Variabel ini yang kita gunakan untuk mengendalikannya adalah apa yang kita sebut variabel iterasi. Karena itu mengontrol berapa lama iterasi berjalan dan kapan iterasi berhenti. Jadi ini adalah putaran tak terbatas karena kita tidak mempengaruhi variabel iterasi. Variabel iterasi masih n. Dan kemudian kita memiliki versi lain dari loop ini yang menunjukkan bahwa loop ini adalah apa yang disebut zero-trip loop.

Jadi sekarang bagaimana menyelesaikan kasus di contoh kedua? Lakukan penyelesaian iterasi dengan ‘continue’. Terkadang Anda berada dalam iterasi loop dan ingin menyelesaikan iterasi saat ini dan langsung melompat ke iterasi berikutnya. Dalam hal ini Anda dapat menggunakan pernyataan ‘continue’ untuk melompat ke iterasi berikutnya tanpa menyelesaikan body loop untuk iterasi saat ini. Berikut ini contoh loop yang menyalin masukannya sampai pengguna mengetik “done”, tetapi memperlakukan garis yang dimulai dengan karakter hash sebagai garis yang tidak akan dicetak (seperti komentar Python).

while True:
line = input('> ')
if line[0] == '#':
continue
if line == 'done':
break
print(line)
print('Done!')

Ini adalah sample run pada program baru ketika ditambahkan continue:

> hello there
hello there
> # don't print this
> print this!
print this!
> done
Done!

Semua garis dicetak kecuali yang dimulai dengan tanda hash karena ketika ‘continue’ dijalankan, berakhir iterasi saat ini dan melompat kembali ke pernyataan ‘while’ untuk memulai iterasi berikutnya, sehingga melewatkan pernyataan cetak.