[{"data":1,"prerenderedAt":282},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-tentang-pemrograman-prosedural-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":87,"series":88,"authors":156,"body_locale":159,"available_locales":160,"body":162,"takeway":21,"prerequisite":21},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",3,[83,84,85,86],"pascal","pemrograman","prosedur","konsep","\u002Fog\u002Ftentang-pemrograman-prosedural-pada-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92,"description":93,"description_en":94,"articles":95,"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.",[96,105,120],{"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":87,"series":97,"authors":98},{"id":89,"title":90,"title_en":91,"slug":92},[99],{"authors_id":100},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"id":106,"title":107,"title_en":108,"slug":109,"excerpt":110,"excerpt_en":111,"has_translation":12,"published_at":112,"reading_time":81,"hidden_from_listing":15,"tags":113,"thumbnail_image":21,"og_image":115,"series":116,"authors":117},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",[83,85,114],"sub-program","\u002Fog\u002Fpenggunaan-dan-penulisan-procedure-pada-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92},[118],{"authors_id":119},{"id":101,"name":102,"slug":103,"role":104,"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,114],"fungsi","\u002Fog\u002Fpenggunaan-dan-penulisan-function-pada-pascal.png",{"id":89,"title":90,"title_en":91,"slug":92},[133],{"authors_id":134},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},[],{"id":137,"title":64,"title_en":65,"slug":66,"parent_series":138,"children_series":139},14,{"id":101,"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":89,"title":90,"title_en":91,"slug":92,"cover_image":21},[157],{"authors_id":158},{"id":101,"name":102,"slug":103,"role":104,"profile_picture":21},"id",[161,159],"en","Pada kesempatan kali ini, kita telah sampai pada konsep **pemrograman prosedural** pada Pascal, yaitu ketika suatu masalah kompleks dipecah menjadi beberapa masalah yang lebih sederhana.\n\nMasalah yang dipecah menjadi lebih sederhana ini dinamakan dengan istilah **sub program**. Setiap sub program memiliki tugas yang sederhana dan spesifik untuk selanjutnya disatukan menjadi program yang utuh.\n\n## Apa itu Pemrograman Prosedural?\n\nPemrograman prosedural merupakan salah satu **paradigma pemrograman** di mana beberapa perintah **digabungkan** menjadi satu dalam sebuah **prosedur** untuk menyelesaikan masalah yang **spesifik**. Alih-alih menuliskan semua instruksi menumpuk di program utama, alur kerja dipecah ke dalam beberapa modul prosedur terpisah.\n\n> 📷 *Ilustrasi: diagram blok alur program utama yang terbagi menjadi pemanggilan beberapa modul prosedur independen.*\n\n- - -\n\nContoh prosedur sederhana pada kehidupan sehari-hari adalah ketika kita ingin membuat **roti oles selai**. Kurang lebih deperti ini.\n\n1. Siapkan selai dan roti tawar\n2. Oleskan selai diatas roti dan ratakan\n3. Roti selai siap disantap\n\nSimpel ya cuma 3 langkah. Walaupun nanti prakteknya tidak akan sesimpel itu. Mungkin kejadian aslinya akan seperti ini.\n\n1. Pergi ke supermarket membeli roti dan selai\n2. Pulang ke rumah\n3. Membuka bungkus roti dan bungkus selai\n4. Meletakkan roti diatas nampan\n5. Mengambil sendok atau pisau roti\n6. Mengambil selai menggunakan sendok atau pisau roti\n7. Mengoleskan selai di atas roti\n8. Meratakan selai\n9. Menutup bungkus selai dan roti\n10. Mengambil roti selai dengan tangan\n11. Membuka mulut\n12. Memasukkan roti ke dalam mulut\n\nWah panjang 🙄\n\n- - -\n\n3 prosedur yang disebutkan di awal seharusnya sudah cukup untuk membuat roti selai. 12 langkah selanjutnya hanya merupakan penjabarannya saja.\n\nJika ke 12 langkah tersebut dikelompokkan sesuai tujuan spesifiknya maka akan dihasilkan prosedur berupa 3 langkah seperti yang disebutkan di awal.\n\nCoba bayangkan jika semua buku resep menuliskan langkah spesifik yang panjang, bisa-bisa buku sejarah jadi kalah tebal. Begitu pula kode program, bisa jadi sangat panjang sehingga sulit dibaca.\n\nDengan adanya pemrograman prosedural, langkah-langkah panjang akan dikelompokkan sesuai tujuannya sehingga kode bisa lebih mudah dibaca.\n\n## Pemrograman Prosedural pada Pascal\n\nPascal merupakan salah satu bahasa pemrograman [prosedural](https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProcedural_programming). Sebagai bahasa pemrograman **prosedural**, Pascal memiliki cara untuk memecah masalah kompleks menjadi sederhana dalam beberapa **sub program**.\n\nSub program pada pascal dapat berupa PROCEDURE maupun FUNCTION.\n\n### Procedure\n\nPROCEDURE merupakan sub program pada pascal yang berfungsi untuk menjalankan kumpulan langkah-langkah tanpa mengembalikan nilai.\n\nBeberapa contoh PROCEDURE yang sudah sering kita pakai adalah `CLRSCR`, `WRITELN`, `READLN`, `WRITE`, dan `READ`.\n\nWalaupun prosedur tersebut terlihat simpel (sekedar input dan output), sebenarnya dibalik layar ada banyak operasi yang terjadi.\n\nUntuk pembahasan lebih lanjut akan kita bahas pada kesempatan [selanjutnya](https:\u002F\u002Finvasikode.com\u002Fprocedure-pascal\u002F).\n\n### Function\n\nSelanjutnya ada FUNCTION. Sub program yang satu ini sama seperti Procedure, tetapi memiliki kemampuan untuk mengembalikan suatu nilai. Sehingga dapat digunakan pada operasi [assignment](https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F#Memberi_Nilai_pada_Variable).\n\nContoh FUNCTION yang sudah tersedia pada pascal adalah `ABS` untuk mencari nilai mutlak, `SQRT` untuk mencari akar bilangan, dan `SQR` untuk mengkuadratkan bilangan.\n\n```pascal\n\u002F\u002F x bernilai 2 (akar 4 = 2)\nx := sqrt(4);\n\u002F\u002F y bernilai 9 (|-9| = 9)\ny := abs(-9);\n```\n\nUntuk pembahasan lebih lanjut akan kita bahas pada kesempatan lain.\n\n## Penutup\n\nCukup sekian untuk perkenalan dengan pemrograman prosedural pada Pascal. Semoga bermanfaat 😊\n\nPada kesempatan selanjutnya kita akan membahas lebih lanjut tentang [PROCEDURE pada Pascal](https:\u002F\u002Finvasikode.com\u002Fprocedure-pascal\u002F).\n\nSee ya...\n","\u003Cp>Pada kesempatan kali ini, kita telah sampai pada konsep \u003Cstrong>pemrograman prosedural\u003C\u002Fstrong> pada Pascal, yaitu ketika suatu masalah kompleks dipecah menjadi beberapa masalah yang lebih sederhana.\u003C\u002Fp>\n\u003Cp>Masalah yang dipecah menjadi lebih sederhana ini dinamakan dengan istilah \u003Cstrong>sub program\u003C\u002Fstrong>. Setiap sub program memiliki tugas yang sederhana dan spesifik untuk selanjutnya disatukan menjadi program yang utuh.\u003C\u002Fp>\n\u003Ch2 id=\"apa-itu-pemrograman-prosedural\">Apa itu Pemrograman Prosedural?\u003C\u002Fh2>\n\u003Cp>Pemrograman prosedural merupakan salah satu \u003Cstrong>paradigma pemrograman\u003C\u002Fstrong> di mana beberapa perintah \u003Cstrong>digabungkan\u003C\u002Fstrong> menjadi satu dalam sebuah \u003Cstrong>prosedur\u003C\u002Fstrong> untuk menyelesaikan masalah yang \u003Cstrong>spesifik\u003C\u002Fstrong>. Alih-alih menuliskan semua instruksi menumpuk di program utama, alur kerja dipecah ke dalam beberapa modul prosedur terpisah.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: diagram blok alur program utama yang terbagi menjadi pemanggilan beberapa modul prosedur independen.\u003C\u002Fem>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Chr>\n\u003Cp>Contoh prosedur sederhana pada kehidupan sehari-hari adalah ketika kita ingin membuat \u003Cstrong>roti oles selai\u003C\u002Fstrong>. Kurang lebih deperti ini.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Siapkan selai dan roti tawar\u003C\u002Fli>\n\u003Cli>Oleskan selai diatas roti dan ratakan\u003C\u002Fli>\n\u003Cli>Roti selai siap disantap\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Simpel ya cuma 3 langkah. Walaupun nanti prakteknya tidak akan sesimpel itu. Mungkin kejadian aslinya akan seperti ini.\u003C\u002Fp>\n\u003Col>\n\u003Cli>Pergi ke supermarket membeli roti dan selai\u003C\u002Fli>\n\u003Cli>Pulang ke rumah\u003C\u002Fli>\n\u003Cli>Membuka bungkus roti dan bungkus selai\u003C\u002Fli>\n\u003Cli>Meletakkan roti diatas nampan\u003C\u002Fli>\n\u003Cli>Mengambil sendok atau pisau roti\u003C\u002Fli>\n\u003Cli>Mengambil selai menggunakan sendok atau pisau roti\u003C\u002Fli>\n\u003Cli>Mengoleskan selai di atas roti\u003C\u002Fli>\n\u003Cli>Meratakan selai\u003C\u002Fli>\n\u003Cli>Menutup bungkus selai dan roti\u003C\u002Fli>\n\u003Cli>Mengambil roti selai dengan tangan\u003C\u002Fli>\n\u003Cli>Membuka mulut\u003C\u002Fli>\n\u003Cli>Memasukkan roti ke dalam mulut\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Wah panjang 🙄\u003C\u002Fp>\n\u003Chr>\n\u003Cp>3 prosedur yang disebutkan di awal seharusnya sudah cukup untuk membuat roti selai. 12 langkah selanjutnya hanya merupakan penjabarannya saja.\u003C\u002Fp>\n\u003Cp>Jika ke 12 langkah tersebut dikelompokkan sesuai tujuan spesifiknya maka akan dihasilkan prosedur berupa 3 langkah seperti yang disebutkan di awal.\u003C\u002Fp>\n\u003Cp>Coba bayangkan jika semua buku resep menuliskan langkah spesifik yang panjang, bisa-bisa buku sejarah jadi kalah tebal. Begitu pula kode program, bisa jadi sangat panjang sehingga sulit dibaca.\u003C\u002Fp>\n\u003Cp>Dengan adanya pemrograman prosedural, langkah-langkah panjang akan dikelompokkan sesuai tujuannya sehingga kode bisa lebih mudah dibaca.\u003C\u002Fp>\n\u003Ch2 id=\"pemrograman-prosedural-pada-pascal\">Pemrograman Prosedural pada Pascal\u003C\u002Fh2>\n\u003Cp>Pascal merupakan salah satu bahasa pemrograman \u003Ca href=\"https:\u002F\u002Fen.wikipedia.org\u002Fwiki\u002FProcedural_programming\">prosedural\u003C\u002Fa>. Sebagai bahasa pemrograman \u003Cstrong>prosedural\u003C\u002Fstrong>, Pascal memiliki cara untuk memecah masalah kompleks menjadi sederhana dalam beberapa \u003Cstrong>sub program\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cp>Sub program pada pascal dapat berupa PROCEDURE maupun FUNCTION.\u003C\u002Fp>\n\u003Ch3 id=\"procedure\">Procedure\u003C\u002Fh3>\n\u003Cp>PROCEDURE merupakan sub program pada pascal yang berfungsi untuk menjalankan kumpulan langkah-langkah tanpa mengembalikan nilai.\u003C\u002Fp>\n\u003Cp>Beberapa contoh PROCEDURE yang sudah sering kita pakai adalah \u003Ccode>CLRSCR\u003C\u002Fcode>, \u003Ccode>WRITELN\u003C\u002Fcode>, \u003Ccode>READLN\u003C\u002Fcode>, \u003Ccode>WRITE\u003C\u002Fcode>, dan \u003Ccode>READ\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Walaupun prosedur tersebut terlihat simpel (sekedar input dan output), sebenarnya dibalik layar ada banyak operasi yang terjadi.\u003C\u002Fp>\n\u003Cp>Untuk pembahasan lebih lanjut akan kita bahas pada kesempatan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fprocedure-pascal\u002F\">selanjutnya\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"function\">Function\u003C\u002Fh3>\n\u003Cp>Selanjutnya ada FUNCTION. Sub program yang satu ini sama seperti Procedure, tetapi memiliki kemampuan untuk mengembalikan suatu nilai. Sehingga dapat digunakan pada operasi \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Ftipe-data-pascal\u002F#Memberi_Nilai_pada_Variable\">assignment\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Contoh FUNCTION yang sudah tersedia pada pascal adalah \u003Ccode>ABS\u003C\u002Fcode> untuk mencari nilai mutlak, \u003Ccode>SQRT\u003C\u002Fcode> untuk mencari akar bilangan, dan \u003Ccode>SQR\u003C\u002Fcode> untuk mengkuadratkan bilangan.\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=\"%2F%2F%20x%20bernilai%202%20(akar%204%20%3D%202)%0Ax%20%3A%3D%20sqrt(4)%3B%0A%2F%2F%20y%20bernilai%209%20(%7C-9%7C%20%3D%209)%0Ay%20%3A%3D%20abs(-9)%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>\u002F\u002F x bernilai 2 (akar 4 = 2)\nx := sqrt(4);\n\u002F\u002F y bernilai 9 (|-9| = 9)\ny := abs(-9);\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Untuk pembahasan lebih lanjut akan kita bahas pada kesempatan lain.\u003C\u002Fp>\n\u003Ch2 id=\"penutup\">Penutup\u003C\u002Fh2>\n\u003Cp>Cukup sekian untuk perkenalan dengan pemrograman prosedural pada Pascal. Semoga bermanfaat 😊\u003C\u002Fp>\n\u003Cp>Pada kesempatan selanjutnya kita akan membahas lebih lanjut tentang \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fprocedure-pascal\u002F\">PROCEDURE pada Pascal\u003C\u002Fa>.\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":101,"name":102,"slug":103,"role":104,"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":101,"name":102,"slug":103,"role":104,"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":101,"name":102,"slug":103,"role":104,"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":101,"name":102,"slug":103,"role":104,"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":101,"name":102,"slug":103,"role":104,"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":101,"name":102,"slug":103,"role":104,"profile_picture":21},[266,270,273,276,279],{"text":267,"depth":268,"id":269},"Apa itu Pemrograman Prosedural?",2,"apa-itu-pemrograman-prosedural",{"text":271,"depth":268,"id":272},"Pemrograman Prosedural pada Pascal","pemrograman-prosedural-pada-pascal",{"text":274,"depth":81,"id":275},"Procedure","procedure",{"text":277,"depth":81,"id":278},"Function","function",{"text":280,"depth":268,"id":281},"Penutup","penutup",1793295835350]