[{"data":1,"prerenderedAt":288},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-penggunaan-dan-penulisan-procedure-pada-pascal-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":163,"renderedTakeaway":164,"latestArticles":165,"toc":265},{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":81,"hidden_from_listing":15,"tags":82,"thumbnail_image":21,"og_image":86,"series":87,"authors":156,"body_locale":159,"available_locales":160,"body":162,"takeway":21,"prerequisite":21},78,"Penggunaan dan Penulisan PROCEDURE pada Pascal","Using and Writing a PROCEDURE in Pascal","penggunaan-dan-penulisan-procedure-pada-pascal","Bagian utama dari sebuah PROCEDURE adalah nama dan tubuh PROCEDURE. Ada juga bagian opsional yaitu parameter dan deklarasi lokal.","The main parts of a PROCEDURE are its name and its body, with parameters and local declarations as the optional parts.","2021-04-15T12:54:14.000Z",3,[83,84,85],"pascal","prosedur","sub-program","\u002Fog\u002Fpenggunaan-dan-penulisan-procedure-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91,"description":92,"description_en":93,"articles":94,"children_series":135,"parent_series":136},26,"Pemrograman Prosedural","Procedural Programming","pascal-pemrograman-prosedural","Pecah program besar jadi prosedur dan fungsi kecil yang bisa dipakai berulang kali.","Break a big program into small procedures and functions you can call again and again.",[95,115,120],{"id":96,"title":97,"title_en":98,"slug":99,"excerpt":100,"excerpt_en":101,"has_translation":12,"published_at":102,"reading_time":81,"hidden_from_listing":15,"tags":103,"thumbnail_image":21,"og_image":106,"series":107,"authors":108},77,"Tentang Pemrograman Prosedural pada Pascal","About Procedural Programming in Pascal","tentang-pemrograman-prosedural-pada-pascal","Pemrograman peosedural merupakan salah satu paradigma pemrograman dimana beberapa perintah digabungkan menjadi satu dalam sebuah prosedur.","Procedural programming is one of the programming paradigms, where several statements are combined into one procedure.","2021-04-13T12:44:49.000Z",[83,104,84,105],"pemrograman","konsep","\u002Fog\u002Ftentang-pemrograman-prosedural-pada-pascal.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":81,"hidden_from_listing":15,"tags":82,"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":81,"hidden_from_listing":15,"tags":128,"thumbnail_image":21,"og_image":130,"series":131,"authors":132},79,"Penggunaan dan Penulisan FUNCTION pada Pascal","Using and Writing a FUNCTION in Pascal","penggunaan-dan-penulisan-function-pada-pascal","Sub program yang tidak mengembalikan nilai dinamakan PROCEDURE, sedangkan yang mengembalikan nilai dinamakan FUNCTION.","A sub program that does not return a value is called a PROCEDURE, while one that returns a value is called a FUNCTION.","2021-04-21T13:01:16.000Z",[83,129,85],"fungsi","\u002Fog\u002Fpenggunaan-dan-penulisan-function-pada-pascal.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":137,"title":64,"title_en":65,"slug":66,"parent_series":138,"children_series":139},14,{"id":111,"title":48,"title_en":48,"slug":49},[140,145,150,155],{"id":141,"title":142,"title_en":143,"slug":144,"cover_image":21},23,"Berkenalan dengan Bahasa Pascal","Getting Started with Pascal","pascal-intro",{"id":146,"title":147,"title_en":148,"slug":149,"cover_image":21},24,"Struktur Kontrol","Control Structures","pascal-struktur-kontrol",{"id":151,"title":152,"title_en":153,"slug":154,"cover_image":21},25,"Tipe Data Bentukan","Composite Types","pascal-tipe-data-bentukan",{"id":88,"title":89,"title_en":90,"slug":91,"cover_image":21},[157],{"authors_id":158},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},"id",[161,159],"en","Setelah sebelumnya kita membahas tentang pemrograman prosedural pada Pascal, pada kesempatan kali ini kita akan lanjut membahas tentang penggunaan dan penulisan PROCEDURE pada Pascal.\n\n## Deklarasi dan Struktur PROCEDURE pada Pascal\n\nSebuah PROCEDURE dideklarasikan tepat **sebelum** bagian `BEGIN` dari program utama, dan **setelah** deklarasi variable.\n\nSebagai sub program, PROCEDURE memiliki komponen yang kurang lebih sama seperti program utama.\n\nBagian utama dari sebuah PROCEDURE adalah **nama** dan **tubuh** PROCEDURE. Ada juga bagian opsional yaitu **parameter** dan **deklarasi lokal**.\n\n```\nprocedure \u003Cnama-procedure>(\u003Cparameter>: \u003Ctipe-data>);\n\u002F\u002F deklarasi lokal\nbegin\n  \u002F\u002F tubuh procedure\nend;\n```\n\nBerikut ini adalah contoh PROCEDURE yang berfungsi untuk mencetak karakter bintang sebanyak n-kali.\n\n```pascal\nprocedure cetakBintang(n: integer);\nvar\n  i: integer;\nbegin\n  for i:=1 to n do\n    write('*');\nend;\n```\n\nUntuk penggunaan PROCEDURE tersebut akan kita bahas nanti. Sekarang kita bahas terlebih dahulu tentang bagian-bagiannya.\n\n### 1. Nama PROCEDURE\n\nNama PROCEDURE merupakan nama yang kita gunakan untuk mengidentifikasi dan memanggil PROCEDURE.\n\nNama PROCEDURE terletak setelah keyword `procedure`, dan diikuti oleh tanda kurung buka (jika terdapat deklarasi parameter). Sebisa mungkin nama sebuah PROCEDURE harus menggambarkan tujuan spesifiknya.\n\nSeperti contoh di atas, karena fungsinya adalah untuk mencetak karakter bintang sebanyak n-kali maka nama PROCEDURE-nya adalah `cetakBintang`.\n\n### 2. Parameter\n\nParameter merupakan sebuah **variable** yang dapat diisikan dari program utama. Fungsi dari parameter adalah untuk mengatur keluaran dari PROCEDURE tersebut.\n\nLetak penulisan parameter ini berada di **dalam kurung** setelah nama PROCEDURE.\n\nKarena parameter ini merupakan sebuah variable, maka penulisannya juga sama dengan [penulisan variable](https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F#Deklarasi_Variable_var).\n\nPada contoh sebelumnya kita mendeklarasikan sebuah parameter dengan nama **n** yang bertipe **integer**.\n\nApabila kita ingin membuat beberapa parameter pada sebuah PROCEDURE maka dapat digunakan tanda koma. Seperti berikut\n\n```pascal\nprocedure contoh(a, b: integer, c: string);\nbegin\n  \u002F\u002F tubuh procedure\nend;\n```\n\nApabila kita ingin membuat sebuah PROCEDURE tanpa parameter, maka tanda kurung tidak perlu dituliskan.\n\n```pascal\nprocedure contoh;\nbegin\n  \u002F\u002F tubuh procedure\nend;\n```\n\n### 3. Deklarasi Lokal\n\nDeklarasi lokal, sama seperti bagian [deklarasi program utama](https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F). Pada deklarasi lokal ini kita dapat mendeklarasikan **varibale**, **constant**, dan **type**.\n\nPada contoh sebelumnya kita telah membuat deklarasi variable lokal bernama **i** dengan tipe data integer.\n\nVariable **i** ini hanya memiliki cakupan di dalam PROCEDURE ini saja. Jika kita mencoba menggunakannya pada program utama maka akan terjadi error.\n\n### 4. Tubuh PROCEDURE\n\nyang terakhir dan merupakan bagian terpenting dari PROCEDURE adalah **tubuh**. Pada bagian ini, kita bisa menuliskan logika program seperti yang kita tuliskan pada bagian **[program utama](https:\u002F\u002Finvasikode.com\u002Fstruktur-pascal\u002F#Bagian_Program_Utama)**.\n\nTubuh PROCEDURE diawali dengan keyword `begin` dan diakhiri dengan keyword `end;` (menggunakan **titik koma** bukan titik).\n\n## Penggunaan PROCEDURE pada Pascal\n\nSetelah mengetahui bagian-bagian dari PROCEDURE, sekarang kita akan mencoba membuat program utuh dengan menggunakan PROCEDURE yang sebelumnya kita buat.\n\nSialahkan ketikkan kode berikut ini pada Free Pascal.\n\n```pascal\nprogram prosedural;\nuses crt;\n\nprocedure cetakBintang(n: integer);\nvar\n  i: integer;\nbegin\n  writeln('mencetak * sebanyak ', n, ' kali');\n  for i:=0 to n do\n    write('*');\nend;\n\nbegin\n  clrscr;\n  cetakBintang(10);\n  readln;\nend. \n```\n\nSekarang coba jalankan, maka kurang lebih akan muncul output seperti ini\n\n```\nmencetak * sebanyak 10 kali\n**********\n```\n\n**Apa yang terjadi?**\n\nPertama ktia fokus dulu ke bagian program utama.\n\n```pascal\n...\nbegin\n  clrscr;\n  cetakBintang(10);\n  readln;\nend. \n```\n\nPada program utama kita melakukan pemanggilan terhadap PROCEDURE `cetakBintang` dengan cara mengetikkan nama PROCEDURE diikuti dengan nilai parameter yang ada di dalam kurung.\n\nSelanjutnya Pascal akan mencari PROCEDURE yang namanya dipanggil. Karena kita memberikan nilai 10 (yang ada di dalam kurung), maka sekarang nilai n pada PROCEDURE cetakBintang bernilai 10.\n\n```pascal\n...\n\u002F\u002F cetakBintang(10) -> nilai n sekarang adalah 10\nprocedure cetakBintang(n: integer);\nvar\n  i: integer;\nbegin\n  writeln('mencetak * sebanyak ', n, ' kali');\n  for i:=0 to n do\n    write('*');\nend;\n...\n```\n\nSelanjutnya program akan menjalankan tubuh PROCEDURE sesuai perintah yang telah kita tuliskan. Karena nilai variable n adalah 10, sesuai logika program maka karakter bintang akan dicetak sebanyak 10 kali.\n\nSilahkan coba mengubah nilai parameter pada saat pemanggilan PROCEDURE cetakBintang, nantinya jumlah karakter bintang yang dicetak juga akan berubah.\n\n## Penutup\n\nSekian untuk kesempatan kali ini, semoga bermanfaat :D\n\nPada kesempatan selanjutnya kita akan membahas satu jenis sub program lagi yaitu tentang [penulisan dan penggunaan FUNCTION](https:\u002F\u002Finvasikode.com\u002Ffunction-pascal\u002F) pada Pascal.\n\nSee ya...\n","\u003Cp>Setelah sebelumnya kita membahas tentang pemrograman prosedural pada Pascal, pada kesempatan kali ini kita akan lanjut membahas tentang penggunaan dan penulisan PROCEDURE pada Pascal.\u003C\u002Fp>\n\u003Ch2 id=\"deklarasi-dan-struktur-procedure-pada-pascal\">Deklarasi dan Struktur PROCEDURE pada Pascal\u003C\u002Fh2>\n\u003Cp>Sebuah PROCEDURE dideklarasikan tepat \u003Cstrong>sebelum\u003C\u002Fstrong> bagian \u003Ccode>BEGIN\u003C\u002Fcode> dari program utama, dan \u003Cstrong>setelah\u003C\u002Fstrong> deklarasi variable.\u003C\u002Fp>\n\u003Cp>Sebagai sub program, PROCEDURE memiliki komponen yang kurang lebih sama seperti program utama.\u003C\u002Fp>\n\u003Cp>Bagian utama dari sebuah PROCEDURE adalah \u003Cstrong>nama\u003C\u002Fstrong> dan \u003Cstrong>tubuh\u003C\u002Fstrong> PROCEDURE. Ada juga bagian opsional yaitu \u003Cstrong>parameter\u003C\u002Fstrong> dan \u003Cstrong>deklarasi lokal\u003C\u002Fstrong>.\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=\"procedure%20%3Cnama-procedure%3E(%3Cparameter%3E%3A%20%3Ctipe-data%3E)%3B%0A%2F%2F%20deklarasi%20lokal%0Abegin%0A%20%20%2F%2F%20tubuh%20procedure%0Aend%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\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>procedure &lt;nama-procedure&gt;(&lt;parameter&gt;: &lt;tipe-data&gt;);\n\u002F\u002F deklarasi lokal\nbegin\n  \u002F\u002F tubuh procedure\nend;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Berikut ini adalah contoh PROCEDURE yang berfungsi untuk mencetak karakter bintang sebanyak n-kali.\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\">PASCAL\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=\"procedure%20cetakBintang(n%3A%20integer)%3B%0Avar%0A%20%20i%3A%20integer%3B%0Abegin%0A%20%20for%20i%3A%3D1%20to%20n%20do%0A%20%20%20%20write('*')%3B%0Aend%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\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>procedure cetakBintang(n: integer);\nvar\n  i: integer;\nbegin\n  for i:=1 to n do\n    write('*');\nend;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Untuk penggunaan PROCEDURE tersebut akan kita bahas nanti. Sekarang kita bahas terlebih dahulu tentang bagian-bagiannya.\u003C\u002Fp>\n\u003Ch3 id=\"1-nama-procedure\">1. Nama PROCEDURE\u003C\u002Fh3>\n\u003Cp>Nama PROCEDURE merupakan nama yang kita gunakan untuk mengidentifikasi dan memanggil PROCEDURE.\u003C\u002Fp>\n\u003Cp>Nama PROCEDURE terletak setelah keyword \u003Ccode>procedure\u003C\u002Fcode>, dan diikuti oleh tanda kurung buka (jika terdapat deklarasi parameter). Sebisa mungkin nama sebuah PROCEDURE harus menggambarkan tujuan spesifiknya.\u003C\u002Fp>\n\u003Cp>Seperti contoh di atas, karena fungsinya adalah untuk mencetak karakter bintang sebanyak n-kali maka nama PROCEDURE-nya adalah \u003Ccode>cetakBintang\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"2-parameter\">2. Parameter\u003C\u002Fh3>\n\u003Cp>Parameter merupakan sebuah \u003Cstrong>variable\u003C\u002Fstrong> yang dapat diisikan dari program utama. Fungsi dari parameter adalah untuk mengatur keluaran dari PROCEDURE tersebut.\u003C\u002Fp>\n\u003Cp>Letak penulisan parameter ini berada di \u003Cstrong>dalam kurung\u003C\u002Fstrong> setelah nama PROCEDURE.\u003C\u002Fp>\n\u003Cp>Karena parameter ini merupakan sebuah variable, maka penulisannya juga sama dengan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F#Deklarasi_Variable_var\">penulisan variable\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Pada contoh sebelumnya kita mendeklarasikan sebuah parameter dengan nama \u003Cstrong>n\u003C\u002Fstrong> yang bertipe \u003Cstrong>integer\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Apabila kita ingin membuat beberapa parameter pada sebuah PROCEDURE maka dapat digunakan tanda koma. Seperti berikut\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\">PASCAL\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=\"procedure%20contoh(a%2C%20b%3A%20integer%2C%20c%3A%20string)%3B%0Abegin%0A%20%20%2F%2F%20tubuh%20procedure%0Aend%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\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>procedure contoh(a, b: integer, c: string);\nbegin\n  \u002F\u002F tubuh procedure\nend;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Apabila kita ingin membuat sebuah PROCEDURE tanpa parameter, maka tanda kurung tidak perlu dituliskan.\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\">PASCAL\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=\"procedure%20contoh%3B%0Abegin%0A%20%20%2F%2F%20tubuh%20procedure%0Aend%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\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>procedure contoh;\nbegin\n  \u002F\u002F tubuh procedure\nend;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch3 id=\"3-deklarasi-lokal\">3. Deklarasi Lokal\u003C\u002Fh3>\n\u003Cp>Deklarasi lokal, sama seperti bagian \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F\">deklarasi program utama\u003C\u002Fa>. Pada deklarasi lokal ini kita dapat mendeklarasikan \u003Cstrong>varibale\u003C\u002Fstrong>, \u003Cstrong>constant\u003C\u002Fstrong>, dan \u003Cstrong>type\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Pada contoh sebelumnya kita telah membuat deklarasi variable lokal bernama \u003Cstrong>i\u003C\u002Fstrong> dengan tipe data integer.\u003C\u002Fp>\n\u003Cp>Variable \u003Cstrong>i\u003C\u002Fstrong> ini hanya memiliki cakupan di dalam PROCEDURE ini saja. Jika kita mencoba menggunakannya pada program utama maka akan terjadi error.\u003C\u002Fp>\n\u003Ch3 id=\"4-tubuh-procedure\">4. Tubuh PROCEDURE\u003C\u002Fh3>\n\u003Cp>yang terakhir dan merupakan bagian terpenting dari PROCEDURE adalah \u003Cstrong>tubuh\u003C\u002Fstrong>. Pada bagian ini, kita bisa menuliskan logika program seperti yang kita tuliskan pada bagian \u003Cstrong>\u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fstruktur-pascal\u002F#Bagian_Program_Utama\">program utama\u003C\u002Fa>\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Tubuh PROCEDURE diawali dengan keyword \u003Ccode>begin\u003C\u002Fcode> dan diakhiri dengan keyword \u003Ccode>end;\u003C\u002Fcode> (menggunakan \u003Cstrong>titik koma\u003C\u002Fstrong> bukan titik).\u003C\u002Fp>\n\u003Ch2 id=\"penggunaan-procedure-pada-pascal\">Penggunaan PROCEDURE pada Pascal\u003C\u002Fh2>\n\u003Cp>Setelah mengetahui bagian-bagian dari PROCEDURE, sekarang kita akan mencoba membuat program utuh dengan menggunakan PROCEDURE yang sebelumnya kita buat.\u003C\u002Fp>\n\u003Cp>Sialahkan ketikkan kode berikut ini pada Free Pascal.\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\">PASCAL\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=\"program%20prosedural%3B%0Auses%20crt%3B%0A%0Aprocedure%20cetakBintang(n%3A%20integer)%3B%0Avar%0A%20%20i%3A%20integer%3B%0Abegin%0A%20%20writeln('mencetak%20*%20sebanyak%20'%2C%20n%2C%20'%20kali')%3B%0A%20%20for%20i%3A%3D0%20to%20n%20do%0A%20%20%20%20write('*')%3B%0Aend%3B%0A%0Abegin%0A%20%20clrscr%3B%0A%20%20cetakBintang(10)%3B%0A%20%20readln%3B%0Aend.%20\" 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>program prosedural;\nuses crt;\n\nprocedure cetakBintang(n: integer);\nvar\n  i: integer;\nbegin\n  writeln('mencetak * sebanyak ', n, ' kali');\n  for i:=0 to n do\n    write('*');\nend;\n\nbegin\n  clrscr;\n  cetakBintang(10);\n  readln;\nend. \u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Sekarang coba jalankan, maka kurang lebih akan muncul output 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=\"mencetak%20*%20sebanyak%2010%20kali%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\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>mencetak * sebanyak 10 kali\n**********\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>\u003Cstrong>Apa yang terjadi?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Pertama ktia fokus dulu ke bagian program utama.\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\">PASCAL\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=\"...%0Abegin%0A%20%20clrscr%3B%0A%20%20cetakBintang(10)%3B%0A%20%20readln%3B%0Aend.%20\" 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>...\nbegin\n  clrscr;\n  cetakBintang(10);\n  readln;\nend. \u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Pada program utama kita melakukan pemanggilan terhadap PROCEDURE \u003Ccode>cetakBintang\u003C\u002Fcode> dengan cara mengetikkan nama PROCEDURE diikuti dengan nilai parameter yang ada di dalam kurung.\u003C\u002Fp>\n\u003Cp>Selanjutnya Pascal akan mencari PROCEDURE yang namanya dipanggil. Karena kita memberikan nilai 10 (yang ada di dalam kurung), maka sekarang nilai n pada PROCEDURE cetakBintang bernilai 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\">PASCAL\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=\"...%0A%2F%2F%20cetakBintang(10)%20-%3E%20nilai%20n%20sekarang%20adalah%2010%0Aprocedure%20cetakBintang(n%3A%20integer)%3B%0Avar%0A%20%20i%3A%20integer%3B%0Abegin%0A%20%20writeln('mencetak%20*%20sebanyak%20'%2C%20n%2C%20'%20kali')%3B%0A%20%20for%20i%3A%3D0%20to%20n%20do%0A%20%20%20%20write('*')%3B%0Aend%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\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>...\n\u002F\u002F cetakBintang(10) -&gt; nilai n sekarang adalah 10\nprocedure cetakBintang(n: integer);\nvar\n  i: integer;\nbegin\n  writeln('mencetak * sebanyak ', n, ' kali');\n  for i:=0 to n do\n    write('*');\nend;\n...\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Selanjutnya program akan menjalankan tubuh PROCEDURE sesuai perintah yang telah kita tuliskan. Karena nilai variable n adalah 10, sesuai logika program maka karakter bintang akan dicetak sebanyak 10 kali.\u003C\u002Fp>\n\u003Cp>Silahkan coba mengubah nilai parameter pada saat pemanggilan PROCEDURE cetakBintang, nantinya jumlah karakter bintang yang dicetak juga akan berubah.\u003C\u002Fp>\n\u003Ch2 id=\"penutup\">Penutup\u003C\u002Fh2>\n\u003Cp>Sekian untuk kesempatan kali ini, semoga bermanfaat :D\u003C\u002Fp>\n\u003Cp>Pada kesempatan selanjutnya kita akan membahas satu jenis sub program lagi yaitu tentang \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ffunction-pascal\u002F\">penulisan dan penggunaan FUNCTION\u003C\u002Fa> pada Pascal.\u003C\u002Fp>\n\u003Cp>See ya...\u003C\u002Fp>\n","",[166,185,198,211,224,245],{"id":167,"title":168,"title_en":21,"slug":169,"excerpt":170,"excerpt_en":21,"has_translation":15,"published_at":171,"reading_time":172,"hidden_from_listing":15,"tags":173,"thumbnail_image":21,"og_image":176,"series":177,"authors":182},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,[174,175],"python","string","\u002Fog\u002Fpython-strings.png",{"id":178,"title":179,"title_en":180,"slug":181},30,"Koleksi dan String","Collections and Strings","python-collections",[183],{"authors_id":184},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":186,"title":187,"title_en":21,"slug":188,"excerpt":189,"excerpt_en":21,"has_translation":15,"published_at":190,"reading_time":172,"hidden_from_listing":15,"tags":191,"thumbnail_image":21,"og_image":193,"series":194,"authors":195},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",[174,192],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":178,"title":179,"title_en":180,"slug":181},[196],{"authors_id":197},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":199,"title":200,"title_en":21,"slug":201,"excerpt":202,"excerpt_en":21,"has_translation":15,"published_at":203,"reading_time":172,"hidden_from_listing":15,"tags":204,"thumbnail_image":21,"og_image":206,"series":207,"authors":208},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",[174,205],"set","\u002Fog\u002Fpython-sets.png",{"id":178,"title":179,"title_en":180,"slug":181},[209],{"authors_id":210},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":212,"title":213,"title_en":21,"slug":214,"excerpt":215,"excerpt_en":21,"has_translation":15,"published_at":216,"reading_time":172,"hidden_from_listing":15,"tags":217,"thumbnail_image":21,"og_image":219,"series":220,"authors":221},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",[174,218],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":178,"title":179,"title_en":180,"slug":181},[222],{"authors_id":223},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":225,"title":226,"title_en":227,"slug":228,"excerpt":229,"excerpt_en":230,"has_translation":12,"published_at":231,"reading_time":14,"hidden_from_listing":15,"tags":232,"thumbnail_image":21,"og_image":239,"series":240,"authors":242},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",[233,234,235,236,237,238],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":241,"title":35,"title_en":36,"slug":37},8,[243],{"authors_id":244},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},{"id":246,"title":247,"title_en":248,"slug":249,"excerpt":250,"excerpt_en":251,"has_translation":12,"published_at":252,"reading_time":172,"hidden_from_listing":15,"tags":253,"thumbnail_image":21,"og_image":260,"series":261,"authors":262},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",[254,255,256,257,258,259],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":241,"title":35,"title_en":36,"slug":37},[263],{"authors_id":264},{"id":111,"name":112,"slug":113,"role":114,"profile_picture":21},[266,270,273,276,279,282,285],{"text":267,"depth":268,"id":269},"Deklarasi dan Struktur PROCEDURE pada Pascal",2,"deklarasi-dan-struktur-procedure-pada-pascal",{"text":271,"depth":81,"id":272},"1. Nama PROCEDURE","1-nama-procedure",{"text":274,"depth":81,"id":275},"2. Parameter","2-parameter",{"text":277,"depth":81,"id":278},"3. Deklarasi Lokal","3-deklarasi-lokal",{"text":280,"depth":81,"id":281},"4. Tubuh PROCEDURE","4-tubuh-procedure",{"text":283,"depth":268,"id":284},"Penggunaan PROCEDURE pada Pascal","penggunaan-procedure-pada-pascal",{"text":286,"depth":268,"id":287},"Penutup","penutup",1793295834916]