[{"data":1,"prerenderedAt":235},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-output-dengan-write-dan-writeln-pada-bahasa-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":170,"renderedTakeaway":171,"latestArticles":172,"toc":224},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":54,"takeway":55,"body":56,"authors":57,"series":63},"64","Output dengan Write dan Writeln pada Bahasa Pascal","output-dengan-write-dan-writeln-pada-bahasa-pascal","Sistem output merupakan suatu yang sangat penting dalam pemrograman. Bukan cuma pemrograman, bahkan semua hal pasti berorientasi pada output.","2020-10-09T11:17:19.000Z",{"id":49},"234ec268-ef60-4f16-837f-b0cf86471406",[51,52,53],"pascal","input-output","syntax",3,null,"Pada tutorial kali ini kita akan membahas tentang sistem output menggunakan write dan writeln pada pascal. Setelah kenyang dengan program [hello world](https://invasikode.com/hello-world-pascal/) pada tutorial tutorial sebelumnya, sekarang saatnya membuat program baru :D\n\nSistem output merupakan suatu yang sangat penting dalam pemrograman. Bukan cuma pemrograman, bahkan semua hal pasti berorientasi pada output.\n\nOutput merupakan hal yang sangat penting, karena merupakan **salah satu** tolak ukur keberhasilan dan kegagalan dari apa yang telah kita lakukan. Iya... salah satu aja. Karena masih banyak hal lain yang bisa jadi tolak ukur keberhasilan.\n\nDalam pemrograman, output bisa dalam bentuk macam macam. beberapa diantaranya yaitu output ke konsol, output ke file, output ke database, dan banyak yang lainnya. Tetapi untuk tutorial kali ini kita cukup membahas output ke konsol saja.\n\n> Untuk yang belum tahu tentang konsol. Konsol merupakan sebutan saya untuk layar hitam saat kita menjalankan (run) program Pascal.\n\nPascal memiliki 2 perintah untuk melakukan output ke konsol yaitu `**write**` dan `**writeln**`. Kira kira apa bedanya? apa kegunaannya? dan kapan harus menggunakannya? langsung aja kita bahas.\n\n## Perintah Writeln pada Pascal\n\n`writeln` merupakan singkatan dari **Write Line**. Perintah `writeln` digunakan untuk menulis output dalam satu baris lalu berpindah ke baris selanjutnya.\n\nBingung? langsung aja kita coba praktek. Silahkan kalian buka Free Pascal kalian dan ketikkan kode berikut.\n\n```pascal\nprogram output;\nuses crt;\nbegin\n  clrscr;\n  writeln('ini Budi');\n  writeln('Budi sedang belajar Pascal');\n  writeln('Budi mampir ke invasikode.com');\n  readln;\nend.\n```\n\nKalau sudah selesai mengetik langsung kalian [simpan dan jalankan](https://invasikode.com/hello-world-pascal/#Menyimpan_File) kode Pascal tersebut. Begitu program dieksekusi, layar konsol bakal menampilkan tiga baris teks berurutan ke bawah.\n\n> 📷 *Ilustrasi: jendela konsol yang menampilkan output teks tiga baris terpisah berkat perintah writeln.*\n\nDari output tersebut, kita bisa lihat bahwa konsol menampilkan kalimat yang ada dalam tanda kurung secara bertingkat.\n\nSetiap kata atau kalimat yang ingin kita tuliskan sebagai output harus diapit dengan tanda petik (**'**). Coba saja kalian hapus tanda petik yang ada lalu kalian jalankan program. Pasti akan keluar error.\n\nTerus apa bedanya perintah `writeln` dengan `write`? langsung aja kita bahas sekalian tentang perintah `write`.\n\n## Perintah Write pada Pascal\n\nPerintah `write` pada dasarnya sama seperti perintah `writeln`. Yang membedakan hanya terletak pada penambahan baris baru saja.\n\nJika pada perintah `writeln` hasil output akan terdiri dari banyak baris, pada perintah `write` hanya akan ada output dalam satu baris saja.\n\nCoba aja kalian ubah `writeln` pada kode pascal diatas menjadi `write`.\n\n```pascal\nprogram output;\nuses crt;\nbegin\n  clrscr;\n  write('ini Budi');\n  write('Budi sedang belajar Pascal');\n  write('Budi mampir ke invasikode.com');\n  readln;\nend.\n```\n\nJika sudah langsung aja kalian jalankan. Kali ini hasil outputnya bakal menyatu dalam satu baris mendatar tanpa jeda ganti baris.\n\n> 📷 *Ilustrasi: jendela konsol yang menampilkan ketiga kalimat tersambung dalam satu baris akibat penggunaan perintah write.*\n\nSama seperti perintah `writeln`, kata atau kalimat dalam kurung akan tampil sebagai output. Namun pada perintah `write` semua kalimat berada pada satu baris sehingga membacanya akan sedikit sulit.\n\nFungsi perintah `write` memang untuk mengeluarkan output tanpa berpindah ke baris selanjutnya. Ini akan sangat berguna ketika kita menggunakannya sebagai keterangan input yang akan kita pelajari pada tutorial selanjutnya.\n\n## Penutup\n\nKalau kalian ingin coba output lain silahkan ganti kalimat yang ada dalam tanda kurung pada perintah `write` dan `writeln`. Kalau ingin menambahkan output yang lain juga bisa hehe.\n\nCukup sekian untuk tutorial kali ini semoga bermanfaat :D . Pada tutorial selanjutnya kita akan belajar tentang [Variable, Konstanta, dan Tipe data pada Bahasa Pascal.](https://invasikode.com/tipe-data-pascal/)",[58],{"authors_id":59},{"name":60,"slug":61,"role":62,"profile_picture":55},"Daffa Izzuddin","izzudd","Writer",{"id":64,"title":65,"slug":66,"articles":67,"parent_series":152},"23","Berkenalan dengan Bahasa Pascal","pascal-intro",[68,78,86,96,103,111,120,130,133,143],{"id":69,"title":65,"slug":70,"excerpt":71,"thumbnail_image":72,"tags":74},"59","berkenalan-dengan-bahasa-pascal","Pascal merupakan bahasa pemrograman dengan sintaks sederhana, ekspresif, dan mudah dibaca. Ini membuatnya menjadi bahasa pemrograman yang baik untuk pemula.",{"id":73},"ed6e86a1-9928-4571-b812-1228b8742067",[51,75,76,77],"intro","pemrograman","dasar",{"id":79,"title":80,"slug":81,"excerpt":82,"thumbnail_image":83,"tags":85},"60","Sistem Input dengan Read dan Readln pada Bahasa Pascal","sistem-input-dengan-read-dan-readln-pada-bahasa-pascal","Pada kesempatan kali ini kita akan belajar tentang proses masukan dari keyboard dengan menggunakan perintah read dan readln pada Bahasa Pascal.",{"id":84},"cd7ff963-992f-49cc-8520-a7a6685d7546",[51,52,53],{"id":87,"title":88,"slug":89,"excerpt":90,"thumbnail_image":91,"tags":93},"102","Menginstal Free Pascal pada Windows","menginstal-free-pascal-pada-windows","Untuk menjalankan kode Pascal pada sistem operasi Windows kita perlu compiler. Kali ini kita akan mengunakan Free Pascal sebagai compiler sekaligus code editor kita.",{"id":92},"2c84752c-6726-4126-bfd7-ae7f311be684",[51,94,95],"instalasi","tooling",{"id":97,"title":98,"slug":99,"excerpt":90,"thumbnail_image":100,"tags":102},"61","Menginstall Free Pascal pada Linux","menginstall-free-pascal-pada-linux",{"id":101},"36758a2e-8f5d-4485-af44-ac5c17d6b438",[51,94,95],{"id":104,"title":105,"slug":106,"excerpt":107,"thumbnail_image":108,"tags":110},"103","Membuat Program Hello World pada Pascal","membuat-program-hello-world-pada-pascal","Setelah melakukan instalasi Free Pascal baik pada windows atau linux, kali ini kita akan belajar untuk membuat program pertama kita. Sekaligus kenalan sedikit dengan Program Free Pascal.",{"id":109},"81fde45a-bbc8-4080-8167-4717eef59014",[51,23,77],{"id":112,"title":113,"slug":114,"excerpt":115,"thumbnail_image":116,"tags":118},"62","Mengenal Bagian dan Struktur Bahasa Pascal","mengenal-bagian-dan-struktur-bahasa-pascal","Ibarat menulis surat mulai dari kepala surat sampai tanda tangan, kode Pascal juga memiliki aturan penulisan dan struktur yang harus dipenuhi. Mari kita bahas lebih lanjut.",{"id":117},"d003025e-345c-426d-b499-d76da7a8ee72",[51,53,77,119],"konsep",{"id":121,"title":122,"slug":123,"excerpt":124,"thumbnail_image":125,"tags":127},"63","Penulisan Komentar pada Bahasa Pascal","penulisan-komentar-pada-bahasa-pascal","Kali ini kita akan membahas tentang penulisan komentar pada bahasa Pascal. Komentar adalah bagian dar kode yang tidak akan dibaca oleh komputer.",{"id":126},"a1fb41b3-5d8d-4c47-b0d3-0f344ad33107",[51,128,53,129],"komentar","best-practice",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":131,"tags":132},{"id":49},[51,52,53],{"id":134,"title":135,"slug":136,"excerpt":137,"thumbnail_image":138,"tags":140},"65","Variable, Konstanta, dan Tipe Data pada Pascal","variable-konstanta-dan-tipe-data-pada-pascal","Variable, konstanta, dan tipe data merupakan jantung dari pemrograman yang akan kita gunakan untuk melakukan manipulasi data.",{"id":139},"52b80649-eebb-4321-990e-c8f34b547c9b",[51,141,142,77],"variabel","tipe-data",{"id":144,"title":145,"slug":146,"excerpt":147,"thumbnail_image":148,"tags":150},"66","Operasi Aritmatika pada Bahasa Pascal","operasi-aritmatika-pada-bahasa-pascal","Setelah tahu tentang apa itu tipe data, sekarang kita akan coba belajar tentang operasi apa saja yang dapat dilakukan pada setiap tipe data dalam bahasa Pascal.",{"id":149},"20365e59-b759-4ac3-9e1d-6f9c1ddc6ac7",[51,151,77],"operator",{"id":153,"title":29,"slug":30,"parent_series":154,"children_series":156},"14",{"id":155,"title":22,"slug":23,"parent_series":55},"1",[157,158,162,166],{"id":64,"title":65,"slug":66,"cover_image":55},{"id":159,"title":160,"slug":161,"cover_image":55},"24","Struktur Kontrol","pascal-struktur-kontrol",{"id":163,"title":164,"slug":165,"cover_image":55},"25","Tipe Data Bentukan","pascal-tipe-data-bentukan",{"id":167,"title":168,"slug":169,"cover_image":55},"26","Pemrograman Prosedural","pascal-pemrograman-prosedural","\u003Cp>Pada tutorial kali ini kita akan membahas tentang sistem output menggunakan write dan writeln pada pascal. Setelah kenyang dengan program \u003Ca href=\"https://invasikode.com/hello-world-pascal/\">hello world\u003C/a> pada tutorial tutorial sebelumnya, sekarang saatnya membuat program baru :D\u003C/p>\n\u003Cp>Sistem output merupakan suatu yang sangat penting dalam pemrograman. Bukan cuma pemrograman, bahkan semua hal pasti berorientasi pada output.\u003C/p>\n\u003Cp>Output merupakan hal yang sangat penting, karena merupakan \u003Cstrong>salah satu\u003C/strong> tolak ukur keberhasilan dan kegagalan dari apa yang telah kita lakukan. Iya... salah satu aja. Karena masih banyak hal lain yang bisa jadi tolak ukur keberhasilan.\u003C/p>\n\u003Cp>Dalam pemrograman, output bisa dalam bentuk macam macam. beberapa diantaranya yaitu output ke konsol, output ke file, output ke database, dan banyak yang lainnya. Tetapi untuk tutorial kali ini kita cukup membahas output ke konsol saja.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Untuk yang belum tahu tentang konsol. Konsol merupakan sebutan saya untuk layar hitam saat kita menjalankan (run) program Pascal.\u003C/p>\n\u003C/blockquote>\n\u003Cp>Pascal memiliki 2 perintah untuk melakukan output ke konsol yaitu \u003Ccode>**write**\u003C/code> dan \u003Ccode>**writeln**\u003C/code>. Kira kira apa bedanya? apa kegunaannya? dan kapan harus menggunakannya? langsung aja kita bahas.\u003C/p>\n\u003Ch2 id=\"perintah-writeln-pada-pascal\">Perintah Writeln pada Pascal\u003C/h2>\n\u003Cp>\u003Ccode>writeln\u003C/code> merupakan singkatan dari \u003Cstrong>Write Line\u003C/strong>. Perintah \u003Ccode>writeln\u003C/code> digunakan untuk menulis output dalam satu baris lalu berpindah ke baris selanjutnya.\u003C/p>\n\u003Cp>Bingung? langsung aja kita coba praktek. Silahkan kalian buka Free Pascal kalian dan ketikkan kode 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\">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%20output%3B%0Auses%20crt%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20writeln('ini%20Budi')%3B%0A%20%20writeln('Budi%20sedang%20belajar%20Pascal')%3B%0A%20%20writeln('Budi%20mampir%20ke%20invasikode.com')%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 output;\nuses crt;\nbegin\n  clrscr;\n  writeln('ini Budi');\n  writeln('Budi sedang belajar Pascal');\n  writeln('Budi mampir ke invasikode.com');\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kalau sudah selesai mengetik langsung kalian \u003Ca href=\"https://invasikode.com/hello-world-pascal/#Menyimpan_File\">simpan dan jalankan\u003C/a> kode Pascal tersebut. Begitu program dieksekusi, layar konsol bakal menampilkan tiga baris teks berurutan ke bawah.\u003C/p>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: jendela konsol yang menampilkan output teks tiga baris terpisah berkat perintah writeln.\u003C/em>\u003C/p>\n\u003C/blockquote>\n\u003Cp>Dari output tersebut, kita bisa lihat bahwa konsol menampilkan kalimat yang ada dalam tanda kurung secara bertingkat.\u003C/p>\n\u003Cp>Setiap kata atau kalimat yang ingin kita tuliskan sebagai output harus diapit dengan tanda petik (\u003Cstrong>&#39;\u003C/strong>). Coba saja kalian hapus tanda petik yang ada lalu kalian jalankan program. Pasti akan keluar error.\u003C/p>\n\u003Cp>Terus apa bedanya perintah \u003Ccode>writeln\u003C/code> dengan \u003Ccode>write\u003C/code>? langsung aja kita bahas sekalian tentang perintah \u003Ccode>write\u003C/code>.\u003C/p>\n\u003Ch2 id=\"perintah-write-pada-pascal\">Perintah Write pada Pascal\u003C/h2>\n\u003Cp>Perintah \u003Ccode>write\u003C/code> pada dasarnya sama seperti perintah \u003Ccode>writeln\u003C/code>. Yang membedakan hanya terletak pada penambahan baris baru saja.\u003C/p>\n\u003Cp>Jika pada perintah \u003Ccode>writeln\u003C/code> hasil output akan terdiri dari banyak baris, pada perintah \u003Ccode>write\u003C/code> hanya akan ada output dalam satu baris saja.\u003C/p>\n\u003Cp>Coba aja kalian ubah \u003Ccode>writeln\u003C/code> pada kode pascal diatas menjadi \u003Ccode>write\u003C/code>.\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%20output%3B%0Auses%20crt%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20write('ini%20Budi')%3B%0A%20%20write('Budi%20sedang%20belajar%20Pascal')%3B%0A%20%20write('Budi%20mampir%20ke%20invasikode.com')%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 output;\nuses crt;\nbegin\n  clrscr;\n  write('ini Budi');\n  write('Budi sedang belajar Pascal');\n  write('Budi mampir ke invasikode.com');\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Jika sudah langsung aja kalian jalankan. Kali ini hasil outputnya bakal menyatu dalam satu baris mendatar tanpa jeda ganti baris.\u003C/p>\n\u003Cblockquote>\n\u003Cp>📷 \u003Cem>Ilustrasi: jendela konsol yang menampilkan ketiga kalimat tersambung dalam satu baris akibat penggunaan perintah write.\u003C/em>\u003C/p>\n\u003C/blockquote>\n\u003Cp>Sama seperti perintah \u003Ccode>writeln\u003C/code>, kata atau kalimat dalam kurung akan tampil sebagai output. Namun pada perintah \u003Ccode>write\u003C/code> semua kalimat berada pada satu baris sehingga membacanya akan sedikit sulit.\u003C/p>\n\u003Cp>Fungsi perintah \u003Ccode>write\u003C/code> memang untuk mengeluarkan output tanpa berpindah ke baris selanjutnya. Ini akan sangat berguna ketika kita menggunakannya sebagai keterangan input yang akan kita pelajari pada tutorial selanjutnya.\u003C/p>\n\u003Ch2 id=\"penutup\">Penutup\u003C/h2>\n\u003Cp>Kalau kalian ingin coba output lain silahkan ganti kalimat yang ada dalam tanda kurung pada perintah \u003Ccode>write\u003C/code> dan \u003Ccode>writeln\u003C/code>. Kalau ingin menambahkan output yang lain juga bisa hehe.\u003C/p>\n\u003Cp>Cukup sekian untuk tutorial kali ini semoga bermanfaat :D . Pada tutorial selanjutnya kita akan belajar tentang \u003Ca href=\"https://invasikode.com/tipe-data-pascal/\">Variable, Konstanta, dan Tipe data pada Bahasa Pascal.\u003C/a>\u003C/p>\n","",[173,186,201,213],{"id":174,"title":175,"slug":176,"excerpt":177,"thumbnail_image":178,"tags":180},"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":179},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[181,182,183,184,185],"system-programming","rust","zig","c","memory-safety",{"id":187,"title":188,"slug":189,"excerpt":190,"thumbnail_image":191,"tags":193},"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":192},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[194,195,196,197,198,199,200],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":202,"title":203,"slug":204,"excerpt":205,"thumbnail_image":206,"tags":208},"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":207},"e3c617fd-1486-4b82-b937-94fbec846c77",[194,209,199,210,211,195,212],"microservices","database","message-broker","postgresql",{"id":214,"title":215,"slug":216,"excerpt":217,"thumbnail_image":218,"tags":220},"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":219},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[221,211,194,199,209,222,223],"rabbitmq","async","python",[225,229,232],{"text":226,"depth":227,"id":228},"Perintah Writeln pada Pascal",2,"perintah-writeln-pada-pascal",{"text":230,"depth":227,"id":231},"Perintah Write pada Pascal","perintah-write-pada-pascal",{"text":233,"depth":227,"id":234},"Penutup","penutup",1791045070344]