[{"data":1,"prerenderedAt":238},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-operasi-aritmatika-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},"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.","2020-10-18T11:46:28.000Z",{"id":49},"20365e59-b759-4ac3-9e1d-6f9c1ddc6ac7",[51,52,53],"pascal","operator","dasar",5,null,"Operasi Aritmatika merupakan operasi yang biasa kita temui pada matematika. Ada tambah, kurang, kali, bagi, dan masih banyak lagi. Dalam pemrograman Pascal, operasi aritmatika juga kita gunakan untuk proses manipulasi data. Karena dalam pemrograman tidak hanya berurusan dengan angka, jadi operasinya juga akan berbeda pada setiap tipe data.\n\nSetelah 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. Kebanyakan operasi ini juga berlaku untuk bahasa pemroraman lainnya.\n\n## Operasi Tipe Data Integer pada Pascal\n\nTipe data integer berisi bilangan bulat negatif, positif, dan nol. Tipe data integer tidak mengenal angka desimal, dan pecahan. Sehingga operasi yang dapat dilakukan pada tipe data integer juga **tidak boleh** menghasilkan bilangan desimal.\n\nOperasi yang dapat dilakukan pada tipe data integer adalah **tambah, kurang, kali, divisi,** dan **modulus.** Tipe data integer tidak mengenal yang namanya operasi pembagian, karena memungkinkan hasilnya berupa bilangan desimal.\n\n| Operasi     | Tanda | Keterangan                             | Contoh        |\n| ----------- | ----- | -------------------------------------- | ------------- |\n| Penjumlahan | `+`   | Melakukan penjumlahan 2 bilangan bulat | 2+2 = 4       |\n| Pengurangan | `–`   | Melakukan pengurangan 2 bilangan bulat | 6-4 = 2       |\n| Perkalian   | `*`   | Melakukan perkalian 2 bilangan bulat   | 6*6 = 36      |\n| Divisi      | `div` | Membagi 2 bilangan dibulatkan ke bawah | 5 `div` 2 = 2 |\n| Modulus     | `mod` | Mengambil sisa bagi 2 bilangan         | 5 `mod` 2 = 1 |\n\nPada operasi tipe data integer terdapat 2 operasi yang tidak ada di operasi matematika, yaitu `div` dan `mod`.\n\nOperasi `div` merupakan operasi pembagian dengan **pembulatan** **ke bawah**. Tapi saya lebih suka menyebutnya sebagai **pembagian tanpa sisa.** Sedangkan operasi `mod` merupakan operasi pembagian namun **hanya diambil sisanya saja.**\n\nContohnya **9 : 2 = 4 sisa 1**. Jadi `9 div 2 = 4` dan `9 mod 2 = 1`.\n\nContoh yang lain adalah **7 : 5 = 1 sisa 2**. Jadi `7 div 5 = 1`. dan `7 mod 5 = 2`.\n\nSupaya lebih paham lagi tentang operasi `div` dan `mod`, coba ketikkan kode dibawah ini lalu jalankan.\n\n```pascal\nprogram OperasiDivMod;\nuses crt;\n\n// deklarasi variable\nvar\n  a, b :integer;\n  hasil :integer;\n  sisa :integer;\n\n{Program ini digunakan untuk menampilkan hasil bagi a dan b\ndalam bentuk 'hasil dan sisa' (bukan dalam bentuk desimal)}\nbegin\n  clrscr;\n\n  // memberi nilai variable\n  a := 7;\n  b := 5;\n  hasil := a div b; // hasil bagi antara a dan b tanpa sisa\n  sisa := a mod b; // sisa bagi antara a dan b\n\n  // sistem output\n  writeln('nilai a = ', a); // menampilkan nilai a\n  writeln('nilai b = ', b); // menampilkan nilai b\n\n  // menampilkan operasi pembagian\n  write(a, ' / ', b, ' = '); // menampilkan a dan b\n  writeln(hasil, ' sisa ', sisa); // menampilkan hasil dan sisa\n\n  readln;\nend.\n```\n\nKira kira output programnya akan terliat seperti ini.\n\n```\nnilai a = 7\nnilai b = 5\n7 / 5 = 1 sisa 2\n```\n\nUntuk eksperimen kalian bisa coba ganti nilai variable **a** dan **b**. Oh iya sekalian kalian bisa coba ganti operasi `div` diatas menjadi tanda bagi (/) dan lihat apa yang terjadi hehe.\n\n## Operasi Tipe Data Real pada Pascal\n\nOperasi pascal selanjutnya adalah pada tipe data Real. Baik Real maupun Integer merupakan tipe data yang berupa angka, sehingga sebagian besar operasi yang dapat dilakukan juga sama.\n\nPerbedaannya hanya terletak pada operasi pembagian. Tipe data Real mengenal operasi pembagian, namun Integer tidak. Di sisi lain tipe data Real tidak mengenal operasi `div` dan `mod`\n\nAda lagi satu operasi untuk tipe data real. Lebih tepatnya ini disebut **format** bukan operasi hehe. Jadi secara default pascal akan membaca bilangan desimal dengan banyak angka 0 dibelakang koma. Nah kita bisa mengatasi ini dengan cara melakukan [format real](https://wiki.freepascal.org/Formatting_output).\n\n| Operasi     | Tanda | Keterangan                       | Contoh            |\n| ----------- | ----- | -------------------------------- | ----------------- |\n| Penjumlahan | +     | Melakukan penjumlahan 2 bilangan | 2.7+2.7 = 5.4     |\n| Pengurangan | –     | Melakukan pengurangan 2 bilangan | 6.9-10.9 = -4.0   |\n| Perkalian   | \\*    | Melakukan perkalian 2 bilangan   | 0.6*6 = 3.6       |\n| Pembagian   | /     | Membagi 2 bilangan               | 5 / 2 = 2.5       |\n| Fromat      | r:[a]:b | Melakukan format real            | 3.1415:2:2 = 3.14 |\n\n> pada tabel diatas maksud dari r:[a]:b adalah **r**: bilangan real; **a**: panjang bilangan didepan koma; **b**: panjang bilangan dibelakang koma.\n\nPada bahasa Pascal, bilangan bulat juga dapat masuk kedalam nilai variable Real, tidak seperti Integer yang hanya bisa menerima bilangan bulat. Ini karena bilangan bulat dapat dituliskan dalam bentuk desimal. Angka 7 (integer) dapat ditulis sebagai 7.0 (real).\n\nYuk coba kita koding pakai tipe data real, biar semakin paham hehe\n\n```pascal\nprogram OperasiReal;\nuses crt;\n\n// deklarasi variable\nvar\n  a, b: integer;\n  c, d: real;\n\nbegin\n  clrscr;\n\n  // memberi nilai pada variable\n  a := -20;  // bilangan negatif\n  b := 4;\n  c := a/b;\n  d := -c/b; // negatif dibagi negatif menjadi positif\n\n  // output nilai variable\n  writeln('a = ', a);\n  writeln('b = ', b);\n  writeln('c = ', c);\n  writeln('d = ', d);\n  readln;\nend.\n```\n\nJika kalian jalankan maka kurang lebih outputnya akan seperti ini\n\n```\na = -20\nb = 4\nc =  -5.0000000000000000E+000\nd =  1.2500000000000000E+000\n```\n\nWow wow, kenapa banyak angka nol disana :o Ini karena variable **c** dan **e** belum diformat. Untuk melakukan format kita bisa menambahkan operasi format pada perintah `writeln`. Selanjutnya silahkan ganti kode output **c** dan **d** kalian menjadi seperti ini.\n\n```pascal\n....\n  writeln('c = ', c:2:2);\n  writeln('d = ', d:2:2);\n....\n```\n\nKalau sudah jadi nanti hasil outputnya akan berubah menjadi seperti ini\n\n```\na = -20\nb = 4\nc = -5.00\nd = 1.25\n```\n\nJadi angka didepan dan dibelakang koma dibatasi hanya berjumlah 2 digit saja. Sekarang jadi lebih enak dilihat :D\n\n## Urutan Prioritas Operasi Pada Pascal\n\nUrutan prioritas operasi pada pascal sama seperti urutan pada operasi aritmatika dalam matematika yaitu:\n\n1. Operasi dalam kurung didahulukan\n2. Selanjutnya operasi kali , bagi, `div`, dan `mod`\n3. Selanjutnya operasi tambah dan kurang\n4. Operasi selalu dilakukan dari kiri\n\nContoh kita punya variable a yang bertipe real. Maka 2\\*3+7 tidak sama dengan 2\\*(3+7)\n\n## Penutup\n\nOperasi Aritmatika pada Pascal sebenarnya sama seperti yang ada pada matematika. Semua operasi ini akan sangat berguna dalam melakukan manipulasi data kedepannya. Untuk operasi tipe data yang lainnya seperti string dan boolean akan kita bahas pada tutorial tutorial selanjutnya hehe.\n\nCukup sekian untuk tutorial pascal kali ini, semoga bermanfaat 👋 Pada tutorial selanjutnya kita akan membahas tentang [sistem input Pada Bahasa Pascal](https://invasikode.com/read-readln-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,77,87,97,104,112,121,131,139,149],{"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,53],"intro","pemrograman",{"id":78,"title":79,"slug":80,"excerpt":81,"thumbnail_image":82,"tags":84},"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":83},"cd7ff963-992f-49cc-8520-a7a6685d7546",[51,85,86],"input-output","syntax",{"id":88,"title":89,"slug":90,"excerpt":91,"thumbnail_image":92,"tags":94},"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":93},"2c84752c-6726-4126-bfd7-ae7f311be684",[51,95,96],"instalasi","tooling",{"id":98,"title":99,"slug":100,"excerpt":91,"thumbnail_image":101,"tags":103},"61","Menginstall Free Pascal pada Linux","menginstall-free-pascal-pada-linux",{"id":102},"36758a2e-8f5d-4485-af44-ac5c17d6b438",[51,95,96],{"id":105,"title":106,"slug":107,"excerpt":108,"thumbnail_image":109,"tags":111},"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":110},"81fde45a-bbc8-4080-8167-4717eef59014",[51,23,53],{"id":113,"title":114,"slug":115,"excerpt":116,"thumbnail_image":117,"tags":119},"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":118},"d003025e-345c-426d-b499-d76da7a8ee72",[51,86,53,120],"konsep",{"id":122,"title":123,"slug":124,"excerpt":125,"thumbnail_image":126,"tags":128},"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":127},"a1fb41b3-5d8d-4c47-b0d3-0f344ad33107",[51,129,86,130],"komentar","best-practice",{"id":132,"title":133,"slug":134,"excerpt":135,"thumbnail_image":136,"tags":138},"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.",{"id":137},"234ec268-ef60-4f16-837f-b0cf86471406",[51,85,86],{"id":140,"title":141,"slug":142,"excerpt":143,"thumbnail_image":144,"tags":146},"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":145},"52b80649-eebb-4321-990e-c8f34b547c9b",[51,147,148,53],"variabel","tipe-data",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":150,"tags":151},{"id":49},[51,52,53],{"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>Operasi Aritmatika merupakan operasi yang biasa kita temui pada matematika. Ada tambah, kurang, kali, bagi, dan masih banyak lagi. Dalam pemrograman Pascal, operasi aritmatika juga kita gunakan untuk proses manipulasi data. Karena dalam pemrograman tidak hanya berurusan dengan angka, jadi operasinya juga akan berbeda pada setiap tipe data.\u003C/p>\n\u003Cp>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. Kebanyakan operasi ini juga berlaku untuk bahasa pemroraman lainnya.\u003C/p>\n\u003Ch2 id=\"operasi-tipe-data-integer-pada-pascal\">Operasi Tipe Data Integer pada Pascal\u003C/h2>\n\u003Cp>Tipe data integer berisi bilangan bulat negatif, positif, dan nol. Tipe data integer tidak mengenal angka desimal, dan pecahan. Sehingga operasi yang dapat dilakukan pada tipe data integer juga \u003Cstrong>tidak boleh\u003C/strong> menghasilkan bilangan desimal.\u003C/p>\n\u003Cp>Operasi yang dapat dilakukan pada tipe data integer adalah \u003Cstrong>tambah, kurang, kali, divisi,\u003C/strong> dan \u003Cstrong>modulus.\u003C/strong> Tipe data integer tidak mengenal yang namanya operasi pembagian, karena memungkinkan hasilnya berupa bilangan desimal.\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Operasi\u003C/th>\n\u003Cth>Tanda\u003C/th>\n\u003Cth>Keterangan\u003C/th>\n\u003Cth>Contoh\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Penjumlahan\u003C/td>\n\u003Ctd>\u003Ccode>+\u003C/code>\u003C/td>\n\u003Ctd>Melakukan penjumlahan 2 bilangan bulat\u003C/td>\n\u003Ctd>2+2 = 4\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Pengurangan\u003C/td>\n\u003Ctd>\u003Ccode>–\u003C/code>\u003C/td>\n\u003Ctd>Melakukan pengurangan 2 bilangan bulat\u003C/td>\n\u003Ctd>6-4 = 2\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Perkalian\u003C/td>\n\u003Ctd>\u003Ccode>*\u003C/code>\u003C/td>\n\u003Ctd>Melakukan perkalian 2 bilangan bulat\u003C/td>\n\u003Ctd>6*6 = 36\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Divisi\u003C/td>\n\u003Ctd>\u003Ccode>div\u003C/code>\u003C/td>\n\u003Ctd>Membagi 2 bilangan dibulatkan ke bawah\u003C/td>\n\u003Ctd>5 \u003Ccode>div\u003C/code> 2 = 2\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Modulus\u003C/td>\n\u003Ctd>\u003Ccode>mod\u003C/code>\u003C/td>\n\u003Ctd>Mengambil sisa bagi 2 bilangan\u003C/td>\n\u003Ctd>5 \u003Ccode>mod\u003C/code> 2 = 1\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\n\u003Cp>Pada operasi tipe data integer terdapat 2 operasi yang tidak ada di operasi matematika, yaitu \u003Ccode>div\u003C/code> dan \u003Ccode>mod\u003C/code>.\u003C/p>\n\u003Cp>Operasi \u003Ccode>div\u003C/code> merupakan operasi pembagian dengan \u003Cstrong>pembulatan\u003C/strong> \u003Cstrong>ke bawah\u003C/strong>. Tapi saya lebih suka menyebutnya sebagai \u003Cstrong>pembagian tanpa sisa.\u003C/strong> Sedangkan operasi \u003Ccode>mod\u003C/code> merupakan operasi pembagian namun \u003Cstrong>hanya diambil sisanya saja.\u003C/strong>\u003C/p>\n\u003Cp>Contohnya \u003Cstrong>9 : 2 = 4 sisa 1\u003C/strong>. Jadi \u003Ccode>9 div 2 = 4\u003C/code> dan \u003Ccode>9 mod 2 = 1\u003C/code>.\u003C/p>\n\u003Cp>Contoh yang lain adalah \u003Cstrong>7 : 5 = 1 sisa 2\u003C/strong>. Jadi \u003Ccode>7 div 5 = 1\u003C/code>. dan \u003Ccode>7 mod 5 = 2\u003C/code>.\u003C/p>\n\u003Cp>Supaya lebih paham lagi tentang operasi \u003Ccode>div\u003C/code> dan \u003Ccode>mod\u003C/code>, coba ketikkan kode dibawah ini lalu jalankan.\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%20OperasiDivMod%3B%0Auses%20crt%3B%0A%0A%2F%2F%20deklarasi%20variable%0Avar%0A%20%20a%2C%20b%20%3Ainteger%3B%0A%20%20hasil%20%3Ainteger%3B%0A%20%20sisa%20%3Ainteger%3B%0A%0A%7BProgram%20ini%20digunakan%20untuk%20menampilkan%20hasil%20bagi%20a%20dan%20b%0Adalam%20bentuk%20'hasil%20dan%20sisa'%20(bukan%20dalam%20bentuk%20desimal)%7D%0Abegin%0A%20%20clrscr%3B%0A%0A%20%20%2F%2F%20memberi%20nilai%20variable%0A%20%20a%20%3A%3D%207%3B%0A%20%20b%20%3A%3D%205%3B%0A%20%20hasil%20%3A%3D%20a%20div%20b%3B%20%2F%2F%20hasil%20bagi%20antara%20a%20dan%20b%20tanpa%20sisa%0A%20%20sisa%20%3A%3D%20a%20mod%20b%3B%20%2F%2F%20sisa%20bagi%20antara%20a%20dan%20b%0A%0A%20%20%2F%2F%20sistem%20output%0A%20%20writeln('nilai%20a%20%3D%20'%2C%20a)%3B%20%2F%2F%20menampilkan%20nilai%20a%0A%20%20writeln('nilai%20b%20%3D%20'%2C%20b)%3B%20%2F%2F%20menampilkan%20nilai%20b%0A%0A%20%20%2F%2F%20menampilkan%20operasi%20pembagian%0A%20%20write(a%2C%20'%20%2F%20'%2C%20b%2C%20'%20%3D%20')%3B%20%2F%2F%20menampilkan%20a%20dan%20b%0A%20%20writeln(hasil%2C%20'%20sisa%20'%2C%20sisa)%3B%20%2F%2F%20menampilkan%20hasil%20dan%20sisa%0A%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 OperasiDivMod;\nuses crt;\n\n// deklarasi variable\nvar\n  a, b :integer;\n  hasil :integer;\n  sisa :integer;\n\n{Program ini digunakan untuk menampilkan hasil bagi a dan b\ndalam bentuk 'hasil dan sisa' (bukan dalam bentuk desimal)}\nbegin\n  clrscr;\n\n  // memberi nilai variable\n  a := 7;\n  b := 5;\n  hasil := a div b; // hasil bagi antara a dan b tanpa sisa\n  sisa := a mod b; // sisa bagi antara a dan b\n\n  // sistem output\n  writeln('nilai a = ', a); // menampilkan nilai a\n  writeln('nilai b = ', b); // menampilkan nilai b\n\n  // menampilkan operasi pembagian\n  write(a, ' / ', b, ' = '); // menampilkan a dan b\n  writeln(hasil, ' sisa ', sisa); // menampilkan hasil dan sisa\n\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kira kira output programnya akan terliat seperti ini.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"nilai%20a%20%3D%207%0Anilai%20b%20%3D%205%0A7%20%2F%205%20%3D%201%20sisa%202\" 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>nilai a = 7\nnilai b = 5\n7 / 5 = 1 sisa 2\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Untuk eksperimen kalian bisa coba ganti nilai variable \u003Cstrong>a\u003C/strong> dan \u003Cstrong>b\u003C/strong>. Oh iya sekalian kalian bisa coba ganti operasi \u003Ccode>div\u003C/code> diatas menjadi tanda bagi (/) dan lihat apa yang terjadi hehe.\u003C/p>\n\u003Ch2 id=\"operasi-tipe-data-real-pada-pascal\">Operasi Tipe Data Real pada Pascal\u003C/h2>\n\u003Cp>Operasi pascal selanjutnya adalah pada tipe data Real. Baik Real maupun Integer merupakan tipe data yang berupa angka, sehingga sebagian besar operasi yang dapat dilakukan juga sama.\u003C/p>\n\u003Cp>Perbedaannya hanya terletak pada operasi pembagian. Tipe data Real mengenal operasi pembagian, namun Integer tidak. Di sisi lain tipe data Real tidak mengenal operasi \u003Ccode>div\u003C/code> dan \u003Ccode>mod\u003C/code>\u003C/p>\n\u003Cp>Ada lagi satu operasi untuk tipe data real. Lebih tepatnya ini disebut \u003Cstrong>format\u003C/strong> bukan operasi hehe. Jadi secara default pascal akan membaca bilangan desimal dengan banyak angka 0 dibelakang koma. Nah kita bisa mengatasi ini dengan cara melakukan \u003Ca href=\"https://wiki.freepascal.org/Formatting_output\">format real\u003C/a>.\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Operasi\u003C/th>\n\u003Cth>Tanda\u003C/th>\n\u003Cth>Keterangan\u003C/th>\n\u003Cth>Contoh\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>Penjumlahan\u003C/td>\n\u003Ctd>+\u003C/td>\n\u003Ctd>Melakukan penjumlahan 2 bilangan\u003C/td>\n\u003Ctd>2.7+2.7 = 5.4\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Pengurangan\u003C/td>\n\u003Ctd>–\u003C/td>\n\u003Ctd>Melakukan pengurangan 2 bilangan\u003C/td>\n\u003Ctd>6.9-10.9 = -4.0\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Perkalian\u003C/td>\n\u003Ctd>*\u003C/td>\n\u003Ctd>Melakukan perkalian 2 bilangan\u003C/td>\n\u003Ctd>0.6*6 = 3.6\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Pembagian\u003C/td>\n\u003Ctd>/\u003C/td>\n\u003Ctd>Membagi 2 bilangan\u003C/td>\n\u003Ctd>5 / 2 = 2.5\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>Fromat\u003C/td>\n\u003Ctd>r:[a]:b\u003C/td>\n\u003Ctd>Melakukan format real\u003C/td>\n\u003Ctd>3.1415:2:2 = 3.14\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\n\u003Cblockquote>\n\u003Cp>pada tabel diatas maksud dari r:[a]:b adalah \u003Cstrong>r\u003C/strong>: bilangan real; \u003Cstrong>a\u003C/strong>: panjang bilangan didepan koma; \u003Cstrong>b\u003C/strong>: panjang bilangan dibelakang koma.\u003C/p>\n\u003C/blockquote>\n\u003Cp>Pada bahasa Pascal, bilangan bulat juga dapat masuk kedalam nilai variable Real, tidak seperti Integer yang hanya bisa menerima bilangan bulat. Ini karena bilangan bulat dapat dituliskan dalam bentuk desimal. Angka 7 (integer) dapat ditulis sebagai 7.0 (real).\u003C/p>\n\u003Cp>Yuk coba kita koding pakai tipe data real, biar semakin paham hehe\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%20OperasiReal%3B%0Auses%20crt%3B%0A%0A%2F%2F%20deklarasi%20variable%0Avar%0A%20%20a%2C%20b%3A%20integer%3B%0A%20%20c%2C%20d%3A%20real%3B%0A%0Abegin%0A%20%20clrscr%3B%0A%0A%20%20%2F%2F%20memberi%20nilai%20pada%20variable%0A%20%20a%20%3A%3D%20-20%3B%20%20%2F%2F%20bilangan%20negatif%0A%20%20b%20%3A%3D%204%3B%0A%20%20c%20%3A%3D%20a%2Fb%3B%0A%20%20d%20%3A%3D%20-c%2Fb%3B%20%2F%2F%20negatif%20dibagi%20negatif%20menjadi%20positif%0A%0A%20%20%2F%2F%20output%20nilai%20variable%0A%20%20writeln('a%20%3D%20'%2C%20a)%3B%0A%20%20writeln('b%20%3D%20'%2C%20b)%3B%0A%20%20writeln('c%20%3D%20'%2C%20c)%3B%0A%20%20writeln('d%20%3D%20'%2C%20d)%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 OperasiReal;\nuses crt;\n\n// deklarasi variable\nvar\n  a, b: integer;\n  c, d: real;\n\nbegin\n  clrscr;\n\n  // memberi nilai pada variable\n  a := -20;  // bilangan negatif\n  b := 4;\n  c := a/b;\n  d := -c/b; // negatif dibagi negatif menjadi positif\n\n  // output nilai variable\n  writeln('a = ', a);\n  writeln('b = ', b);\n  writeln('c = ', c);\n  writeln('d = ', d);\n  readln;\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Jika kalian jalankan maka kurang lebih outputnya akan seperti ini\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"a%20%3D%20-20%0Ab%20%3D%204%0Ac%20%3D%20%20-5.0000000000000000E%2B000%0Ad%20%3D%20%201.2500000000000000E%2B000\" 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>a = -20\nb = 4\nc =  -5.0000000000000000E+000\nd =  1.2500000000000000E+000\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Wow wow, kenapa banyak angka nol disana :o Ini karena variable \u003Cstrong>c\u003C/strong> dan \u003Cstrong>e\u003C/strong> belum diformat. Untuk melakukan format kita bisa menambahkan operasi format pada perintah \u003Ccode>writeln\u003C/code>. Selanjutnya silahkan ganti kode output \u003Cstrong>c\u003C/strong> dan \u003Cstrong>d\u003C/strong> kalian menjadi seperti ini.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">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%20writeln('c%20%3D%20'%2C%20c%3A2%3A2)%3B%0A%20%20writeln('d%20%3D%20'%2C%20d%3A2%3A2)%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  writeln('c = ', c:2:2);\n  writeln('d = ', d:2:2);\n....\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kalau sudah jadi nanti hasil outputnya akan berubah menjadi seperti ini\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"a%20%3D%20-20%0Ab%20%3D%204%0Ac%20%3D%20-5.00%0Ad%20%3D%201.25\" 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>a = -20\nb = 4\nc = -5.00\nd = 1.25\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Jadi angka didepan dan dibelakang koma dibatasi hanya berjumlah 2 digit saja. Sekarang jadi lebih enak dilihat :D\u003C/p>\n\u003Ch2 id=\"urutan-prioritas-operasi-pada-pascal\">Urutan Prioritas Operasi Pada Pascal\u003C/h2>\n\u003Cp>Urutan prioritas operasi pada pascal sama seperti urutan pada operasi aritmatika dalam matematika yaitu:\u003C/p>\n\u003Col>\n\u003Cli>Operasi dalam kurung didahulukan\u003C/li>\n\u003Cli>Selanjutnya operasi kali , bagi, \u003Ccode>div\u003C/code>, dan \u003Ccode>mod\u003C/code>\u003C/li>\n\u003Cli>Selanjutnya operasi tambah dan kurang\u003C/li>\n\u003Cli>Operasi selalu dilakukan dari kiri\u003C/li>\n\u003C/ol>\n\u003Cp>Contoh kita punya variable a yang bertipe real. Maka 2*3+7 tidak sama dengan 2*(3+7)\u003C/p>\n\u003Ch2 id=\"penutup\">Penutup\u003C/h2>\n\u003Cp>Operasi Aritmatika pada Pascal sebenarnya sama seperti yang ada pada matematika. Semua operasi ini akan sangat berguna dalam melakukan manipulasi data kedepannya. Untuk operasi tipe data yang lainnya seperti string dan boolean akan kita bahas pada tutorial tutorial selanjutnya hehe.\u003C/p>\n\u003Cp>Cukup sekian untuk tutorial pascal kali ini, semoga bermanfaat 👋 Pada tutorial selanjutnya kita akan membahas tentang \u003Ca href=\"https://invasikode.com/read-readln-pascal/\">sistem input 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,235],{"text":226,"depth":227,"id":228},"Operasi Tipe Data Integer pada Pascal",2,"operasi-tipe-data-integer-pada-pascal",{"text":230,"depth":227,"id":231},"Operasi Tipe Data Real pada Pascal","operasi-tipe-data-real-pada-pascal",{"text":233,"depth":227,"id":234},"Urutan Prioritas Operasi Pada Pascal","urutan-prioritas-operasi-pada-pascal",{"text":236,"depth":227,"id":237},"Penutup","penutup",1791045070477]