Lewati ke konten utama

Tutorial Loop Python

Tutorial pengantar yang komprehensif untuk loop Python. Pelajari dan praktikkan while dan for loop, nested loop, keyword break dan continue, fungsi range, dan lainnya!
Diperbarui 5 Jun 2026  · 15 mnt baca

range Python

Loop penting dalam Python atau bahasa pemrograman apa pun karena membantu Anda mengeksekusi sekelompok kode secara berulang. Anda akan sering berhadapan dengan situasi di mana Anda perlu menggunakan potongan kode berulang kali tetapi tidak ingin menulis baris kode yang sama berkali-kali.

Dalam tutorial loop Python ini Anda akan membahas topik-topik berikut:

  • while loop di Python: Anda akan belajar bagaimana menyusun dan menggunakan while loop dalam aplikasi data science. Anda akan melakukannya melalui beberapa tantangan koding interaktif.
  • Selanjutnya, Anda akan beralih ke for loop: sekali lagi, Anda akan belajar bagaimana menyusun dan menggunakan for loop dalam konteks dunia nyata.
  • Anda juga akan mempelajari perbedaan antara menggunakan while loop dan for loop.
  • Juga topik tentang nested loop
  • Setelah itu, Anda akan melihat bagaimana menggunakan break dan continue.
  • Perbedaan antara fungsi xrange() dan range()

While Loop

While loop adalah salah satu loop pertama yang mungkin Anda temui saat mulai belajar pemrograman. Loop ini juga salah satu yang paling intuitif untuk dipahami: jika Anda memikirkan namanya, Anda akan cepat memahami bahwa kata "while" berkaitan dengan "selang" atau "periode waktu". Seperti yang sudah Anda tahu, kata "loop" mengacu pada potongan kode yang dieksekusi berulang kali.

Dengan ini dalam pikiran, Anda dapat dengan mudah memahami definisi while loop berikut:

While loop adalah konsep pemrograman yang, saat diimplementasikan, mengeksekusi suatu potongan kode berulang kali selama suatu kondisi yang diberikan masih bernilai benar.

Definisi di atas juga menyoroti tiga komponen yang Anda butuhkan untuk menyusun while loop di Python:

  • Keyword while;
  • Sebuah kondisi yang diterjemahkan menjadi True atau False; dan
  • Blok kode yang ingin Anda eksekusi berulang kali

Itu saja yang diperlukan!

Cara Membuat While Loop di Python

Sekarang Anda tahu apa yang dibutuhkan untuk menyusun while loop, yang tersisa adalah melihat contoh nyata di mana while loop digunakan sebelum Anda mulai berlatih sendiri! Pertimbangkan contoh berikut:

# Take user input
number = 2  

# Condition of the while loop
while number < 5 :  
    print("Thank you")
    # Increment the value of the variable "number by 1"
    number = number+1

# Thank you
# Thank you
# Thank you

Contoh kode di atas adalah while loop yang sangat sederhana: jika dipikirkan, tiga komponen yang telah Anda baca sebelumnya semuanya ada: keyword while, diikuti kondisi yang diterjemahkan menjadi True atau False (number < 5) dan blok kode yang ingin Anda eksekusi berulang kali:

print("Thank you")
number = number + 1

Jika Anda meninjau detail kode di atas, Anda melihat ada variabel number tempat Anda menyimpan bilangan bulat 2. Karena nilai dalam number lebih kecil dari 5, Anda mencetak "Thank you" dan menambah nilai number satu per satu. Selama nilai dalam number tetap lebih kecil dari 5, Anda terus mengeksekusi dua baris kode yang ada di dalam while loop:

"Thank you"
"Thank you"

Anda mencetak "Thank you" dua kali lagi sebelum nilai number sama dengan 5 dan kondisinya tidak lagi bernilai True. Karena kondisinya sekarang bernilai False, Anda akan keluar dari while loop dan melanjutkan program jika masih ada kode lain. Dalam kasus ini, tidak ada kode lagi sehingga program akan berhenti.

Contoh di atas agak dasar; Anda juga dapat menyertakan kondisi, atau dengan kata lain, sebuah kondisi if, untuk membuatnya lebih kustom. Lihat contoh berikut:

# Take user input
number = 2 

# Condition of the while loop
while number < 5 :  
    # Find the mod of 2
    if number%2 == 0:  
        print("The number "+str(number)+" is even")
    else:
        print("The number "+str(number)+" is odd")

    # Increment `number` by 1
    number = number+1

# The number 2 is even
# The number 3 is odd
# The number 4 is even

Sekarang, mari berlatih!

Tulislah fungsi collatz() yang memungkinkan pengguna memasukkan bilangan bulat ke dalam variabel bernama number. Jika number genap, maka seharusnya mencetak hasil number/2. Jika number ganjil, maka collatz() harus mencetak dan mengembalikan 3 * number + 1. Program harus terus memanggil fungsi collatz() pada number hingga mengembalikan 1.

Catatan bahwa ini sebenarnya adalah implementasi dari barisan Collatz, yang secara singkat merupakan masalah matematika di mana Anda memilih sebuah angka dan terus melakukan perhitungan di atas hingga Anda mencapai hasil 1.

Di bawah ini, Anda dapat menemukan solusinya:

def collatz(number):
    # Is the mod of 2 equal to 0?
    if number % 2 == 0:
        print(number // 2)
        return number // 2

    # If the mod of 2 isn't equal to 0, print `3 * number + 1`
    elif number % 2 == 1:
        result = 3 * number + 1
        print(result)
        return result

# Input   
n = 5

# As long as `n` is not equal to `1`, run `collatz()`
while n != 1:
    n = collatz(int(n))

# 16
# 8
# 4
# 2
# 1

Mulai Belajar Python Gratis

Introduction to Python

BeginnerSkill Level
4 Hr
6.9M learners
Kuasai dasar-dasar analisis data dengan Python hanya dalam empat jam. Kursus online ini akan memperkenalkan antarmuka Python dan mengeksplor paket-paket populer.
See DetailsRight Arrow

Intermediate Python

BeginnerSkill Level
4 Hr
1.4M learners
Tingkatkan keterampilan data science Anda dengan membuat visualisasi menggunakan Matplotlib dan memanipulasi DataFrame dengan pandas.

For Loop

Anda dapat menyikapi for loop dengan cara yang sama seperti while loop. Seperti yang mungkin Anda perkirakan, komponen "for" dalam "for loop" mengacu pada sesuatu yang Anda lakukan sejumlah kali tertentu.

Jika Anda mengingat semua hal di atas, Anda dapat dengan mudah mendefinisikan for loop sebagai berikut:

For loop adalah konsep pemrograman yang, saat diimplementasikan, mengeksekusi suatu potongan kode berulang kali "selama" sejumlah kali tertentu, berdasarkan sebuah sekuens.

Berbeda dengan while loop, tidak ada kondisi yang secara aktif terlibat — Anda hanya mengeksekusi sekelompok kode berulang kali untuk sejumlah kali. Dengan kata lain, sementara while loop terus mengeksekusi blok kode di dalamnya hanya sampai kondisinya True, for loop mengeksekusi kode di dalamnya hanya untuk jumlah tertentu. Jumlah ini ditentukan oleh sebuah sekuens atau daftar berurutan.

Anda akan mempelajari lebih lanjut tentang perbedaan antara while dan for loop sebentar lagi, tetapi untuk saat ini, fokuslah pada bagian-bagian berikut yang Anda butuhkan untuk membuat for loop:

  • Keyword for
  • Sebuah variabel
  • Keyword in
  • Fungsi range(), yang merupakan fungsi bawaan di pustaka Python untuk membuat sekuens angka
  • Kode yang ingin Anda eksekusi berulang kali

For Loop di Python

# Print "Thank you" 5 times
for number in range(5):
    print("Thank you")

# Thank you
# Thank you
# Thank you
# Thank you
# Thank you

Seperti yang Anda lihat, komponen yang Anda lihat pada bagian di atas muncul kembali dalam contoh kecil for loop di Python ini: keyword for, variabel number, keyword in, fungsi range() dan kode yang ingin Anda eksekusi berkali-kali, yaitu print("Thank you").

Tidak sulit, bukan?

Pertimbangkan contoh for loop lainnya, di mana Anda menggunakan dua variabel untuk menentukan alur kontrol:

languages = ['R', 'Python',  'Scala', 'Java', 'Julia']

for index in range(len(languages)):
   print('Current language:', languages[index])

# Current language: R
# Current language: Python
# Current language: Scala
# Current language: Java
# Current language: Julia

Seperti yang Anda lihat, Anda memulai loop dengan keyword for. Selanjutnya, Anda menggunakan variabel index dan languages, keyword in, dan fungsi range() untuk membuat sekuens angka. Selain itu, Anda juga menggunakan fungsi len() dalam kasus ini, karena daftar languages bukan numerik. Potongan kode yang ingin Anda eksekusi berulang kali adalah pernyataan print, yaitu print('Current language :', languages[index]).

Pada loop di atas, maksud Anda adalah untuk menyatakan bahwa untuk setiap indeks dalam rentang len(languages), Anda ingin mencetak bahasa pemrograman data science. Sekarang, len(languages) adalah 5, jadi pernyataan tersebut juga dapat ditulis ulang sebagai:

for index in range(5):
    print('Current language:', languages[index])

# Current language: R
# Current language: Python
# Current language: Scala
# Current language: Java
# Current language: Julia

Dan ini sekali lagi memberi Anda hasil yang sama!

While versus For Loop di Python

Mari meninjau kembali contoh while loop pertama untuk menentukan apa sebenarnya perbedaan antara while dan for loop. Anda sudah membaca di atas bahwa perbedaannya terletak pada ada atau tidaknya kondisi yang terlibat, tetapi bagaimana hal ini tercermin dalam kode dan bagaimana Anda mungkin beralih di antara keduanya?

# Take user input
number = 2  

while number < 5 :
    print("Thank you")
    # Increment `number` by 1
    number = number+1

# Thank you
# Thank you
# Thank you

Anda dapat menggunakan for loop untuk mencetak pernyataan "Thank you" dengan cara yang lebih terkontrol:

# Print "Thank you" 3 times
for number in range(3) :  
    print("Thank you")

# Thank you
# Thank you
# Thank you

Lihat betapa mudahnya mengonversi while loop menjadi for loop yang ekuivalen?

Bagaimana cara kerjanya, Anda bertanya? Sederhana.

Dalam for loop, bilangan bulat yang disebutkan di dalam fungsi range adalah jangkauan atau jumlah pengulangan kontrol untuk melakukan loop dan mengeksekusi kode dalam klausa for loop.

Catatan bahwa perhitungan fungsi range() dimulai dari 0 dan bukan dari 1. Artinya, dalam contoh di atas, hitungannya adalah 0,1,2 dan bukan 1,2,3. Begitulah cara penghitungan angka dalam memori komputer. Jadi, saat merancang for loop, selalu ingat bahwa Anda harus mempertimbangkan hitungan range mulai dari 0 dan bukan dari 1.

Tip: ini sama untuk list di Python, misalnya. Jika Anda ingin tahu lebih banyak tentang list Python, pertimbangkan untuk melihat tutorial DataCamp 18 Most Common Python List Questions.

Sekarang, ada perbedaan menarik lainnya antara for loop dan while loop. For loop lebih cepat daripada while loop. Untuk memahaminya Anda harus melihat contoh di bawah.

import timeit

# A for loop example
def for_loop():
    for number in range(10000) :  
        # Execute the below code 10000 times
        sum = 3+4
        #print(sum)

timeit.timeit(for_loop)

# 267.0804728891719
import timeit

# A while loop example
def while_loop():
    i =0
    while i<10000:
        sum = 3+4
        #print(sum)
        i+=1

timeit.timeit(while_loop)

# 884.9233417965908

Dalam potongan kode di atas, Anda memiliki dua loop dengan sekitar 10000 iterasi. Keduanya terlihat sama sekilas, sampai Anda melihat di balik layar dan memahami bagaimana kedua loop ini bekerja. Petunjuk: fungsi timeit() memberi Anda petunjuk tentang apa yang mungkin menjadi perbedaannya!

Ingat: semua kode Python dikompilasi dengan kompiler C, yang berarti kode yang Anda lihat di atas pertama-tama dipecah menjadi bytecode dan kemudian diproses oleh kompiler C yang mendasarinya.

Saat eksekusi for loop pada contoh di atas dimulai, interpreter Python berbicara dengan kompiler C di bawahnya dan kemudian membuat objek list berukuran 10000. Selanjutnya, ia memanggil iterator untuk menyusuri indeks pada masing-masing dari 10000 item dalam list.

Eksekusi while loop, di sisi lain, tidak membuat objek list apa pun. Faktanya, kompiler C yang mendasari memanggil operator perbandingan boolean untuk kondisi i<10000 sebanyak 9999 kali.

Anda sudah bisa membayangkan bahwa mengiterasi objek list yang sudah dibuat dengan 10000 elemen lebih mudah bagi kompiler dibandingkan melakukan operasi boolean berulang kali sebanyak 9999 kali, sehingga kinerja waktu for loop lebih baik daripada while loop. Hal ini jelas tercermin dalam waktu eksekusi: waktu yang dibutuhkan for loop untuk selesai jauh lebih kecil daripada waktu yang dibutuhkan while loop untuk selesai.

eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6IiMgU2V0IGBmaWJfbm9gIHRvIDU1LCB0aGUgbnVtYmVyIHVudGlsIHdoZXJlIHlvdSB3YW50IHRvIHByaW50XG5maWJfbm8gPSA1NVxuXG4jIFNldCBgZmlyc3Rfbm9gIHRvIDBcbmZpcnN0X25vID0gMFxuXG4jIFNldCBgc2Vjb25kX25vYCB0byAxXG5zZWNvbmRfbm8gPSAxXG5cbiMgU2V0IHRoZSBjb3VudGVyIGBjb3VudGAgdG8gMCBcbmNvdW50ID0gMFxuXG4jIHdoaWxlIGxvb3AgdG8gcHJpbnQgdGhlIGZpYm9uYWNjaSBzZXJpZXMgdW50aWwgdGhlIGBmaWJfbm9gXG53aGlsZSBmaXJzdF9ubyA8PSBmaWJfbm86XG4gICAgICAgIyBQcmludCBgZmlyc3Rfbm9gXG4gICAgICAgcHJpbnQoZmlyc3Rfbm8pXG4gICAgICAgXG4gICAgICAgIyBGaWJvbm5hY2NpIG51bWJlclxuICAgICAgIG50aCA9IGZpcnN0X25vICsgX19fX19fX19fX1xuICAgICAgIFxuICAgICAgICMgdXBkYXRlIHZhbHVlcyBvZiBgZmlyc3Rfbm9gIGFuZCBgc2Vjb25kX25vYFxuICAgICAgIGZpcnN0X25vID0gX19fX19fX19fX19fXG4gICAgICAgc2Vjb25kX25vID0gX19fXG4gICAgICAgXG4gICAgICAgIyBTZXQgY291bnRlciBgY291bnRgICsxXG4gICAgICAgX19fX19fX19fXyIsInNvbHV0aW9uIjoiIyBTZXQgYGZpYl9ub2AgdG8gNTUsIHRoZSBudW1iZXIgdW50aWwgd2hlcmUgeW91IHdhbnQgdG8gcHJpbnRcbmZpYl9ubyA9IDU1XG5cbiMgU2V0IGBmaXJzdF9ub2AgdG8gMFxuZmlyc3Rfbm8gPSAwXG5cbiMgU2V0IGBzZWNvbmRfbm9gIHRvIDEcbnNlY29uZF9ubyA9IDFcblxuIyBTZXQgdGhlIGNvdW50ZXIgYGNvdW50YCB0byAwIFxuY291bnQgPSAwXG5cbiMgd2hpbGUgbG9vcCB0byBwcmludCB0aGUgZmlib25hY2NpIHNlcmllcyB1bnRpbCB0aGUgYGZpYl9ub2BcbndoaWxlIGZpcnN0X25vIDw9IGZpYl9ubzpcbiAgICAgICAjIFByaW50IGBmaXJzdF9ub2BcbiAgICAgICBwcmludChmaXJzdF9ubylcbiAgICAgICBcbiAgICAgICAjIEZpYm9ubmFjY2kgbnVtYmVyXG4gICAgICAgbnRoID0gZmlyc3Rfbm8gKyBzZWNvbmRfbm9cbiAgICBcbiAgICAgICAjIHVwZGF0ZSB2YWx1ZXMgb2YgYGZpcnN0X25vYCBhbmQgYHNlY29uZF9ub2BcbiAgICAgICBmaXJzdF9ubyA9IHNlY29uZF9ub1xuICAgICAgIHNlY29uZF9ubyA9IG50aFxuICAgICAgIFxuICAgICAgICMgU2V0IGNvdW50ZXIgYGNvdW50YCArMVxuICAgICAgIGNvdW50ICs9IDEiLCJzY3QiOiJFeCgpLmNoZWNrX29iamVjdChcImZpYl9ub1wiLCAwKS5oYXNfZXF1YWxfdmFsdWUoaW5jb3JyZWN0X21zZz1cIkRpZCB5b3UgY29ycmVjdGx5IGRlZmluZSBgZmliX25vYD9cIilcbkV4KCkuaGFzX2VxdWFsX2FzdChcIllvdSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgYGZpcnN0X25vYCFcIiwgY29kZT1cImZpcnN0X25vID0gMFwiLCBleGFjdD1GYWxzZSlcbkV4KCkuaGFzX2VxdWFsX2FzdChcIllvdSBkb24ndCBuZWVkIHRvIGNoYW5nZSB0aGUgdmFsdWUgb2YgYHNlY29uZF9ub2AhXCIsIGNvZGU9XCJzZWNvbmRfbm8gPSAxXCIsIGV4YWN0PUZhbHNlKVxuRXgoKS5oYXNfZXF1YWxfYXN0KFwiWW91IGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBgY291bnRgIVwiLCBjb2RlPVwiY291bnQgPSAwXCIsIGV4YWN0PUZhbHNlKVxuXG5FeCgpLmNoZWNrX3doaWxlKDApLmNoZWNrX3Rlc3QoKS5oYXNfZXF1YWxfYXN0KClcbkV4KCkuY2hlY2tfd2hpbGUoMCkuY2hlY2tfYm9keSgpLmNoZWNrX2Z1bmN0aW9uKFwicHJpbnRcIiwgMClcbkV4KCkuY2hlY2tfd2hpbGUoMCkuY2hlY2tfYm9keSgpLmhhc19lcXVhbF9hc3QoXCJJdCBsb29rcyBsaWtlIHRoZSBjb250ZW50cyBvZiBgbnRoYCBhcmVuJ3QgY29ycmVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZT1cIm50aCA9IGZpcnN0X25vICsgc2Vjb25kX25vXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0PUZhbHNlKVxuRXgoKS5jaGVja193aGlsZSgwKS5jaGVja19ib2R5KCkuaGFzX2VxdWFsX2FzdChcIkl0IGxvb2tzIGxpa2UgdGhlIGNvbnRlbnRzIG9mIGBmaXJzdF9ub2AgYXJlbid0IGNvcnJlY3QuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9XCJmaXJzdF9ubyA9IHNlY29uZF9ub1wiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFjdD1GYWxzZSlcbkV4KCkuY2hlY2tfd2hpbGUoMCkuY2hlY2tfYm9keSgpLmhhc19lcXVhbF9hc3QoXCJJdCBsb29rcyBsaWtlIHRoZSBjb250ZW50cyBvZiBgc2Vjb25kX25vYCBhcmVuJ3QgY29ycmVjdC5cIixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29kZT1cInNlY29uZF9ubyA9IG50aFwiLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBleGFjdD1GYWxzZSlcbkV4KCkuY2hlY2tfd2hpbGUoMCkuY2hlY2tfYm9keSgpLmhhc19lcXVhbF9hc3QoXCJJdCBsb29rcyBsaWtlIHRoZSB2YWx1ZSBvZiBgY291bnRgIGlzbid0IGNvcnJlY3QuXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvZGU9XCJjb3VudCArPSAxXCIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGV4YWN0PUZhbHNlKSJ9

Sekarang coba for loop! Perhatikan bahwa Anda ingin menentukan range dari 0 hingga 11, karena Anda ingin menampilkan hanya angka dalam sekuens hingga 55, yang merupakan angka ke-11 dalam sekuens.

eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6IiMgSW5pdGlhbGl6ZSBgZmlyc3Rfbm9gIHRvIGAwYFxuZmlyc3Rfbm8gPSAwXG5cbiMgSW5pdGlhbGl6ZSBgc2Vjb25kX25vYCB0byBgMWBcbnNlY29uZF9ubyA9IDFcblxuIyBJbml0aWFsaXplIGBudW1iZXJzYFxubnVtYmVycyA9IF9fX19fX19fX19fXG5cbiMgRmluZCBhbmQgZGlzcGxheSBGaWJvbmFjY2kgc2VyaWVzXG5mb3IgbnVtIGluIF9fX19fX186XG4gICAgICAgICAgIGlmKG51bSA8PSAxKTpcbiAgICAgICAgICAgIyBVcGRhdGUgb25seSBgbnRoYFxuICAgICAgICAgICAgICAgICAgICAgIG50aCA9IF9fX1xuICAgICAgICAgICBlbHNlOlxuICAgICAgICAgICAjIFVwZGF0ZSB0aGUgdmFsdWVzIGBudGhgLCBgZmlyc3Rfbm9gIGFuZCBgc2Vjb25kX25vYFxuICAgICAgICAgICAgICAgICAgICAgIG50aCA9IGZpcnN0X25vICsgc2Vjb25kX25vXG4gICAgICAgICAgICAgICAgICAgICAgZmlyc3Rfbm8gPSBzZWNvbmRfbm9cbiAgICAgICAgICAgICAgICAgICAgICBzZWNvbmRfbm8gPSBfX19fX19fX19fXG4gICAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICMgUHJpbnQgYG50aGBcbiAgICAgICAgICAgcHJpbnQobnRoKSIsInNvbHV0aW9uIjoiIyBJbml0aWFsaXplIGBmaXJzdF9ub2AgdG8gYDBgXG5maXJzdF9ubyA9IDBcblxuIyBJbml0aWFsaXplIGBzZWNvbmRfbm9gIHRvIGAxYFxuc2Vjb25kX25vID0gMVxuICAgICAgICAgICBcbiMgSW5pdGlhbGl6ZSBgbnVtYmVyc2Bcbm51bWJlcnMgPSByYW5nZSgwLDExKVxuXG4jIEZpbmQgYW5kIGRpc3BsYXkgRmlib25hY2NpIHNlcmllc1xuZm9yIG51bSBpbiBudW1iZXJzOlxuICAgICAgICAgICBpZihudW0gPD0gMSk6XG4gICAgICAgICAgICMgVXBkYXRlIG9ubHkgYG50aGBcbiAgICAgICAgICAgICAgICAgICAgICBudGggPSBudW1cbiAgICAgICAgICAgZWxzZTpcbiAgICAgICAgICAgIyBVcGRhdGUgdGhlIHZhbHVlcyBgbnRoYCwgYGZpcnN0X25vYCBhbmQgYHNlY29uZF9ub2BcbiAgICAgICAgICAgICAgICAgICAgICBudGggPSBmaXJzdF9ubyArIHNlY29uZF9ub1xuICAgICAgICAgICAgICAgICAgICAgIGZpcnN0X25vID0gc2Vjb25kX25vXG4gICAgICAgICAgICAgICAgICAgICAgc2Vjb25kX25vID0gbnRoXG5cbiAgICAgICAgICAgIyBQcmludCBgbnRoYFxuICAgICAgICAgICBwcmludChudGgpIiwic2N0IjoiRXgoKS5oYXNfZXF1YWxfYXN0KFwiWW91IGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBgZmlyc3Rfbm9gIVwiLCBjb2RlPVwiZmlyc3Rfbm8gPSAwXCIsIGV4YWN0PUZhbHNlKVxuRXgoKS5oYXNfZXF1YWxfYXN0KFwiWW91IGRvbid0IG5lZWQgdG8gY2hhbmdlIHRoZSB2YWx1ZSBvZiBgc2Vjb25kX25vYCFcIiwgY29kZT1cInNlY29uZF9ubyA9IDFcIiwgZXhhY3Q9RmFsc2UpXG5FeCgpLmNoZWNrX29iamVjdChcIm51bWJlcnNcIilcblxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19pdGVyKCkuaGFzX2VxdWFsX2FzdCgpXG5cbkV4KCkuY2hlY2tfZm9yX2xvb3AoMCkuY2hlY2tfYm9keSgpLmNoZWNrX2lmX2Vsc2UoMCkuY2hlY2tfdGVzdCgpLmhhc19lcXVhbF9hc3QoXCJEaWQgeW91IGNvcnJlY3RseSBjaGVjayB0aGF0IHRoZSBudW1iZXIgaXMgc21hbGxlciBvciBlcXVhbCB0aGFuIDE/XCIsIGNvZGU9XCJudW0gPD0gMVwiLCBleGFjdD1GYWxzZSlcbkV4KCkuY2hlY2tfZm9yX2xvb3AoMCkuY2hlY2tfYm9keSgpLmNoZWNrX2lmX2Vsc2UoMCkuY2hlY2tfYm9keSgpLmhhc19lcXVhbF9hc3QoXCJJdCBsb29rcyBsaWtlIHRoZSBjb250ZW50cyBvZiBgbnRoYCBhcmVuJ3QgY29ycmVjdC5cIiwgY29kZT1cIm50aCA9IG51bVwiLCBleGFjdD1GYWxzZSlcblxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19ib2R5KCkuY2hlY2tfaWZfZWxzZSgwKS5jaGVja19vcmVsc2UoKS5oYXNfZXF1YWxfYXN0KFwiSXQgbG9va3MgbGlrZSB0aGUgY29udGVudHMgb2YgYG50aGAgYXJlbid0IGNvcnJlY3QuXCIsY29kZT1cIm50aCA9IGZpcnN0X25vICsgc2Vjb25kX25vXCIsIGV4YWN0PUZhbHNlKVxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19ib2R5KCkuaGFzX2VxdWFsX2FzdChcIkl0IGxvb2tzIGxpa2UgdGhlIGNvbnRlbnRzIG9mIGBmaXJzdF9ub2AgYXJlbid0IGNvcnJlY3QuXCIsY29kZT1cImZpcnN0X25vID0gc2Vjb25kX25vXCIsIGV4YWN0PUZhbHNlKVxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19ib2R5KCkuaGFzX2VxdWFsX2FzdChcIkl0IGxvb2tzIGxpa2UgdGhlIGNvbnRlbnRzIG9mIGBzZWNvbmRfbm9gIGFyZW4ndCBjb3JyZWN0LlwiLCBjb2RlPVwic2Vjb25kX25vID0gbnRoXCIsIGV4YWN0PUZhbHNlKVxuXG5FeCgpLmNoZWNrX2Zvcl9sb29wKDApLmNoZWNrX2JvZHkoKS50ZXN0X2Z1bmN0aW9uKFwicHJpbnRcIiwgZG9fZXZhbD1GYWxzZSwgY29weT1GYWxzZSkifQ==

Nested Loop

Seperti yang dapat Anda lihat pada contoh di atas, terdapat kondisi if-else di dalam while loop yang memungkinkan Anda memasukkan kondisi lebih lanjut dalam kode Anda.

Tunggu dulu!

Ini bukan satu-satunya cara untuk menyesuaikan loop Anda. Anda juga dapat menyertakan lebih banyak while loop di dalam kode yang sudah ada dan ini dikenal sebagai nested loop. Anda dapat memodifikasi contoh di atas untuk menyertakan while loop lainnya seperti di bawah ini:

# Take user input
number = 2 

# condition of the while loop
while number < 5 :  
    # condition of the nested while loop    
    while number % 2 == 0: 
        print("The number "+ str(number)+" is even")

Pada contoh di atas ada while loop lain yang "dinest" di dalam loop luar, loop dalam ini menambahkan pemeriksaan lain untuk melihat apakah number % (mod) 2 adalah 0.

Dengan kata lain, ia memeriksa apakah angkanya genap dan kemudian mencetak pernyataan "The number is even".

Tetapi ada masalah: jika Anda perhatikan, seperti kode sebelumnya pernyataan number=number+1 kali ini tidak ada. Karena Anda tidak menambah variabel number di mana pun, nilai variabel tetap sama setiap saat dan kode memasuki infinite loop. Artinya, setelah masuk ke loop, ia tidak pernah keluar dan mencetak pernyataan tersebut tanpa henti karena variabel number akan selalu bernilai 2. Angka ini, tentu saja, kurang dari 5 dan merupakan angka genap.

Sekarang mari lihat seperti apa nested for loop:

# Print the below statement 3 times
for number in range(3) :  
    print("-------------------------------------------")
    print("I am outer loop iteration "+str(number))
    # Inner loop
    for another_number in range(5):  
        print("****************************")
        print("I am inner loop iteration "+str(another_number))
-------------------------------------------
I am outer loop iteration 0
****************************
I am inner loop iteration 0
****************************
I am inner loop iteration 1
****************************
I am inner loop iteration 2
****************************
I am inner loop iteration 3
****************************
I am inner loop iteration 4
-------------------------------------------
I am outer loop iteration 1
****************************
I am inner loop iteration 0
****************************
I am inner loop iteration 1
****************************
I am inner loop iteration 2
****************************
I am inner loop iteration 3
****************************
I am inner loop iteration 4
-------------------------------------------
I am outer loop iteration 2
****************************
I am inner loop iteration 0
****************************
I am inner loop iteration 1
****************************
I am inner loop iteration 2
****************************
I am inner loop iteration 3
****************************
I am inner loop iteration 4

Kode di atas adalah versi modifikasi dari contoh for loop pertama. Perhatikan bagaimana for loop kedua digunakan di dalam loop luar.

Silakan jalankan kodenya.

Anda akan mendapati bahwa kontrol masuk ke for loop pertama dan nilai variabel number diinisialisasi sebagai 0. Pernyataan print pertama dicetak, lalu kontrol masuk ke for loop kedua, di mana nilai variabel another_number diinisialisasi ke 0. Pernyataan print pertama dalam for loop kedua dicetak sekali.

Sekarang, kontrol kembali ke for loop dalam sekali lagi dan nilai another_number kembali diinisialisasi ke bilangan bulat berikutnya diikuti dengan mencetak pernyataan di dalam fungsi print().

Proses di atas berlanjut hingga kontrol menelusuri akhir fungsi range(), yang dalam kasus ini adalah 5, lalu kontrol kembali ke loop terluar, menginisialisasi variabel number ke bilangan bulat berikutnya, mencetak pernyataan di dalam fungsi print(), mengunjungi loop dalam lalu mengulangi semua langkah di atas hingga fungsi range() ditelusuri.

Perjalanan kontrol dari loop terluar, menelusuri loop dalam dan kembali lagi ke for loop luar ini berlanjut hingga kontrol mencakup seluruh range, yaitu 3 kali dalam kasus Anda.

Sekarang setelah Anda membaca beberapa penjelasan tentang nested loop, saatnya Anda mulai sendiri! Tulis program Python untuk membentuk pola berikut, menggunakan nested for loop: loops Python

eyJsYW5ndWFnZSI6InB5dGhvbiIsInNhbXBsZSI6IiMgSW5pdGlhbGl6ZSB0aGUgZmlyc3QgZml2ZSByb3dzXG5uID0gX1xuXG4jIFN0YXJ0IHRoZSBsb29wIHRvIHByaW50IHRoZSBmaXJzdCBmaXZlIHJvd3NcbmZvciBpIGluIHJhbmdlKF8pOlxuICAgIGZvciBqIGluIHJhbmdlKGkpOlxuICAgICAgICBwcmludCgnKiAnLCBlbmQ9XCJcIilcbiAgICBwcmludCgnJylcblxuIyBTdGFydCB0aGUgbG9vcCB0byBwcmludCB0aGUgcmVtYWluaW5nIHJvd3MgaW4gZGVjcmVhc2luZyBvcmRlciBvZiBzdGFyc1xuZm9yIGkgaW4gcmFuZ2UobiwwLC0xKTpcbiAgICBmb3IgaiBpbiByYW5nZShfKTpcbiAgICAgICAgcHJpbnQoJyogJywgZW5kPVwiXCIpXG4gICAgcHJpbnQoJycpIiwic29sdXRpb24iOiIjIEluaXRpYWxpemUgdGhlIGZpcnN0IGZpdmUgcm93c1xubiA9IDVcblxuIyBTdGFydCB0aGUgbG9vcCB0byBwcmludCB0aGUgZmlyc3QgZml2ZSByb3dzXG5mb3IgaSBpbiByYW5nZShuKTpcbiAgICBmb3IgaiBpbiByYW5nZShpKTpcbiAgICAgICAgcHJpbnQoJyogJywgZW5kPVwiXCIpXG4gICAgcHJpbnQoJycpXG5cbiMgU3RhcnQgdGhlIGxvb3AgdG8gcHJpbnQgdGhlIHJlbWFpbmluZyByb3dzIGluIGRlY3JlYXNpbmcgb3JkZXIgb2Ygc3RhcnNcbmZvciBpIGluIHJhbmdlKG4sMCwtMSk6XG4gICAgZm9yIGogaW4gcmFuZ2UoaSk6XG4gICAgICAgIHByaW50KCcqICcsIGVuZD1cIlwiKVxuICAgIHByaW50KCcnKSIsInNjdCI6IkV4KCkuaGFzX2VxdWFsX2FzdChcIkluaXRpYWxpemUgdGhlIHZhbHVlIG9mIGBuYCBhdCA1IVwiLCBjb2RlPVwibiA9IDVcIiwgZXhhY3Q9RmFsc2UpXG5cbkV4KCkuY2hlY2tfZm9yX2xvb3AoMCkuY2hlY2tfaXRlcigpLmhhc19lcXVhbF9hc3QoXCJyYW5nZShuKVwiKVxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19ib2R5KCkuY2hlY2tfZm9yX2xvb3AoMCkuY2hlY2tfaXRlcigpLmhhc19lcXVhbF9hc3QoXCJyYW5nZShpKVwiKVxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19ib2R5KCkuY2hlY2tfZm9yX2xvb3AoMCkuY2hlY2tfaXRlcigpLmhhc19lcXVhbF9hc3QoXCJwcmludCAoJyogJywgZW5kPVxcXCJcXFwiKVwiKVxuRXgoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19ib2R5KCkudGVzdF9mdW5jdGlvbihcInByaW50XCIsIDEpXG5cbkV4KCkuY2hlY2tfZm9yX2xvb3AoMSkuY2hlY2tfaXRlcigpLmhhc19lcXVhbF9hc3QoXCJyYW5nZShuLDAsLTEpXCIpXG5FeCgpLmNoZWNrX2Zvcl9sb29wKDEpLmNoZWNrX2JvZHkoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19pdGVyKCkuaGFzX2VxdWFsX2FzdChcInJhbmdlKGkpXCIpXG5FeCgpLmNoZWNrX2Zvcl9sb29wKDEpLmNoZWNrX2JvZHkoKS5jaGVja19mb3JfbG9vcCgwKS5jaGVja19pdGVyKCkuaGFzX2VxdWFsX2FzdChcInByaW50ICgnKiAnLCBlbmQ9XFxcIlxcXCIpXCIpXG5FeCgpLmNoZWNrX2Zvcl9sb29wKDEpLmNoZWNrX2JvZHkoKS50ZXN0X2Z1bmN0aW9uKFwicHJpbnRcIiwgMSkifQ==

break dan continue: Membuat Infinite Loop

Anda dapat menggunakan break dan continue di loop mana pun yang Anda buat. Keyword ini tidak terbatas untuk memutus infinite loop yang disengaja, tetapi sebaiknya digunakan dengan hati-hati. Keduanya membuat orang lain —termasuk diri Anda sendiri dalam beberapa bulan saat melihat kembali kode Anda— lebih sulit memahami alur kontrol dalam loop dan di mana kondisi berakhir. Selain itu, Anda tidak perlu menggunakan keyword break dan continue: seperti yang telah Anda lihat sejauh ini, Anda baik-baik saja tanpa keduanya!

Namun, dalam beberapa kasus, akan lebih jelas menulis infinite loop yang disengaja daripada for dan while loop tradisional yang telah Anda lihat sejauh ini. Tentu saja, dalam kasus tersebut penggunaan keyword ini dianjurkan!

Memutus dan Melanjutkan While Loop di Python

Untungnya, ada cara untuk keluar dari situasi infinite loop di atas yaitu menggunakan keyword break.

# Take user input
number = 2 

# Condition of the while loop
while number < 5 :  
    # condition of the nested while loop
    while number % 2 == 0:  
        print("The number "+str(number)+" is even")
        break

    number+=1

Saat Anda menjalankan kode di atas, kode tidak lagi masuk ke infinite loop.

"Ilmu sihir apa ini!" Anda berteriak. - Tenang, ini bukan sihir.

Yang terjadi adalah ketika kontrol menemui keyword break ia memahami bahwa ia harus keluar dari loop (loop dalam dalam kasus ini) dan mengeksekusi baris kode berikutnya. Jadi ia keluar dari while loop dalam dan kembali ke loop luar serta melanjutkan tugas biasanya sampai kondisi di while loop luar masih bernilai benar.

Anda harus mempertimbangkan bahwa harus ada baris kode setelah keyword break atau jika tidak, keyword tersebut tidak akan berdampak apa-apa. Cobalah hapus baris kode setelah keyword break pada contoh di atas lalu eksekusi kodenya.

Bagaimana jika Anda menyelipkan keyword continue setelah pernyataan break? Anda dapat mengikuti kode di bawah:

number = 2 

while number < 5 :
    while number % 2 == 0: 
        print("The number "+str(number)+" is even")
        break

    continue

    number+=1

Kode di atas adalah versi yang sedikit dimodifikasi dari contoh keyword break.

Saat Anda menjalankan kode di atas, Anda akan kembali menemui infinite loop. Sebelum Anda frustrasi, perhatikan lebih saksama. Anda akan melihat ada keyword continue setelah break. Keyword continue mengembalikan kontrol ke loop terluar bahkan sebelum variabel number ditambah, dan karena itu kode masuk ke infinite loop.

Memutus dan Melanjutkan For Loop

Bagaimana jika Anda tidak ingin mengeksekusi for loop dalam pada contoh di atas untuk seluruh range? Anda dapat menggunakan pernyataan break dengan cara yang mirip seperti pada while loop.

# Print the below statement 3 times
for number in range(3) : 
    print("-------------------------------------------")
    print("I am outer loop iteration "+str(number))
    for another_number in range(3):
        print("****************************")
        print("I am inner loop iteration "+str(another_number))
        break

Pada contoh di atas, keyword break setelah loop dalam menginstruksikan kontrol untuk keluar dari loop dalam, setelah itu kontrol kembali ke loop luar.

Jalankan contoh kode di bawah ini:

# Print the below statement 3 times
for number in range(3) :  
    print("-------------------------------------------")
    print("I am outer loop iteration "+str(number))
    continue
    for another_number in range(3):
        print("****************************")
        print("I am inner loop iteration "+str(another_number))
        break

Pada kode di atas hanya loop terluar yang dieksekusi dan kontrol tidak menyentuh loop dalam.

"Kenapa?" Anda bertanya.

Perhatikan kode lebih dekat. Ada keyword continue tepat setelah pernyataan print kedua di loop terluar. Keyword ini menginstruksikan kontrol untuk kembali ke for loop luar dan mulai lagi dan itulah sebabnya kontrol tidak pernah menyentuh loop dalam.

Tidak seperti pada while loop, Anda tidak memerlukan potongan kode setelah keyword break dalam for loop. Break sendirian akan bekerja dengan baik di dalam for loop.

range() versus xrange()

Kedua fungsi ini serupa satu sama lain, tetapi jika Anda menggunakan Python 3, Anda hanya akan memiliki fungsi range(). Di Python 3.x, fungsi xrange() diganti nama menjadi range(). Artinya jika Anda mencoba menggunakan fungsi xrange() dengan Python 3, Anda akan mendapatkan error NameError: name 'xrange' is not defined.

Untuk memahami bagaimana kedua fungsi ini serupa, pertimbangkan contoh berikut:

# Print the below statement 3 times
for number in range(5,10,2) :  
    print("I am number : "+str(number))

# I am number : 5
# I am number : 7
# I am number : 9

Dengan menjalankan kode di atas, Anda akan melihat bagaimana nilai variabel number dilompati dengan faktor 2, dan itu karena parameter pada fungsi range().

Parameter pertama pada fungsi ini adalah parameter start. Itulah titik dari mana kontrol mulai menghitung. Parameter kedua adalah parameter stop yaitu titik di mana kontrol harus berhenti dan parameter terakhir adalah step, yang mendefinisikan faktor lompatan saat menghitung.

Jadi, pada kasus di atas, kontrol mulai dari 5 kemudian menelusuri loop hingga 9 sambil menambah 2 pada setiap hitungan. Ini berarti 5, 5+2=7, 7+2=9.

Anda telah mempelajari bagaimana fungsi range() digunakan untuk menentukan berapa kali kode Anda harus melakukan loop. Sekarang, di Python 2.x, Anda juga akan menemukan cara lain untuk melakukan ini yaitu dengan fungsi xrange(). Jalankan kode di bawah:

# Print the below statement 3 times
for number in xrange(10) :  
    print("I am number : "+str(number))
I am number : 0
I am number : 1
I am number : 2
I am number : 3
I am number : 4
I am number : 5
I am number : 6
I am number : 7
I am number : 8
I am number : 9

Perbedaan apa yang Anda lihat pada output kode di atas vs output kode tanpa fungsi xrange()? Tidak ada perbedaan?

Benar. Anda tidak akan melihat perbedaan pada output kode.

Lalu mengapa Anda harus menggunakan fungsi xrange()? Anda akan sampai ke sini sedikit lebih jauh dalam tutorial. Pertama jalankan kode di bawah ini:

print(xrange(10))
print(range(10))
xrange(10)
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

Anda dapat melihat bahwa pada output kode di atas, ada perbedaan pada output kedua pernyataan print. Pada pernyataan print yang berisi fungsi xrange(), Anda mendapatkan objek fungsi xrange() yang dicetak. Ini berbeda dengan pernyataan print yang memiliki fungsi range(): di sana, Anda mendapatkan list bilangan bulat dari 0 hingga 9.

Nah, inilah tepatnya perbedaan antara fungsi range() dan fungsi xrange().

Saat Anda mendefinisikan fungsi range(), list dari seluruh range disimpan di RAM dan disajikan kepada Anda. Namun, saat Anda mendefinisikan fungsi xrange(), list tidak disimpan di memori. Sebaliknya, fungsi xrange() menghasilkan bilangan bulat di seluruh range saat Anda membutuhkannya. Dengan cara ini, fungsi xrange() membantu menghemat memori pada sistem yang sumber dayanya terbatas.

Asah Kemampuan Python Anda!

Selamat, Anda telah mencapai akhir tutorial ini. Sekarang setelah Anda mempelajari cara menggunakan loop di Python, silakan berlatih. Semakin sering berlatih, semakin baik!

Topik

Kursus Python Terkait

Kursus

Pengantar Python

4 Hr
6.9M
Kuasai dasar-dasar analisis data dengan Python dalam 4 jam. Kursus online ini memperkenalkan antarmuka Python dan pustaka populer.
Lihat DetailRight Arrow
Mulai Kursus
Lihat Lebih BanyakRight Arrow