[{"data":1,"prerenderedAt":211},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-perulangan-dengan-for-loop-pada-python-with-latest":41},{"navigations":4},[5,20],{"collection":6,"item":7},"series",{"__typename":6,"title":8,"slug":9,"children_series":10},"Artikel","all",[11,14,17],{"title":12,"slug":13},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":15,"slug":16},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":18,"slug":19},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":6,"item":21},{"__typename":6,"title":22,"slug":23,"children_series":24},"Tutorial","tutorial",[25,28,31,34],{"title":26,"slug":27},"Belajar Java","belajar-java",{"title":29,"slug":30},"Belajar Pascal","belajar-pascal",{"title":32,"slug":33},"Belajar Python","belajar-python",{"title":35,"slug":36},"Belajar Golang","belajar-golang",{"name":38,"url":39,"show":40},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"article":42,"renderedBody":138,"renderedTakeaway":139,"latestArticles":140,"toc":191},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":55,"takeway":56,"body":57,"authors":58,"series":64},"93","Perulangan dengan FOR Loop pada Python","perulangan-dengan-for-loop-pada-python","for loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya.","2021-07-10T03:46:32.000Z",{"id":49},"930bed49-dd1d-4707-85be-e6b774b65505",[51,52,53,54],"python","perulangan","loop","struktur-kontrol",5,null,"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://invasikode.com/struktur-kontrol/) atau looping. Looping ini juga termasuk salah satu [struktur kontrol](https://invasikode.com/struktur-kontrol/) 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://invasikode.com/tipe-data-string-python/) (memuat banyak karakter) dan [list](https://invasikode.com/tipe-data-list-python/) (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 / 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://invasikode.com/tipe-data-string-python/)` dan `[list](https://invasikode.com/tipe-data-list-python/)` 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://invasikode.com/while-loop-python/).\n\nSee ya 😉",[59],{"authors_id":60},{"name":61,"slug":62,"role":63,"profile_picture":56},"Daffa Izzuddin","izzudd","Writer",{"id":65,"title":66,"slug":67,"articles":68,"parent_series":116},"19","Struktur Kontrol","python-struktur-kontrol",[69,78,81,89,97,106],{"id":70,"title":71,"slug":72,"excerpt":73,"thumbnail_image":74,"tags":76},"92","Percabangan dengan IF, ELIF, ELSE pada Python","percabangan-dengan-if-elif-else-pada-python","Conditional statement bertugas untuk menjalankan perintah sesuai kondisi. Pada python, hal ini ditangani oleh if statement.",{"id":75},"1d91ec3b-2446-49fd-82e3-e3446468b70a",[51,77,54],"percabangan",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":79,"tags":80},{"id":49},[51,52,53,54],{"id":82,"title":83,"slug":84,"excerpt":85,"thumbnail_image":86,"tags":88},"94","Perulangan dengan WHILE Loop pada Python","perulangan-dengan-while-loop-pada-python","Berbeda dengan perulangan for, dengan while kita akan menggunakan kondisi boolean sebagai pengendalinya.",{"id":87},"a3d2cf83-8fff-4592-a62f-0d91d9a7b054",[51,52,53,54],{"id":90,"title":91,"slug":92,"excerpt":93,"thumbnail_image":94,"tags":96},"95","Statement BREAK dan CONTINUE pada Python","statement-break-dan-continue-pada-python","Python memiliki statement break dan continue untuk mengatasi kasus-kasus khusus pada struktur kontrol.",{"id":95},"cd09cb1e-7ef2-49a0-bf0a-03ff8c377577",[51,52,53,54],{"id":98,"title":99,"slug":100,"excerpt":101,"thumbnail_image":102,"tags":104},"96","Percabangan dengan Ternary Operator pada Python","percobangan-dengan-ternary-operator-pada-python","Pada Python ternary operator untuk mempersingkat assignment yang melibatkan kondisi IF ELSE.",{"id":103},"9bfe4ceb-53ed-43e0-99f6-af44c65ed13b",[51,77,105,54],"operator",{"id":107,"title":108,"slug":109,"excerpt":110,"thumbnail_image":111,"tags":113},"97","List Comprehension Pada Pyhton","list-comprehension-pada-pyhton","list comprehension merupakan ternary operator pada Python untuk mempersingkat proses inisialisasi variable list",{"id":112},"5e8d4c5d-5506-4852-997d-deaa9f979fb5",[51,114,115],"list","list-comprehension",{"id":117,"title":32,"slug":33,"parent_series":118,"children_series":120},"10",{"id":119,"title":22,"slug":23,"parent_series":56},"1",[121,125,129,133,134],{"id":122,"title":123,"slug":124,"cover_image":56},"16","Berkenalan dengan Bahasa Python","python-intro",{"id":126,"title":127,"slug":128,"cover_image":56},"17","Variabel, Tipe Data, dan Operasi","python-variabel-tipe-data",{"id":130,"title":131,"slug":132,"cover_image":56},"18","Menggunakan Script Python","python-pemrograman-dengan-script",{"id":65,"title":66,"slug":67,"cover_image":56},{"id":135,"title":136,"slug":137,"cover_image":56},"20","Pemrograman Fungsional dengan Python","python-pemrograman-fungsional","\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/p>\n\u003Cp>Melakukan kegiatan secara berulang ini disebut dengan \u003Ca href=\"https://invasikode.com/struktur-kontrol/\">perulangan\u003C/a> atau looping. Looping ini juga termasuk salah satu \u003Ca href=\"https://invasikode.com/struktur-kontrol/\">struktur kontrol\u003C/a> pada bahasa pemrograman.\u003C/p>\n\u003Cp>Dalam bahasa Python terdapat 2 jenis perulangan yaitu \u003Ccode>for\u003C/code> loop dan \u003Ccode>while\u003C/code> loop. Kira kira bagaimana implementasinya? Pada kesempatan kali ini kita akan membahas tentang \u003Ccode>for\u003C/code> loop terlebih dahulu.\u003C/p>\n\u003Ch2 id=\"for-loop-iterasi-dan-iterable\">FOR Loop, Iterasi, dan Iterable\u003C/h2>\n\u003Cp>\u003Ccode>for\u003C/code> loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya. Pada bahasa pemrograman lain seperti Pascal, Java, dan C++, \u003Ccode>for\u003C/code> loop dilakukan dengan menggunakan counter. Namun pada Python sedikit berbeda, kita akan menggunakan yang namanya \u003Cstrong>iterable\u003C/strong>.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Perulangan yang menggunakan iterable sebagai subjek datanya sering disebut dengan \u003Cstrong>iterasi\u003C/strong>.\u003C/p>\n\u003C/blockquote>\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://invasikode.com/tipe-data-string-python/\">string\u003C/a> (memuat banyak karakter) dan \u003Ca href=\"https://invasikode.com/tipe-data-list-python/\">list\u003C/a> (memuat banyak nilai bebas).\u003C/p>\n\u003Cp>Nah kali ini kita akan menggunakan iterable yang lain yaitu \u003Ccode>range\u003C/code>. Range adalah data yang berisi banyak angka bulat (integer) berurutan. Untuk membuatnya, kita bisa menggunkan fungsi \u003Ccode>range()\u003C/code> dengan 1 hingga 3 argumen.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Langsung aja lihat contohnya:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>range(10)\u003C/code>= 0, 1, 2, 3, 4, 5, 6, 7, 8, 9\u003C/li>\n\u003Cli>\u003Ccode>range(5, 10)\u003C/code>= 5, 6, 7, 8, 9\u003C/li>\n\u003Cli>\u003Ccode>range(1, 10, 2)\u003C/code>= 1, 3, 5, 7, 9\u003C/li>\n\u003Cli>\u003Ccode>range(5, 0, -1)\u003C/code>= 5, 4, 3, 2, 1\u003C/li>\n\u003C/ul>\n\u003Cp>Dari contoh tersebut sepertinya sudah jelas ya bagaimana kegunaan argumennya. Nah sekarang kembali ke tujuan awal, bagaimana cara menggunakan \u003Ccode>range\u003C/code> ini dalam perulangan \u003Ccode>for\u003C/code>?\u003C/p>\n\u003Ch2 id=\"struktur-for-loop-pada-python\">Struktur FOR Loop pada Python\u003C/h2>\n\u003Cp>Secara umum struktur perulangan \u003Ccode>for\u003C/code> pada python adalah seperti ini:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cul>\n\u003Cli>\u003Ccode>&lt;variable&gt;\u003C/code>: penampung elemen iterable pada setiap iterasi\u003C/li>\n\u003Cli>\u003Ccode>&lt;iterable&gt;\u003C/code>: nilai yang menjadi subjek iterasi / perulangan\u003C/li>\n\u003Cli>\u003Ccode>&lt;perintah&gt;\u003C/code>: sebuah atau beberapa perintah yang akan dijalankan\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"penggunaan-for-loop\">Penggunaan FOR Loop\u003C/h2>\n\u003Cp>Sekarang kita coba sebuah kasus. Kira-kira bagaimana cara mencetak tulisan &quot;Hello world&quot; sebanyak 5 kali?\u003C/p>\n\u003Cp>Alternatif pertama mungkin cukup dengan memanggul fungsi \u003Ccode>print(&quot;Hello World&quot;)\u003C/code> sebangyak 5 kali seperti ini:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\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/p>\n\u003Cp>Disinilah perulangan akan sangat membantu. Lima baris kode Hello World yang tadi sekarang cukup jadi 2 baris kode saja.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/span>\u003Cspan style=\"color:#E1E4E8\"> i \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#79B8FF\"> range\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">5\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Coba jalankan kode tersebut dan lihat apa yang terjadi.\u003C/p>\n\u003Cp>Selanjutnya coba ganti angka 5 pada \u003Ccode>range(5)\u003C/code> 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/code>.\u003C/p>\n\u003Cp>\u003Cstrong>Cukup disitu saja? tentu tidak...\u003C/strong> Ada banyak hal yang bisa kita lakukan dengan perulangan ini. Contoh simpelnya adalah mencetak angka berurutan 1 sampai 10.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/span>\u003Cspan style=\"color:#E1E4E8\"> i \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#79B8FF\"> range\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">11\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(i)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sekarang coba jalankan kode tersebut, maka kurang lebih outputnya akan seperti ini:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>\u003Cstrong>Bagaimana kode tersebut bekerja?\u003C/strong>\u003C/p>\n\u003Cp>Tepat setelah keyword \u003Ccode>for\u003C/code>, kita mendeklarasikan variable \u003Ccode>i\u003C/code> sebagai penyimpan value dari \u003Ccode>range(1, 11)\u003C/code> yang berisi angka 1 sampai 10. Lanjut, iterasi akan dilakukan dengan mengambil nilai dari \u003Ccode>range(1, 11)\u003C/code> dan dimasukkan ke \u003Ccode>i\u003C/code> satu per satu mulai dari kepala hingga ekor. Terakhir, pada tiap iterasi akan dipanggil perintah \u003Ccode>print(i)\u003C/code> untuk mencetak nilai dari variable \u003Ccode>i\u003C/code>, pemanggilan perintah ini akan dilakukan sebanyak tepat 10 kali.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Ingat, fungsi \u003Ccode>range\u003C/code> pada python bersifat ekslusif. Artinya nilai yang akan dihasilkan adalah mulai dari nilai awal hingga nilai akhir dikurangi 1.\u003Cbr>\u003Ccode>range(n)\u003C/code>= 0, 1, ..., n-1\u003Cbr>\u003Ccode>range(n, m)\u003C/code>= n, n+1, n+2, ..., m-1\u003C/p>\n\u003C/blockquote>\n\u003Ch2 id=\"lebih-banyak-lagi-penggunaan-for-loop\">Lebih Banyak Lagi Penggunaan FOR Loop\u003C/h2>\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/p>\n\u003Cp>Untuk melakukan ini kita perlu mengisikan argumen ke-3 pada fungsi \u003Ccode>range\u003C/code>. Argumen ini bernama \u003Cstrong>step\u003C/strong> yang berfungsi sebagai penjumlah tambahan. Ketika argumen ini tidak diisikan maka nilainya adalah 1, oleh karena itulah \u003Ccode>range\u003C/code> selalu menghasilkan bilangan berurutan.\u003C/p>\n\u003Cp>Sekarang kita modifikasi kode yang sebelumnya sudah kita buat.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/span>\u003Cspan style=\"color:#E1E4E8\"> i \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#79B8FF\"> range\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">11\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">2\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(i)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Selanjutnya coba jalankan dan lihat hasilnya. Kurang lebih akan terlihat seperti ini:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Karena kita mulai dari 1 dengan nilai step 2, maka yang keluar adalah deret bilangan ganjil. Kalau kita ubah \u003Ccode>range\u003C/code>-nya menjadi \u003Ccode>range(0, 11, 2)\u003C/code> maka yang keluar adalah bilangan genap dari 0 sampai 10.\u003C/p>\n\u003Cp>\u003Cstrong>Sekarang, bagaimana jika ingin menghitung mundur?\u003C/strong>\u003C/p>\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/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/span>\u003Cspan style=\"color:#E1E4E8\"> i \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#79B8FF\"> range\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">5\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">0\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#F97583\">-\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(i)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Maka outputnya akan seperti ini:\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Ch2 id=\"menggunakan-iterator-lainnya-string-dan-list\">Menggunakan Iterator Lainnya (string dan list)\u003C/h2>\n\u003Cp>Di awal sudah dibicarakan bahwa \u003Ccode>for\u003C/code> loop pada Python ini menggunakan iterator, dan iterator bukan cuma \u003Ccode>range\u003C/code> saja tetapi \u003Ccode>[string](https://invasikode.com/tipe-data-string-python/)\u003C/code> dan \u003Ccode>[list](https://invasikode.com/tipe-data-list-python/)\u003C/code> juga bisa digunakan.\u003C/p>\n\u003Cp>Untuk membuktikannya coba jalankan kode di bawah ini.\u003C/p>\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/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PYTHON\u003C/span>\n    \u003C/div>\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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\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/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"Belajar Python di Invasikode\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">kata_kata \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> [\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Belajar\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Python\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"di\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Invasikode\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">]\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> huruf \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> kalimat:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(huruf)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">for\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> kata \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> kata_kata:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(kata)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>SIlahkan dijalankan dan lihat apa yang terjadi.\u003C/p>\n\u003Ch2 id=\"penutup\">Penutup\u003C/h2>\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://invasikode.com/while-loop-python/\">WHILE loop pada Python 3\u003C/a>.\u003C/p>\n\u003Cp>See ya 😉\u003C/p>\n","",[141,154,169,181],{"id":142,"title":143,"slug":144,"excerpt":145,"thumbnail_image":146,"tags":148},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!",{"id":147},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[149,150,151,152,153],"system-programming","rust","zig","c","memory-safety",{"id":155,"title":156,"slug":157,"excerpt":158,"thumbnail_image":159,"tags":161},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!",{"id":160},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[162,163,164,165,166,167,168],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":170,"title":171,"slug":172,"excerpt":173,"thumbnail_image":174,"tags":176},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!",{"id":175},"e3c617fd-1486-4b82-b937-94fbec846c77",[162,177,167,178,179,163,180],"microservices","database","message-broker","postgresql",{"id":182,"title":183,"slug":184,"excerpt":185,"thumbnail_image":186,"tags":188},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!",{"id":187},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[189,179,162,167,177,190,51],"rabbitmq","async",[192,196,199,202,205,208],{"text":193,"depth":194,"id":195},"FOR Loop, Iterasi, dan Iterable",2,"for-loop-iterasi-dan-iterable",{"text":197,"depth":194,"id":198},"Struktur FOR Loop pada Python","struktur-for-loop-pada-python",{"text":200,"depth":194,"id":201},"Penggunaan FOR Loop","penggunaan-for-loop",{"text":203,"depth":194,"id":204},"Lebih Banyak Lagi Penggunaan FOR Loop","lebih-banyak-lagi-penggunaan-for-loop",{"text":206,"depth":194,"id":207},"Menggunakan Iterator Lainnya (string dan list)","menggunakan-iterator-lainnya-string-dan-list",{"text":209,"depth":194,"id":210},"Penutup","penutup",1791045067913]