[{"data":1,"prerenderedAt":201},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-perulangan-dengan-for-loop-pada-pascal-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":133,"renderedTakeaway":134,"latestArticles":135,"toc":187},{"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},"69","Perulangan dengan FOR loop pada Pascal","perulangan-dengan-for-loop-pada-pascal","Pada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak berapa kali secara explisit.","2020-11-11T12:16:50.000Z",{"id":49},"add308c3-92a3-46cf-b748-c088955b16ac",[51,52,53,54],"pascal","perulangan","loop","struktur-kontrol",3,null,"Pada kesempatan kali ini kita akan membahas tentang FOR loop pada bahasa Pascal. Sesuai namanya, loop memiliki arti perulangan. Fungsinya untuk menjalankan perintah berulang kali sesuai kondisi yang ada.\n\nSebenarnya pada Pascal ada beberapa cara untuk membuat perulangan. Yaitu dengan menggunakan **FOR** loop, [WHILE DO](https://invasikode.com/while-loop-pascal/) loop, dan [REPEAT UNTIL](https://invasikode.com/repeat-loop-pascal/) loop. Tetapi untuk kali ini kita hanya akan membahas FOR loop saja.\n\n## Penggunaan Perulangan\n\nNamanya juga perulangan, pasti digunakan untuk melakukan pekerjaan berulang. Sekarang coba tuliskan kode berikut ini terlebih dahulu.\n\n```pascal\nprogram perulanganFor;\nuses crt;\nbegin\n  clrscr;\n  writeln('saya berjanji tidak akan terlambat lagi');\n  readln;\nend.\n```\n\nTidak perlu dijalankan pasti sudah terlihat outputnya.\n\nFamiliar? Itu adalah kalimat yang biasa ditulis ketika ada anak terlambat masuk kelas hehe...\n\nBiasanya kalimat tersebut akan ditulis berkali kali, sebagai hukuman agar jera. Nah sekarang kita akan melakukan itu juga. Cukup 5 kali saja. Kalimatnya diganti menjadi \"saya akan belajar pascal\" biar tidak terkesan hukuman :D\n\n```pascal\nprogram perulanganFor;\nuses crt;\nbegin\n  clrscr;\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  readln;\nend.\n```\n\nYayy masalah selesai bukan?\n\nJika kalian jalankan, akan keluar output kalimat tersebut sebanyak 5 kali. Oke selanjutnya saya tantang agar menghasilkan output sebanyak 10 kali. Ah gampang tinggal ketik ketik dikit ya kan...\n\nKalau ingin menghasilkan 20 output? 40 output? atau bahkan 1000 output? bisa bisa tangan jadi keriting nih kalau diketik manual. Nah fungsi perulangan adalah untuk melakukan hal ini secara **efektif dan efisien**.\n\n## Cara Penulisan FOR loop pada Pascal\n\nPada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak **berapa kali** secara **explisit** (kondisinya bukan [expresi boolean](https://invasikode.com/operasi-logika-pascal/)).\n\nUntuk format penulisannya adalah sebagai berikut\n\n```\nfor {a} to {n} do\n  begin\n    {perintah yang akan dieksekusi}\n  end;\n```\n\natau\n\n```\nfor {a} downto {n} do\n  begin\n    {perintah yang akan dieksekusi}\n  end;\n```\n\ndengan:\n\n* **a** : batas awal looping berupa variable integer atau assignment variable\n* **n** : batas akhir looping berupa integer (bilangan bulat)\n\nFormat perintah yang pertama untuk menghitung menaik, sedangkan format perintah yang kedua untuk menghitung menurun.\n\n## Contoh Penggunaan FOR loop pada Pascal\n\nUntuk membuat perulangan dengan `for`, beberapa hal yang kita butuhkan adalah sebuah variable, dan batas looping. Variable yang biasa digunakan untuk perulangan adalah **i**, **j**, dan **k**. tapi kalian bebas untuk menentukan ini.\n\nOke sekarang coba ubah kode Pascal yang telah kita buat sebelumnya\n\n```pascal\nprogram perulanganFor;\nuses crt;\nvar\n  i: integer;\nbegin\n  clrscr;\n  for i:=1 to 5 do\n    writeln('saya akan belajar pascal');\n  readln;\nend.\n```\n\nSekarang coba kalian jalankan, maka outputnya kurang lebih akan sebagai berikut\n\n```\nsaya akan belajar pascal\nsaya akan belajar pascal\nsaya akan belajar pascal\nsaya akan belajar pascal\nsaya akan belajar pascal\n```\n\nHasil outputnya akan sama seperti ketika ketik manual. Inilah fungsi dari perulangan FOR loop, sangat amat efisien dan menghemat waktu. Jadi perintah setelah keyword \"do\" akan dijalankan dengan batas awal variable i yang isinya 1 dan batas akhir angka 5.\n\nPada setiap looping, variable **i** akan bertambah nilainya sebanyak 1. Untuk mengeceknya kita bisa menambahkan variable **i** pada output.\n\n```pascal\n....\n  for i := 1 to 3 do\n    writeln(i, '. saya akan belajar pascal');\n  readln;\n....\n```\n\nJika kalian jalankan maka outputnya akan sebagai berikut\n\n```\n1. saya akan belajar pascal\n2. saya akan belajar pascal\n3. saya akan belajar pascal\n```\n\nSebagai eksperimen bisa kalian coba untuk mengganti batas akhir dan batas awalnya. Bisa kalian coba angka angka sebanyak apapun, semisal 1000, atau bahkan 1000000, semakin banyak looping akan memakan waktu lebih lama.\n\n```pascal\n....\n  for i := 1 to 1000 do\n    writeln(i, '. saya akan belajar pascal');\n  readln;\n....\n```\n\nBisa kalian coba juga dengan menggunakan downto, dengan catatan batas awal harus lebih besar dari batas akhir.\n\n## Penutup\n\nCukup sekian untuk tutorial kali ini, Semoga bermanfaat :D Pada tutorial selanjutnya kita akan tetap membahas perulangan namun dengan metode yang berbeda, yaitu [perulangan dengan while do loop](https://invasikode.com/while-loop-pascal/).",[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":115},"24","Struktur Kontrol","pascal-struktur-kontrol",[69,79,88,91,99,107],{"id":70,"title":71,"slug":72,"excerpt":73,"thumbnail_image":74,"tags":76},"67","Expresi Boolean dan Operasi Logika pada Bahasa Pascal","expresi-boolean-dan-operasi-logika-pada-bahasa-pascal","Dalam penyusunan algoritma pemrograman, perlu yang namanya expresi boolean. Expresi boolean dapat berupa operasi logika dan perbandingan.",{"id":75},"0d7b8bac-d407-4c10-adac-9629c054e44a",[51,77,78,54],"boolean","operator",{"id":80,"title":81,"slug":82,"excerpt":83,"thumbnail_image":84,"tags":86},"68","Percabangan dengan Kondisi IF dan ELSE pada Pascal","percabangan-dengan-kondisi-if-dan-else-pada-pascal","Pada kesempatan kali ini kita akan membahas sebuah kondisi percabangan dengan menggunakan keyword IF ELSE.",{"id":85},"12176154-b51a-40f7-92c9-76bd22f27edd",[51,87,54],"percabangan",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":89,"tags":90},{"id":49},[51,52,53,54],{"id":92,"title":93,"slug":94,"excerpt":95,"thumbnail_image":96,"tags":98},"70","Perulangan dengan WHILE DO loop pada Pascal","perulangan-dengan-while-do-loop-pada-pascal","WHILE DO loop merupakan perulangan pada Pascal yang menggunakan kondisi berupa ekspresi boolean sebagai penanda perulangannya.",{"id":97},"a0a6e8a4-08ae-448f-b8a1-b3ca3b24c559",[51,52,53,54],{"id":100,"title":101,"slug":102,"excerpt":103,"thumbnail_image":104,"tags":106},"71","Perulangan dengan REPEAT UNTIL loop pada Pascal","perulangan-dengan-repeat-until-loop-pada-pascal","Pada REPEAT UNTIL loop, pengecekan kondisi dilakukan pada akhir perintah dan perulangan akan terus berjalan selama kondisi masih bernilai `false`.",{"id":105},"7c6b59b4-5fc4-432f-9bb2-388b761240b4",[51,52,53,54],{"id":108,"title":109,"slug":110,"excerpt":111,"thumbnail_image":112,"tags":114},"72","Percabangan dengan CASE OF pada Pascal","percabangan-dengan-case-of-pada-pascal","CASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi",{"id":113},"7e66c22e-799f-4e20-bccb-f386d45987ba",[51,87,54],{"id":116,"title":29,"slug":30,"parent_series":117,"children_series":119},"14",{"id":118,"title":22,"slug":23,"parent_series":56},"1",[120,124,125,129],{"id":121,"title":122,"slug":123,"cover_image":56},"23","Berkenalan dengan Bahasa Pascal","pascal-intro",{"id":65,"title":66,"slug":67,"cover_image":56},{"id":126,"title":127,"slug":128,"cover_image":56},"25","Tipe Data Bentukan","pascal-tipe-data-bentukan",{"id":130,"title":131,"slug":132,"cover_image":56},"26","Pemrograman Prosedural","pascal-pemrograman-prosedural","\u003Cp>Pada kesempatan kali ini kita akan membahas tentang FOR loop pada bahasa Pascal. Sesuai namanya, loop memiliki arti perulangan. Fungsinya untuk menjalankan perintah berulang kali sesuai kondisi yang ada.\u003C/p>\n\u003Cp>Sebenarnya pada Pascal ada beberapa cara untuk membuat perulangan. Yaitu dengan menggunakan \u003Cstrong>FOR\u003C/strong> loop, \u003Ca href=\"https://invasikode.com/while-loop-pascal/\">WHILE DO\u003C/a> loop, dan \u003Ca href=\"https://invasikode.com/repeat-loop-pascal/\">REPEAT UNTIL\u003C/a> loop. Tetapi untuk kali ini kita hanya akan membahas FOR loop saja.\u003C/p>\n\u003Ch2 id=\"penggunaan-perulangan\">Penggunaan Perulangan\u003C/h2>\n\u003Cp>Namanya juga perulangan, pasti digunakan untuk melakukan pekerjaan berulang. Sekarang coba tuliskan kode berikut ini terlebih dahulu.\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\">PASCAL\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=\"program%20perulanganFor%3B%0Auses%20crt%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20writeln('saya%20berjanji%20tidak%20akan%20terlambat%20lagi')%3B%0A%20%20readln%3B%0Aend.\" 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>program perulanganFor;\nuses crt;\nbegin\n  clrscr;\n  writeln('saya berjanji tidak akan terlambat lagi');\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Tidak perlu dijalankan pasti sudah terlihat outputnya.\u003C/p>\n\u003Cp>Familiar? Itu adalah kalimat yang biasa ditulis ketika ada anak terlambat masuk kelas hehe...\u003C/p>\n\u003Cp>Biasanya kalimat tersebut akan ditulis berkali kali, sebagai hukuman agar jera. Nah sekarang kita akan melakukan itu juga. Cukup 5 kali saja. Kalimatnya diganti menjadi &quot;saya akan belajar pascal&quot; biar tidak terkesan hukuman :D\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\">PASCAL\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=\"program%20perulanganFor%3B%0Auses%20crt%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20writeln('saya%20akan%20belajar%20pascal')%3B%0A%20%20writeln('saya%20akan%20belajar%20pascal')%3B%0A%20%20writeln('saya%20akan%20belajar%20pascal')%3B%0A%20%20writeln('saya%20akan%20belajar%20pascal')%3B%0A%20%20writeln('saya%20akan%20belajar%20pascal')%3B%0A%20%20readln%3B%0Aend.\" 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>program perulanganFor;\nuses crt;\nbegin\n  clrscr;\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  writeln('saya akan belajar pascal');\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Yayy masalah selesai bukan?\u003C/p>\n\u003Cp>Jika kalian jalankan, akan keluar output kalimat tersebut sebanyak 5 kali. Oke selanjutnya saya tantang agar menghasilkan output sebanyak 10 kali. Ah gampang tinggal ketik ketik dikit ya kan...\u003C/p>\n\u003Cp>Kalau ingin menghasilkan 20 output? 40 output? atau bahkan 1000 output? bisa bisa tangan jadi keriting nih kalau diketik manual. Nah fungsi perulangan adalah untuk melakukan hal ini secara \u003Cstrong>efektif dan efisien\u003C/strong>.\u003C/p>\n\u003Ch2 id=\"cara-penulisan-for-loop-pada-pascal\">Cara Penulisan FOR loop pada Pascal\u003C/h2>\n\u003Cp>Pada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak \u003Cstrong>berapa kali\u003C/strong> secara \u003Cstrong>explisit\u003C/strong> (kondisinya bukan \u003Ca href=\"https://invasikode.com/operasi-logika-pascal/\">expresi boolean\u003C/a>).\u003C/p>\n\u003Cp>Untuk format penulisannya adalah sebagai berikut\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%7Ba%7D%20to%20%7Bn%7D%20do%0A%20%20begin%0A%20%20%20%20%7Bperintah%20yang%20akan%20dieksekusi%7D%0A%20%20end%3B\" 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 {a} to {n} do\n  begin\n    {perintah yang akan dieksekusi}\n  end;\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>atau\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%7Ba%7D%20downto%20%7Bn%7D%20do%0A%20%20begin%0A%20%20%20%20%7Bperintah%20yang%20akan%20dieksekusi%7D%0A%20%20end%3B\" 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 {a} downto {n} do\n  begin\n    {perintah yang akan dieksekusi}\n  end;\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>dengan:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>a\u003C/strong> : batas awal looping berupa variable integer atau assignment variable\u003C/li>\n\u003Cli>\u003Cstrong>n\u003C/strong> : batas akhir looping berupa integer (bilangan bulat)\u003C/li>\n\u003C/ul>\n\u003Cp>Format perintah yang pertama untuk menghitung menaik, sedangkan format perintah yang kedua untuk menghitung menurun.\u003C/p>\n\u003Ch2 id=\"contoh-penggunaan-for-loop-pada-pascal\">Contoh Penggunaan FOR loop pada Pascal\u003C/h2>\n\u003Cp>Untuk membuat perulangan dengan \u003Ccode>for\u003C/code>, beberapa hal yang kita butuhkan adalah sebuah variable, dan batas looping. Variable yang biasa digunakan untuk perulangan adalah \u003Cstrong>i\u003C/strong>, \u003Cstrong>j\u003C/strong>, dan \u003Cstrong>k\u003C/strong>. tapi kalian bebas untuk menentukan ini.\u003C/p>\n\u003Cp>Oke sekarang coba ubah kode Pascal yang telah kita buat sebelumnya\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\">PASCAL\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=\"program%20perulanganFor%3B%0Auses%20crt%3B%0Avar%0A%20%20i%3A%20integer%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20for%20i%3A%3D1%20to%205%20do%0A%20%20%20%20writeln('saya%20akan%20belajar%20pascal')%3B%0A%20%20readln%3B%0Aend.\" 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>program perulanganFor;\nuses crt;\nvar\n  i: integer;\nbegin\n  clrscr;\n  for i:=1 to 5 do\n    writeln('saya akan belajar pascal');\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sekarang coba kalian jalankan, maka outputnya kurang lebih akan sebagai berikut\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=\"saya%20akan%20belajar%20pascal%0Asaya%20akan%20belajar%20pascal%0Asaya%20akan%20belajar%20pascal%0Asaya%20akan%20belajar%20pascal%0Asaya%20akan%20belajar%20pascal\" 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>saya akan belajar pascal\nsaya akan belajar pascal\nsaya akan belajar pascal\nsaya akan belajar pascal\nsaya akan belajar pascal\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Hasil outputnya akan sama seperti ketika ketik manual. Inilah fungsi dari perulangan FOR loop, sangat amat efisien dan menghemat waktu. Jadi perintah setelah keyword &quot;do&quot; akan dijalankan dengan batas awal variable i yang isinya 1 dan batas akhir angka 5.\u003C/p>\n\u003Cp>Pada setiap looping, variable \u003Cstrong>i\u003C/strong> akan bertambah nilainya sebanyak 1. Untuk mengeceknya kita bisa menambahkan variable \u003Cstrong>i\u003C/strong> pada output.\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\">PASCAL\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=\"....%0A%20%20for%20i%20%3A%3D%201%20to%203%20do%0A%20%20%20%20writeln(i%2C%20'.%20saya%20akan%20belajar%20pascal')%3B%0A%20%20readln%3B%0A....\" 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>....\n  for i := 1 to 3 do\n    writeln(i, '. saya akan belajar pascal');\n  readln;\n....\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Jika kalian jalankan maka outputnya akan sebagai berikut\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.%20saya%20akan%20belajar%20pascal%0A2.%20saya%20akan%20belajar%20pascal%0A3.%20saya%20akan%20belajar%20pascal\" 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. saya akan belajar pascal\n2. saya akan belajar pascal\n3. saya akan belajar pascal\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sebagai eksperimen bisa kalian coba untuk mengganti batas akhir dan batas awalnya. Bisa kalian coba angka angka sebanyak apapun, semisal 1000, atau bahkan 1000000, semakin banyak looping akan memakan waktu lebih lama.\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\">PASCAL\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=\"....%0A%20%20for%20i%20%3A%3D%201%20to%201000%20do%0A%20%20%20%20writeln(i%2C%20'.%20saya%20akan%20belajar%20pascal')%3B%0A%20%20readln%3B%0A....\" 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>....\n  for i := 1 to 1000 do\n    writeln(i, '. saya akan belajar pascal');\n  readln;\n....\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Bisa kalian coba juga dengan menggunakan downto, dengan catatan batas awal harus lebih besar dari batas akhir.\u003C/p>\n\u003Ch2 id=\"penutup\">Penutup\u003C/h2>\n\u003Cp>Cukup sekian untuk tutorial kali ini, Semoga bermanfaat :D Pada tutorial selanjutnya kita akan tetap membahas perulangan namun dengan metode yang berbeda, yaitu \u003Ca href=\"https://invasikode.com/while-loop-pascal/\">perulangan dengan while do loop\u003C/a>.\u003C/p>\n","",[136,149,164,176],{"id":137,"title":138,"slug":139,"excerpt":140,"thumbnail_image":141,"tags":143},"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":142},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[144,145,146,147,148],"system-programming","rust","zig","c","memory-safety",{"id":150,"title":151,"slug":152,"excerpt":153,"thumbnail_image":154,"tags":156},"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":155},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[157,158,159,160,161,162,163],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":165,"title":166,"slug":167,"excerpt":168,"thumbnail_image":169,"tags":171},"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":170},"e3c617fd-1486-4b82-b937-94fbec846c77",[157,172,162,173,174,158,175],"microservices","database","message-broker","postgresql",{"id":177,"title":178,"slug":179,"excerpt":180,"thumbnail_image":181,"tags":183},"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":182},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[184,174,157,162,172,185,186],"rabbitmq","async","python",[188,192,195,198],{"text":189,"depth":190,"id":191},"Penggunaan Perulangan",2,"penggunaan-perulangan",{"text":193,"depth":190,"id":194},"Cara Penulisan FOR loop pada Pascal","cara-penulisan-for-loop-pada-pascal",{"text":196,"depth":190,"id":197},"Contoh Penggunaan FOR loop pada Pascal","contoh-penggunaan-for-loop-pada-pascal",{"text":199,"depth":190,"id":200},"Penutup","penutup",1791045068535]