[{"data":1,"prerenderedAt":335},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-perulangan-dengan-for-loop-pada-python-id":72},{},{"featuredPost":5,"navigations":29},{"id":6,"title":7,"title_en":8,"slug":9,"excerpt":10,"excerpt_en":11,"has_translation":12,"published_at":13,"reading_time":14,"hidden_from_listing":15,"tags":16,"thumbnail_image":21,"og_image":22,"series":23,"authors":28},110,"Ketika Pilih Framework Cuma Biar Kelihatan Beda","When You Pick a Framework Just to Look Different","ketika-pilih-framework-cuma-biar-kelihatan-beda","Terakhir kali kamu milih framework atau library baru, itu karena masalahmu butuh alat itu, atau karena alatnya kedengaran keren dan belum banyak yang pakai? Pertanyaan ini nggak enak dijawab. Soalnya keputusan teknologi sering diambil dengan alasan yang nggak pernah ditulis di dokumen teknis mana pun.","The last time you chose a new framework or library, was it because your problem needed that tool, or because it sounded cool and few people around you were using it? That question is uncomfortable. Technology decisions are often made for reasons that never appear in any technical document.",true,"2026-10-06T15:25:21.000Z",5,false,[17,18,19,20],"karier","framework","opini","pengalaman",null,"\u002Fog\u002Fketika-pilih-framework-cuma-biar-kelihatan-beda.png",{"id":24,"title":25,"title_en":26,"slug":27},9,"Artikel","Articles","all",[],[30,46,67],{"collection":31,"item":32},"series",{"__typename":31,"title":25,"title_en":26,"slug":27,"children_series":33},[34,38,42],{"title":35,"title_en":36,"slug":37},"Kecerdasan Artifisial","Artificial Intelligence","kecerdasan-artifisial",{"title":39,"title_en":40,"slug":41},"Konsep Dasar Pemrograman","Programming Fundamentals","konsep-dasar-pemrograman",{"title":43,"title_en":44,"slug":45},"Algoritma dan Struktur Data","Algorithms and Data Structures","algoritma-struktur-data",{"collection":31,"item":47},{"__typename":31,"title":48,"title_en":48,"slug":49,"children_series":50},"Tutorial","tutorial",[51,55,59,63],{"title":52,"title_en":53,"slug":54},"Belajar Python","Learning Python","belajar-python",{"title":56,"title_en":57,"slug":58},"Belajar Golang","Learning Go","belajar-golang",{"title":60,"title_en":61,"slug":62},"Belajar Java","Learning Java","belajar-java",{"title":64,"title_en":65,"slug":66},"Belajar Pascal","Learning Pascal","belajar-pascal",{"collection":31,"item":68},{"__typename":31,"title":69,"title_en":69,"slug":70,"children_series":71},"Lab","lab",[],{"article":73,"renderedBody":218,"renderedTakeaway":219,"latestArticles":220,"toc":315},{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":14,"hidden_from_listing":15,"tags":81,"thumbnail_image":21,"og_image":86,"series":87,"authors":211,"body_locale":214,"available_locales":215,"body":217,"takeway":21,"prerequisite":21},93,"Perulangan dengan FOR Loop pada Python","Repetition with the FOR Loop in Python","perulangan-dengan-for-loop-pada-python","for loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya.","A for loop is a loop where you already know when it starts and when it ends.","2021-07-10T03:46:32.000Z",[82,83,84,85],"python","perulangan","loop","struktur-kontrol","\u002Fog\u002Fperulangan-dengan-for-loop-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91,"description":92,"description_en":93,"articles":94,"children_series":180,"parent_series":181},19,"Struktur Kontrol","Control Structures","python-struktur-kontrol","Bikin program yang bisa ngambil keputusan dan ngulang pekerjaan — percabangan, perulangan, sampai list comprehension.","Make a program decide things and repeat work: branching, loops, and list comprehension.",[95,115,120,135,149,164],{"id":96,"title":97,"title_en":98,"slug":99,"excerpt":100,"excerpt_en":101,"has_translation":12,"published_at":102,"reading_time":103,"hidden_from_listing":15,"tags":104,"thumbnail_image":21,"og_image":106,"series":107,"authors":108},92,"Percabangan dengan IF, ELIF, ELSE pada Python","Branching with IF, ELIF, ELSE in Python","percabangan-dengan-if-elif-else-pada-python","Conditional statement bertugas untuk menjalankan perintah sesuai kondisi. Pada python, hal ini ditangani oleh if statement.","A conditional statement runs a command only when its condition holds. In Python, the if statement handles that job.","2021-05-28T03:36:19.000Z",3,[82,105,85],"percabangan","\u002Fog\u002Fpercabangan-dengan-if-elif-else-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[109],{"authors_id":110},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":14,"hidden_from_listing":15,"tags":81,"thumbnail_image":21,"og_image":86,"series":116,"authors":117},{"id":88,"title":89,"title_en":90,"slug":91},[118],{"authors_id":119},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":121,"title":122,"title_en":123,"slug":124,"excerpt":125,"excerpt_en":126,"has_translation":12,"published_at":127,"reading_time":128,"hidden_from_listing":15,"tags":129,"thumbnail_image":21,"og_image":130,"series":131,"authors":132},94,"Perulangan dengan WHILE Loop pada Python","Repetition with the WHILE Loop in Python","perulangan-dengan-while-loop-pada-python","Berbeda dengan perulangan for, dengan while kita akan menggunakan kondisi boolean sebagai pengendalinya.","Unlike the for loop, a while loop uses a boolean condition as its controller.","2021-07-21T03:52:03.000Z",4,[82,83,84,85],"\u002Fog\u002Fperulangan-dengan-while-loop-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[133],{"authors_id":134},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":136,"title":137,"title_en":138,"slug":139,"excerpt":140,"excerpt_en":141,"has_translation":12,"published_at":142,"reading_time":103,"hidden_from_listing":15,"tags":143,"thumbnail_image":21,"og_image":144,"series":145,"authors":146},95,"Statement BREAK dan CONTINUE pada Python","The BREAK and CONTINUE Statements in Python","statement-break-dan-continue-pada-python","Python memiliki statement break dan continue untuk mengatasi kasus-kasus khusus pada struktur kontrol.","Python has the break and continue statements to handle special cases in control structures.","2021-10-28T03:59:18.000Z",[82,83,84,85],"\u002Fog\u002Fstatement-break-dan-continue-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[147],{"authors_id":148},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":150,"title":151,"title_en":152,"slug":153,"excerpt":154,"excerpt_en":155,"has_translation":12,"published_at":156,"reading_time":103,"hidden_from_listing":15,"tags":157,"thumbnail_image":21,"og_image":159,"series":160,"authors":161},96,"Percabangan dengan Ternary Operator pada Python","Branching with the Ternary Operator in Python","percobangan-dengan-ternary-operator-pada-python","Pada Python ternary operator untuk mempersingkat assignment yang melibatkan kondisi IF ELSE.","In Python the ternary operator shortens an assignment that involves an IF ELSE condition.","2021-11-21T04:07:50.000Z",[82,105,158,85],"operator","\u002Fog\u002Fpercobangan-dengan-ternary-operator-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[162],{"authors_id":163},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":165,"title":166,"title_en":167,"slug":168,"excerpt":169,"excerpt_en":170,"has_translation":12,"published_at":171,"reading_time":14,"hidden_from_listing":15,"tags":172,"thumbnail_image":21,"og_image":175,"series":176,"authors":177},97,"List Comprehension Pada Pyhton","List Comprehension in Python","list-comprehension-pada-pyhton","list comprehension merupakan ternary operator pada Python untuk mempersingkat proses inisialisasi variable list","List comprehension is the ternary operator in Python that shortens the process of initializing a list variable.","2021-11-27T03:17:02.000Z",[82,173,174],"list","list-comprehension","\u002Fog\u002Flist-comprehension-pada-pyhton.png",{"id":88,"title":89,"title_en":90,"slug":91},[178],{"authors_id":179},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},[],{"id":182,"title":52,"title_en":53,"slug":54,"parent_series":183,"children_series":184},10,{"id":111,"title":48,"title_en":48,"slug":49},[185,190,195,200,201,206],{"id":186,"title":187,"title_en":188,"slug":189,"cover_image":21},16,"Berkenalan dengan Bahasa Python","Getting Started with Python","python-intro",{"id":191,"title":192,"title_en":193,"slug":194,"cover_image":21},17,"Variabel, Tipe Data, dan Operasi","Variables, Types, and Operations","python-variabel-tipe-data",{"id":196,"title":197,"title_en":198,"slug":199,"cover_image":21},18,"Menggunakan Script Python","Working with Python Scripts","python-pemrograman-dengan-script",{"id":88,"title":89,"title_en":90,"slug":91,"cover_image":21},{"id":202,"title":203,"title_en":204,"slug":205,"cover_image":21},20,"Pemrograman Fungsional dengan Python","Functional Programming with Python","python-pemrograman-fungsional",{"id":207,"title":208,"title_en":209,"slug":210,"cover_image":21},30,"Koleksi dan String","Collections and Strings","python-collections",[212],{"authors_id":213},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},"id",[216,214],"en","Komputer diciptakan di dunia ini adalah untuk memudahkan pekerjaan manusia. Dengan sifatnya yang tidak pernah bosan, komputer bisa menjalankan perintah yang sama secara berulang kali bahkan tanpa perlu istirahat.\n\nMelakukan kegiatan secara berulang ini disebut dengan [perulangan](https:\u002F\u002Finvasikode.com\u002Fstruktur-kontrol\u002F) atau looping. Looping ini juga termasuk salah satu [struktur kontrol](https:\u002F\u002Finvasikode.com\u002Fstruktur-kontrol\u002F) pada bahasa pemrograman.\n\nDalam bahasa Python terdapat 2 jenis perulangan yaitu `for` loop dan `while` loop. Kira kira bagaimana implementasinya? Pada kesempatan kali ini kita akan membahas tentang `for` loop terlebih dahulu.\n\n## FOR Loop, Iterasi, dan Iterable\n\n`for` loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya. Pada bahasa pemrograman lain seperti Pascal, Java, dan C++, `for` loop dilakukan dengan menggunakan counter. Namun pada Python sedikit berbeda, kita akan menggunakan yang namanya **iterable**.\n\n> Perulangan yang menggunakan iterable sebagai subjek datanya sering disebut dengan **iterasi**.\n\nIterable meruakan kumpulan data yang dihimpun menjadi satu dan dapat diakses secara berurutan mulai dari kepala hingga ekornya. Hampir semua tipe data yang memuat banyak nilai adalah itaerable. Beberapa yang sudah kita bahas adalah [string](https:\u002F\u002Finvasikode.com\u002Ftipe-data-string-python\u002F) (memuat banyak karakter) dan [list](https:\u002F\u002Finvasikode.com\u002Ftipe-data-list-python\u002F) (memuat banyak nilai bebas).\n\nNah kali ini kita akan menggunakan iterable yang lain yaitu `range`. Range adalah data yang berisi banyak angka bulat (integer) berurutan. Untuk membuatnya, kita bisa menggunkan fungsi `range()` dengan 1 hingga 3 argumen.\n\n```\nrange(\u003Cnilai_akhir>)\n# atau\nrange(\u003Cnilai_awal>, \u003Cnilai_akhir>)\n# atau\nrange(\u003Cnilai_awal>, \u003Cnilai_akhir>, \u003Cstep>)\n```\n\nLangsung aja lihat contohnya:\n\n* `range(10)`= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\n* `range(5, 10)`= 5, 6, 7, 8, 9\n* `range(1, 10, 2)`= 1, 3, 5, 7, 9\n* `range(5, 0, -1)`= 5, 4, 3, 2, 1\n\nDari contoh tersebut sepertinya sudah jelas ya bagaimana kegunaan argumennya. Nah sekarang kembali ke tujuan awal, bagaimana cara menggunakan `range` ini dalam perulangan `for`?\n\n## Struktur FOR Loop pada Python\n\nSecara umum struktur perulangan `for` pada python adalah seperti ini:\n\n```\nfor \u003Cvariable> in \u003Citerable>:\n  \u003Cperintah>\n```\n\n* `\u003Cvariable>`: penampung elemen iterable pada setiap iterasi\n* `\u003Citerable>`: nilai yang menjadi subjek iterasi \u002F perulangan\n* `\u003Cperintah>`: sebuah atau beberapa perintah yang akan dijalankan\n\n## Penggunaan FOR Loop\n\nSekarang kita coba sebuah kasus. Kira-kira bagaimana cara mencetak tulisan \"Hello world\" sebanyak 5 kali?\n\nAlternatif pertama mungkin cukup dengan memanggul fungsi `print(\"Hello World\")` sebangyak 5 kali seperti ini:\n\n```python\nprint(\"Hello World\")\nprint(\"Hello World\")\nprint(\"Hello World\")\nprint(\"Hello World\")\nprint(\"Hello World\")\n```\n\nCara ini tidak salah, tetapi sebagai programmer jika menuliskan hal yang sama berulang-ulang rasanya seperti ada yang kurang pas. Apalagi jika ada sebuah kasus yang mengharuskan kita menjalankan perintah yang sama sebanyak 100 kali atau bahkan 1.000.000 kali — Wadu kalau mau copas bisa pusing 😥.\n\nDisinilah perulangan akan sangat membantu. Lima baris kode Hello World yang tadi sekarang cukup jadi 2 baris kode saja.\n\n```python\nfor i in range(5):\n  print(\"Hello World\")\n```\n\nCoba jalankan kode tersebut dan lihat apa yang terjadi.\n\nSelanjutnya coba ganti angka 5 pada `range(5)` menjadi angka yang besar seperti 100 dan lihat apa yang terjadi setelah dijalankan — Spoiler: Tulisan \"Hello World\" akan muncul sebanyak angka pada `range`.\n\n**Cukup disitu saja? tentu tidak...** Ada banyak hal yang bisa kita lakukan dengan perulangan ini. Contoh simpelnya adalah mencetak angka berurutan 1 sampai 10.\n\n```python\nfor i in range(1, 11):\n  print(i)\n```\n\nSekarang coba jalankan kode tersebut, maka kurang lebih outputnya akan seperti ini:\n\n```\n1\n2\n3\n4\n5\n6\n7\n8\n9\n10\n```\n\n**Bagaimana kode tersebut bekerja?**\n\nTepat setelah keyword `for`, kita mendeklarasikan variable `i` sebagai penyimpan value dari `range(1, 11)` yang berisi angka 1 sampai 10. Lanjut, iterasi akan dilakukan dengan mengambil nilai dari `range(1, 11)` dan dimasukkan ke `i` satu per satu mulai dari kepala hingga ekor. Terakhir, pada tiap iterasi akan dipanggil perintah `print(i)` untuk mencetak nilai dari variable `i`, pemanggilan perintah ini akan dilakukan sebanyak tepat 10 kali.\n\n> Ingat, fungsi `range` pada python bersifat ekslusif. Artinya nilai yang akan dihasilkan adalah mulai dari nilai awal hingga nilai akhir dikurangi 1.\\\n> `range(n)`= 0, 1, ..., n-1\\\n> `range(n, m)`= n, n+1, n+2, ..., m-1\n\n## Lebih Banyak Lagi Penggunaan FOR Loop\n\nSetelah sebelumnya kita mencetak angka berurutan dari 1 sampai 10, kali ini kita akan coba mencetak deret angka dengan beda 2 dari 1 hingga 10. Kira-kira bagaimana caranya?\n\nUntuk melakukan ini kita perlu mengisikan argumen ke-3 pada fungsi `range`. Argumen ini bernama **step** yang berfungsi sebagai penjumlah tambahan. Ketika argumen ini tidak diisikan maka nilainya adalah 1, oleh karena itulah `range` selalu menghasilkan bilangan berurutan.\n\nSekarang kita modifikasi kode yang sebelumnya sudah kita buat.\n\n```python\nfor i in range(1, 11, 2):\n  print(i)\n```\n\nSelanjutnya coba jalankan dan lihat hasilnya. Kurang lebih akan terlihat seperti ini:\n\n```\n1\n3\n5\n7\n9\n```\n\nKarena kita mulai dari 1 dengan nilai step 2, maka yang keluar adalah deret bilangan ganjil. Kalau kita ubah `range`-nya menjadi `range(0, 11, 2)` maka yang keluar adalah bilangan genap dari 0 sampai 10.\n\n**Sekarang, bagaimana jika ingin menghitung mundur?**\n\nMudah, kita hanya perlu memasukkan nilai awal yang lebih besar dari nilai akhir, lalu memasukkan angka negatif sebagai nilai step. Contohnya seperti ini:\n\n```python\nfor i in range(5, 0, -1):\n  print(i)\n```\n\nMaka outputnya akan seperti ini:\n\n```\n5\n4\n3\n2\n1\n```\n\n## Menggunakan Iterator Lainnya (string dan list)\n\nDi awal sudah dibicarakan bahwa `for` loop pada Python ini menggunakan iterator, dan iterator bukan cuma `range` saja tetapi `[string](https:\u002F\u002Finvasikode.com\u002Ftipe-data-string-python\u002F)` dan `[list](https:\u002F\u002Finvasikode.com\u002Ftipe-data-list-python\u002F)` juga bisa digunakan.\n\nUntuk membuktikannya coba jalankan kode di bawah ini.\n\n```python\nkalimat = \"Belajar Python di Invasikode\"\nkata_kata = [\"Belajar\", \"Python\", \"di\", \"Invasikode\"]\n\nfor huruf in kalimat:\n  print(huruf)\n\nfor kata in kata_kata:\n  print(kata)\n```\n\nSIlahkan dijalankan dan lihat apa yang terjadi.\n\n## Penutup\n\nSampai di sini semoga kalian dapat konsepnya ehehe. Cukup sekian, dan semoga bermanfaat. Pada kesempatan selanjutnya kita akan membahas tentang perulangan menggunakan [WHILE loop pada Python 3](https:\u002F\u002Finvasikode.com\u002Fwhile-loop-python\u002F).\n\nSee ya 😉\n","\u003Cp>Komputer diciptakan di dunia ini adalah untuk memudahkan pekerjaan manusia. Dengan sifatnya yang tidak pernah bosan, komputer bisa menjalankan perintah yang sama secara berulang kali bahkan tanpa perlu istirahat.\u003C\u002Fp>\n\u003Cp>Melakukan kegiatan secara berulang ini disebut dengan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fstruktur-kontrol\u002F\">perulangan\u003C\u002Fa> atau looping. Looping ini juga termasuk salah satu \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fstruktur-kontrol\u002F\">struktur kontrol\u003C\u002Fa> pada bahasa pemrograman.\u003C\u002Fp>\n\u003Cp>Dalam bahasa Python terdapat 2 jenis perulangan yaitu \u003Ccode>for\u003C\u002Fcode> loop dan \u003Ccode>while\u003C\u002Fcode> loop. Kira kira bagaimana implementasinya? Pada kesempatan kali ini kita akan membahas tentang \u003Ccode>for\u003C\u002Fcode> loop terlebih dahulu.\u003C\u002Fp>\n\u003Ch2 id=\"for-loop-iterasi-dan-iterable\">FOR Loop, Iterasi, dan Iterable\u003C\u002Fh2>\n\u003Cp>\u003Ccode>for\u003C\u002Fcode> loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya. Pada bahasa pemrograman lain seperti Pascal, Java, dan C++, \u003Ccode>for\u003C\u002Fcode> loop dilakukan dengan menggunakan counter. Namun pada Python sedikit berbeda, kita akan menggunakan yang namanya \u003Cstrong>iterable\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Perulangan yang menggunakan iterable sebagai subjek datanya sering disebut dengan \u003Cstrong>iterasi\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Iterable meruakan kumpulan data yang dihimpun menjadi satu dan dapat diakses secara berurutan mulai dari kepala hingga ekornya. Hampir semua tipe data yang memuat banyak nilai adalah itaerable. Beberapa yang sudah kita bahas adalah \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-string-python\u002F\">string\u003C\u002Fa> (memuat banyak karakter) dan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-list-python\u002F\">list\u003C\u002Fa> (memuat banyak nilai bebas).\u003C\u002Fp>\n\u003Cp>Nah kali ini kita akan menggunakan iterable yang lain yaitu \u003Ccode>range\u003C\u002Fcode>. Range adalah data yang berisi banyak angka bulat (integer) berurutan. Untuk membuatnya, kita bisa menggunkan fungsi \u003Ccode>range()\u003C\u002Fcode> dengan 1 hingga 3 argumen.\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"range(%3Cnilai_akhir%3E)%0A%23%20atau%0Arange(%3Cnilai_awal%3E%2C%20%3Cnilai_akhir%3E)%0A%23%20atau%0Arange(%3Cnilai_awal%3E%2C%20%3Cnilai_akhir%3E%2C%20%3Cstep%3E)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>range(&lt;nilai_akhir&gt;)\n# atau\nrange(&lt;nilai_awal&gt;, &lt;nilai_akhir&gt;)\n# atau\nrange(&lt;nilai_awal&gt;, &lt;nilai_akhir&gt;, &lt;step&gt;)\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Langsung aja lihat contohnya:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>range(10)\u003C\u002Fcode>= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\u003C\u002Fli>\n\u003Cli>\u003Ccode>range(5, 10)\u003C\u002Fcode>= 5, 6, 7, 8, 9\u003C\u002Fli>\n\u003Cli>\u003Ccode>range(1, 10, 2)\u003C\u002Fcode>= 1, 3, 5, 7, 9\u003C\u002Fli>\n\u003Cli>\u003Ccode>range(5, 0, -1)\u003C\u002Fcode>= 5, 4, 3, 2, 1\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Dari contoh tersebut sepertinya sudah jelas ya bagaimana kegunaan argumennya. Nah sekarang kembali ke tujuan awal, bagaimana cara menggunakan \u003Ccode>range\u003C\u002Fcode> ini dalam perulangan \u003Ccode>for\u003C\u002Fcode>?\u003C\u002Fp>\n\u003Ch2 id=\"struktur-for-loop-pada-python\">Struktur FOR Loop pada Python\u003C\u002Fh2>\n\u003Cp>Secara umum struktur perulangan \u003Ccode>for\u003C\u002Fcode> pada python adalah seperti ini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"for%20%3Cvariable%3E%20in%20%3Citerable%3E%3A%0A%20%20%3Cperintah%3E\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>for &lt;variable&gt; in &lt;iterable&gt;:\n  &lt;perintah&gt;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cul>\n\u003Cli>\u003Ccode>&lt;variable&gt;\u003C\u002Fcode>: penampung elemen iterable pada setiap iterasi\u003C\u002Fli>\n\u003Cli>\u003Ccode>&lt;iterable&gt;\u003C\u002Fcode>: nilai yang menjadi subjek iterasi \u002F perulangan\u003C\u002Fli>\n\u003Cli>\u003Ccode>&lt;perintah&gt;\u003C\u002Fcode>: sebuah atau beberapa perintah yang akan dijalankan\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"penggunaan-for-loop\">Penggunaan FOR Loop\u003C\u002Fh2>\n\u003Cp>Sekarang kita coba sebuah kasus. Kira-kira bagaimana cara mencetak tulisan &quot;Hello world&quot; sebanyak 5 kali?\u003C\u002Fp>\n\u003Cp>Alternatif pertama mungkin cukup dengan memanggul fungsi \u003Ccode>print(&quot;Hello World&quot;)\u003C\u002Fcode> sebangyak 5 kali seperti ini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"print(%22Hello%20World%22)%0Aprint(%22Hello%20World%22)%0Aprint(%22Hello%20World%22)%0Aprint(%22Hello%20World%22)%0Aprint(%22Hello%20World%22)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Cara ini tidak salah, tetapi sebagai programmer jika menuliskan hal yang sama berulang-ulang rasanya seperti ada yang kurang pas. Apalagi jika ada sebuah kasus yang mengharuskan kita menjalankan perintah yang sama sebanyak 100 kali atau bahkan 1.000.000 kali — Wadu kalau mau copas bisa pusing 😥.\u003C\u002Fp>\n\u003Cp>Disinilah perulangan akan sangat membantu. Lima baris kode Hello World yang tadi sekarang cukup jadi 2 baris kode saja.\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"for%20i%20in%20range(5)%3A%0A%20%20print(%22Hello%20World%22)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> i \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">in\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> range\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">5\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">):\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Coba jalankan kode tersebut dan lihat apa yang terjadi.\u003C\u002Fp>\n\u003Cp>Selanjutnya coba ganti angka 5 pada \u003Ccode>range(5)\u003C\u002Fcode> menjadi angka yang besar seperti 100 dan lihat apa yang terjadi setelah dijalankan — Spoiler: Tulisan &quot;Hello World&quot; akan muncul sebanyak angka pada \u003Ccode>range\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cukup disitu saja? tentu tidak...\u003C\u002Fstrong> Ada banyak hal yang bisa kita lakukan dengan perulangan ini. Contoh simpelnya adalah mencetak angka berurutan 1 sampai 10.\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"for%20i%20in%20range(1%2C%2011)%3A%0A%20%20print(i)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> i \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">in\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> range\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">11\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">):\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(i)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Sekarang coba jalankan kode tersebut, maka kurang lebih outputnya akan seperti ini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"1%0A2%0A3%0A4%0A5%0A6%0A7%0A8%0A9%0A10\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>1\n2\n3\n4\n5\n6\n7\n8\n9\n10\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>\u003Cstrong>Bagaimana kode tersebut bekerja?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Tepat setelah keyword \u003Ccode>for\u003C\u002Fcode>, kita mendeklarasikan variable \u003Ccode>i\u003C\u002Fcode> sebagai penyimpan value dari \u003Ccode>range(1, 11)\u003C\u002Fcode> yang berisi angka 1 sampai 10. Lanjut, iterasi akan dilakukan dengan mengambil nilai dari \u003Ccode>range(1, 11)\u003C\u002Fcode> dan dimasukkan ke \u003Ccode>i\u003C\u002Fcode> satu per satu mulai dari kepala hingga ekor. Terakhir, pada tiap iterasi akan dipanggil perintah \u003Ccode>print(i)\u003C\u002Fcode> untuk mencetak nilai dari variable \u003Ccode>i\u003C\u002Fcode>, pemanggilan perintah ini akan dilakukan sebanyak tepat 10 kali.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Ingat, fungsi \u003Ccode>range\u003C\u002Fcode> pada python bersifat ekslusif. Artinya nilai yang akan dihasilkan adalah mulai dari nilai awal hingga nilai akhir dikurangi 1.\u003Cbr>\u003Ccode>range(n)\u003C\u002Fcode>= 0, 1, ..., n-1\u003Cbr>\u003Ccode>range(n, m)\u003C\u002Fcode>= n, n+1, n+2, ..., m-1\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"lebih-banyak-lagi-penggunaan-for-loop\">Lebih Banyak Lagi Penggunaan FOR Loop\u003C\u002Fh2>\n\u003Cp>Setelah sebelumnya kita mencetak angka berurutan dari 1 sampai 10, kali ini kita akan coba mencetak deret angka dengan beda 2 dari 1 hingga 10. Kira-kira bagaimana caranya?\u003C\u002Fp>\n\u003Cp>Untuk melakukan ini kita perlu mengisikan argumen ke-3 pada fungsi \u003Ccode>range\u003C\u002Fcode>. Argumen ini bernama \u003Cstrong>step\u003C\u002Fstrong> yang berfungsi sebagai penjumlah tambahan. Ketika argumen ini tidak diisikan maka nilainya adalah 1, oleh karena itulah \u003Ccode>range\u003C\u002Fcode> selalu menghasilkan bilangan berurutan.\u003C\u002Fp>\n\u003Cp>Sekarang kita modifikasi kode yang sebelumnya sudah kita buat.\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"for%20i%20in%20range(1%2C%2011%2C%202)%3A%0A%20%20print(i)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> i \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">in\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> range\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">11\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">2\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">):\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(i)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Selanjutnya coba jalankan dan lihat hasilnya. Kurang lebih akan terlihat seperti ini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"1%0A3%0A5%0A7%0A9\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>1\n3\n5\n7\n9\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Karena kita mulai dari 1 dengan nilai step 2, maka yang keluar adalah deret bilangan ganjil. Kalau kita ubah \u003Ccode>range\u003C\u002Fcode>-nya menjadi \u003Ccode>range(0, 11, 2)\u003C\u002Fcode> maka yang keluar adalah bilangan genap dari 0 sampai 10.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Sekarang, bagaimana jika ingin menghitung mundur?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Mudah, kita hanya perlu memasukkan nilai awal yang lebih besar dari nilai akhir, lalu memasukkan angka negatif sebagai nilai step. Contohnya seperti ini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"for%20i%20in%20range(5%2C%200%2C%20-1)%3A%0A%20%20print(i)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> i \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">in\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> range\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">5\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">0\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">-\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">1\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">):\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(i)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Maka outputnya akan seperti ini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"5%0A4%0A3%0A2%0A1\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>5\n4\n3\n2\n1\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch2 id=\"menggunakan-iterator-lainnya-string-dan-list\">Menggunakan Iterator Lainnya (string dan list)\u003C\u002Fh2>\n\u003Cp>Di awal sudah dibicarakan bahwa \u003Ccode>for\u003C\u002Fcode> loop pada Python ini menggunakan iterator, dan iterator bukan cuma \u003Ccode>range\u003C\u002Fcode> saja tetapi \u003Ccode>[string](https:\u002F\u002Finvasikode.com\u002Ftipe-data-string-python\u002F)\u003C\u002Fcode> dan \u003Ccode>[list](https:\u002F\u002Finvasikode.com\u002Ftipe-data-list-python\u002F)\u003C\u002Fcode> juga bisa digunakan.\u003C\u002Fp>\n\u003Cp>Untuk membuktikannya coba jalankan kode di bawah ini.\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"kalimat%20%3D%20%22Belajar%20Python%20di%20Invasikode%22%0Akata_kata%20%3D%20%5B%22Belajar%22%2C%20%22Python%22%2C%20%22di%22%2C%20%22Invasikode%22%5D%0A%0Afor%20huruf%20in%20kalimat%3A%0A%20%20print(huruf)%0A%0Afor%20kata%20in%20kata_kata%3A%0A%20%20print(kata)\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">kalimat \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"Belajar Python di Invasikode\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">kata_kata \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> [\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Belajar\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Python\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"di\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">\"Invasikode\"\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">]\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> huruf \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">in\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> kalimat:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(huruf)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> kata \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">in\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\"> kata_kata:\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(kata)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>SIlahkan dijalankan dan lihat apa yang terjadi.\u003C\u002Fp>\n\u003Ch2 id=\"penutup\">Penutup\u003C\u002Fh2>\n\u003Cp>Sampai di sini semoga kalian dapat konsepnya ehehe. Cukup sekian, dan semoga bermanfaat. Pada kesempatan selanjutnya kita akan membahas tentang perulangan menggunakan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fwhile-loop-python\u002F\">WHILE loop pada Python 3\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>See ya 😉\u003C\u002Fp>\n","",[221,235,248,261,274,295],{"id":222,"title":223,"title_en":21,"slug":224,"excerpt":225,"excerpt_en":21,"has_translation":15,"published_at":226,"reading_time":227,"hidden_from_listing":15,"tags":228,"thumbnail_image":21,"og_image":230,"series":231,"authors":232},133,"Python Strings: the Badge That Only Worked for One Name","python-strings","The badge script printed the right name for the person who wrote it and the wrong name for everybody else. Slicing counts characters, and a name is words.","2026-10-28T13:00:00.000Z",6,[82,229],"string","\u002Fog\u002Fpython-strings.png",{"id":207,"title":208,"title_en":209,"slug":210},[233],{"authors_id":234},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":236,"title":237,"title_en":21,"slug":238,"excerpt":239,"excerpt_en":21,"has_translation":15,"published_at":240,"reading_time":227,"hidden_from_listing":15,"tags":241,"thumbnail_image":21,"og_image":243,"series":244,"authors":245},132,"Python Tuples: Why All Three Points Are the Same Point","python-tuples","Three points walk into a loop and come out identical. The list was never copied three times; the name was. A tuple makes that bug impossible.","2026-10-28T12:00:00.000Z",[82,242],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":207,"title":208,"title_en":209,"slug":210},[246],{"authors_id":247},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":249,"title":250,"title_en":21,"slug":251,"excerpt":252,"excerpt_en":21,"has_translation":15,"published_at":253,"reading_time":227,"hidden_from_listing":15,"tags":254,"thumbnail_image":21,"og_image":256,"series":257,"authors":258},131,"Python Sets: the Duplicate That Keeps Coming Back","python-sets","A de-duplication loop that works on clean data leaves four tags where there should be two. The bug is case, and the fix is a `set`.","2026-10-28T11:00:00.000Z",[82,255],"set","\u002Fog\u002Fpython-sets.png",{"id":207,"title":208,"title_en":209,"slug":210},[259],{"authors_id":260},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":262,"title":263,"title_en":21,"slug":264,"excerpt":265,"excerpt_en":21,"has_translation":15,"published_at":266,"reading_time":227,"hidden_from_listing":15,"tags":267,"thumbnail_image":21,"og_image":269,"series":270,"authors":271},130,"Python Dictionaries: the Key That Isn't There","python-dictionary","A word counter dies the first time it meets a word twice. The fix is one line; what takes longer is knowing which of a dict's three lookups to reach for.","2026-10-28T10:00:00.000Z",[82,268],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":207,"title":208,"title_en":209,"slug":210},[272],{"authors_id":273},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":275,"title":276,"title_en":277,"slug":278,"excerpt":279,"excerpt_en":280,"has_translation":12,"published_at":281,"reading_time":14,"hidden_from_listing":15,"tags":282,"thumbnail_image":21,"og_image":289,"series":290,"authors":292},129,"Biar RAG nggak kena 504: pisahin jalur query dan ingestion","So Your RAG Stops Hitting 504: Split the Query Path From Ingestion","rag-pisah-jalur-query-dan-ingestion","Satu service RAG yang merangkap parsing dan menjawab kueri bakal tumbang pas ada yang upload PDF 200 halaman. Obatnya dua jalur dan satu queue.","One RAG service that both parses uploads and answers queries will fall over the moment someone uploads a 200-page PDF. The cure is two paths and one queue.","2026-10-22T01:30:00.000Z",[283,284,285,286,287,288],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":291,"title":35,"title_en":36,"slug":37},8,[293],{"authors_id":294},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":296,"title":297,"title_en":298,"slug":299,"excerpt":300,"excerpt_en":301,"has_translation":12,"published_at":302,"reading_time":227,"hidden_from_listing":15,"tags":303,"thumbnail_image":21,"og_image":310,"series":311,"authors":312},128,"Linear atau graf: cara mengatur banyak agent tanpa loop abadi","Linear or Graph: How to Run Many Agents Without an Eternal Loop","multi-agen-linear-atau-grafik","Satu agent dengan dua puluh tool gampang kacau. Begitu beberapa agent saling revisi, kamu butuh graf yang mendukung cycle dan angka yang membuatnya berhenti.","One agent with twenty tools gets messy fast. Once several agents revise each other, you need a graph that allows cycles and a number that makes it stop.","2026-10-21T16:05:00.000Z",[304,305,306,307,308,309],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":291,"title":35,"title_en":36,"slug":37},[313],{"authors_id":314},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},[316,320,323,326,329,332],{"text":317,"depth":318,"id":319},"FOR Loop, Iterasi, dan Iterable",2,"for-loop-iterasi-dan-iterable",{"text":321,"depth":318,"id":322},"Struktur FOR Loop pada Python","struktur-for-loop-pada-python",{"text":324,"depth":318,"id":325},"Penggunaan FOR Loop","penggunaan-for-loop",{"text":327,"depth":318,"id":328},"Lebih Banyak Lagi Penggunaan FOR Loop","lebih-banyak-lagi-penggunaan-for-loop",{"text":330,"depth":318,"id":331},"Menggunakan Iterator Lainnya (string dan list)","menggunakan-iterator-lainnya-string-dan-list",{"text":333,"depth":318,"id":334},"Penutup","penutup",1793295835010]