[{"data":1,"prerenderedAt":323},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-percabangan-dengan-case-of-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":208,"renderedTakeaway":209,"latestArticles":210,"toc":310},{"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":201,"body_locale":204,"available_locales":205,"body":207,"takeway":21,"prerequisite":21},72,"Percabangan dengan CASE OF pada Pascal","Branching with CASE OF in Pascal","percabangan-dengan-case-of-pada-pascal","CASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi","CASE OF in Pascal is branching that uses a variable and its values to decide which condition applies.","2020-11-17T12:41:17.000Z",3,[83,84,85],"pascal","percabangan","struktur-kontrol","\u002Fog\u002Fpercabangan-dengan-case-of-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91,"description":92,"description_en":93,"articles":94,"children_series":180,"parent_series":181},24,"Struktur Kontrol","Control Structures","pascal-struktur-kontrol","Ekspresi boolean, percabangan if-else dan case-of, plus tiga jenis perulangan yang Pascal punya.","Boolean expressions, if-else and case-of branching, and the three kinds of loop Pascal gives you.",[95,116,130,146,160,175],{"id":96,"title":97,"title_en":98,"slug":99,"excerpt":100,"excerpt_en":101,"has_translation":12,"published_at":102,"reading_time":103,"hidden_from_listing":15,"tags":104,"thumbnail_image":21,"og_image":107,"series":108,"authors":109},67,"Expresi Boolean dan Operasi Logika pada Bahasa Pascal","Boolean Expressions and Logical Operations in Pascal","expresi-boolean-dan-operasi-logika-pada-bahasa-pascal","Dalam penyusunan algoritma pemrograman, perlu yang namanya expresi boolean. Expresi boolean dapat berupa operasi logika dan perbandingan.","Building a programming algorithm needs boolean expressions, and a boolean expression can be a logical operation or a comparison.","2020-11-05T14:29:24.000Z",4,[83,105,106,85],"boolean","operator","\u002Fog\u002Fexpresi-boolean-dan-operasi-logika-pada-bahasa-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[110],{"authors_id":111},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"id":117,"title":118,"title_en":119,"slug":120,"excerpt":121,"excerpt_en":122,"has_translation":12,"published_at":123,"reading_time":103,"hidden_from_listing":15,"tags":124,"thumbnail_image":21,"og_image":125,"series":126,"authors":127},68,"Percabangan dengan Kondisi IF dan ELSE pada Pascal","Branching with IF and ELSE Conditions in Pascal","percabangan-dengan-kondisi-if-dan-else-pada-pascal","Pada kesempatan kali ini kita akan membahas sebuah kondisi percabangan dengan menggunakan keyword IF ELSE.","This time we'll walk through branching conditions in Pascal using the IF ELSE keyword.","2020-11-09T14:33:48.000Z",[83,84,85],"\u002Fog\u002Fpercabangan-dengan-kondisi-if-dan-else-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[128],{"authors_id":129},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":131,"title":132,"title_en":133,"slug":134,"excerpt":135,"excerpt_en":136,"has_translation":12,"published_at":137,"reading_time":81,"hidden_from_listing":15,"tags":138,"thumbnail_image":21,"og_image":141,"series":142,"authors":143},69,"Perulangan dengan FOR loop pada Pascal","Loops with the FOR Loop in Pascal","perulangan-dengan-for-loop-pada-pascal","Pada FOR loop kita menginstruksikan komputer untuk menjalankan suatu perintah sebanyak berapa kali secara explisit.","In a FOR loop we tell the computer to run a statement a specific number of times, spelled out up front.","2020-11-11T12:16:50.000Z",[83,139,140,85],"perulangan","loop","\u002Fog\u002Fperulangan-dengan-for-loop-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[144],{"authors_id":145},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":147,"title":148,"title_en":149,"slug":150,"excerpt":151,"excerpt_en":152,"has_translation":12,"published_at":153,"reading_time":81,"hidden_from_listing":15,"tags":154,"thumbnail_image":21,"og_image":155,"series":156,"authors":157},70,"Perulangan dengan WHILE DO loop pada Pascal","Loops with the WHILE DO Loop in Pascal","perulangan-dengan-while-do-loop-pada-pascal","WHILE DO loop merupakan perulangan pada Pascal yang menggunakan kondisi berupa ekspresi boolean sebagai penanda perulangannya.","A WHILE DO loop is a Pascal loop that uses a boolean expression as the marker for repeating, and it keeps going as long as that condition is true.","2020-11-13T12:29:04.000Z",[83,139,140,85],"\u002Fog\u002Fperulangan-dengan-while-do-loop-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[158],{"authors_id":159},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":161,"title":162,"title_en":163,"slug":164,"excerpt":165,"excerpt_en":166,"has_translation":12,"published_at":167,"reading_time":168,"hidden_from_listing":15,"tags":169,"thumbnail_image":21,"og_image":170,"series":171,"authors":172},71,"Perulangan dengan REPEAT UNTIL loop pada Pascal","Loops with the REPEAT UNTIL Loop in Pascal","perulangan-dengan-repeat-until-loop-pada-pascal","Pada REPEAT UNTIL loop, pengecekan kondisi dilakukan pada akhir perintah dan perulangan akan terus berjalan selama kondisi masih bernilai `false`.","A REPEAT UNTIL loop checks its condition at the end of the statement and keeps running as long as that condition is still false.","2020-11-15T12:34:28.000Z",2,[83,139,140,85],"\u002Fog\u002Fperulangan-dengan-repeat-until-loop-pada-pascal.png",{"id":88,"title":89,"title_en":90,"slug":91},[173],{"authors_id":174},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"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":176,"authors":177},{"id":88,"title":89,"title_en":90,"slug":91},[178],{"authors_id":179},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},[],{"id":182,"title":64,"title_en":65,"slug":66,"parent_series":183,"children_series":184},14,{"id":112,"title":48,"title_en":48,"slug":49},[185,190,191,196],{"id":186,"title":187,"title_en":188,"slug":189,"cover_image":21},23,"Berkenalan dengan Bahasa Pascal","Getting Started with Pascal","pascal-intro",{"id":88,"title":89,"title_en":90,"slug":91,"cover_image":21},{"id":192,"title":193,"title_en":194,"slug":195,"cover_image":21},25,"Tipe Data Bentukan","Composite Types","pascal-tipe-data-bentukan",{"id":197,"title":198,"title_en":199,"slug":200,"cover_image":21},26,"Pemrograman Prosedural","Procedural Programming","pascal-pemrograman-prosedural",[202],{"authors_id":203},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},"id",[206,204],"en","Setelah sebelumnya kita membahas percabangan dengan [IF ELSE](https:\u002F\u002Finvasikode.com\u002Fif-else-pascal\u002F), sekarang kita akan coba membahas metode percabangan yang lain, yaitu dengan menggunakan CASE OF pada Pascal.\n\n## Tentang Percabangan CASE OF\n\nCASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi. Tidak seperti percabangan IF ELSE yang harus menggunakan kondisi berupa [ekspresi boolean](https:\u002F\u002Finvasikode.com\u002Foperasi-logika-pascal\u002F).\n\nKita bisa ambil contoh tentang metode penilaian dengan menggunakan huruf.\n\n1. A = Sangat Bagus\n2. B = Bagus\n3. C = Cukup\n4. D = Buruk\n5. E = Sangat Buruk\n\nOke... kurang lebih seperti itu, nilai urut dari A sampai E dengan predikat dari terbaik ke terburuk.\n\nSekarang, sebagai programmer kita punya misi untuk membuat program yang dapat mengeluarkan sebuah predikat dari sebuah nilai. Kira kira bagaimana ya?\n\nMungkin ada yang berpikir kita bisa menggunakan kondisi IF ELSE. Yapp betul sekali. Kurang lebih kode programnya akan terlihat sebagai berikut.\n\n```pascal\nprogram InputNilai;\nuses crt;\nvar\n  nilai: char;\nbegin\n  clrscr;\n  write('Masukkan Nilai: '); readln(nilai);\n  write('Predikat: ');\n  \n  \u002F\u002F output predikat berdasarkan nilai\n  if (nilai = 'A') then writeln('Sangat Bagus')\n  else if (nilai = 'B') then writeln('Bagus')\n  else if (nilai = 'C') then writeln('Cukup')\n  else if (nilai = 'D') then writeln('Buruk')\n  else if (nilai = 'E') then writeln('Sangat Buruk')\n  else writeln('Nilai tidak valid');\n  readln;\nend.\n```\n\nKalau kalian jalankan dan input nilai A maka kurang lebih outputnya akan seperti ini. Bisa kalian coba dengan nilai yang lainnya.\n\n```\nMasukkan Nilai: A\nPredikat: Sangat Bagus\n```\n\nOke sampai sini masalah kita telah terselesaikan, tapi untuk menuliskan perintah IF ELSE yang begitu banyak sepertinya kurang efektif. Disinilah CASE OF akan berguna.\n\nDengan menggunakan perintah CASE OF kita bisa **mempersingkat** perintah IF ELSE yang begitu banyak. Hanya dibutuhkan variable dan kondisi dari nilainya.\n\n## Format Penulisan CASE OF\n\nKomponen utama dari perintah CASE OF adalah sebuah **variable**, kondisi **nilai**, dan **perintah** yang akan dijalankan. Untuk formatnya sebagai berikut.\n\n```\ncase ({variable}) of\n  nilai-1: {perintah 1}\n  nilai-2: {perintah 2}\n  .\n  .\n  nilai-n: {perintah n}\n  else {perintah jika tidak ditemukan nilai}\nend;\n```\n\nNilai 1 sampai n merupakan nilai dari variable yang kita gunakan. Nantinya perintah akan dijalankan sesuai nilai dari variable tersebut. Oke daripada bingung langsung kita lihat saja contohnya.\n\n## Contoh Penggunaan CASE OF\n\nSekarang kita akan coba memodifikasi kode yang kita buat sebelumnya. Tetap dengan nilai dan predikat yang ada, namun kita coba menggunakan kondisi CASE OF. Kira kira bagaimana? Bisa kalian lihat pada kode berikut ini.\n\n```pascal\nprogram InputNilai;\nuses crt;\nvar\n  nilai: char;\nbegin\n  clrscr;\n  write('Masukkan Nilai: '); readln(nilai);\n  write('Predikat: ');\n  \u002F\u002F menggunakan kondisi case of\n  case (nilai) of\n    'A': writeln('Sangat Baik');\n    'B': writeln('Baik');\n    'C': writeln('Cukup');\n    'D': writeln('Buruk');\n    'E': writeln('Sangat Buruk');\n    else writeln('Nilai tidak valid');\n  end;\n  readln;\nend.\n```\n\nKalau kalian coba jalankan pasti outputnya akan sama seperti program yang kita buat sebelmunya. Tapi jelas dengan menggunakan CASE OF, penulisan kode bisa lebih mudah dibaca, dan pastinya lebih singkat dari menggunakan IF ELSE.\n\nWalaupun lebih singkat dan lebih simpel, tetapi **tidak semua** kodisi dapat dituliskan dengan CASE OF. Jika kita menginginkan kodisi yang menggunakan [expresi boolean](https:\u002F\u002Finvasikode.com\u002Foperasi-logika-pascal\u002F) maka tetap harus menggunakan perintah IF ELSE.\n\nYah saya kira kalian sudah dapat konsepnya hehe...\n\n## Penutup\n\nCukup sekian untuk tutorial kali ini semoga bermanfaat :D Pada tutorial selanjutnya kita akan coba untuk membuat [program sederhana](https:\u002F\u002Finvasikode.com\u002Fpiramida-bintang-pascal\u002F) dengan memanfaatkan perulangan dan kondisi yang telah kita pelajari sebelumnya.\n","\u003Cp>Setelah sebelumnya kita membahas percabangan dengan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fif-else-pascal\u002F\">IF ELSE\u003C\u002Fa>, sekarang kita akan coba membahas metode percabangan yang lain, yaitu dengan menggunakan CASE OF pada Pascal.\u003C\u002Fp>\n\u003Ch2 id=\"tentang-percabangan-case-of\">Tentang Percabangan CASE OF\u003C\u002Fh2>\n\u003Cp>CASE OF pada Pascal merupakan percabangan yang menggunakan variable dan nilainya untuk menentukan sebuah kondisi. Tidak seperti percabangan IF ELSE yang harus menggunakan kondisi berupa \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Foperasi-logika-pascal\u002F\">ekspresi boolean\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Kita bisa ambil contoh tentang metode penilaian dengan menggunakan huruf.\u003C\u002Fp>\n\u003Col>\n\u003Cli>A = Sangat Bagus\u003C\u002Fli>\n\u003Cli>B = Bagus\u003C\u002Fli>\n\u003Cli>C = Cukup\u003C\u002Fli>\n\u003Cli>D = Buruk\u003C\u002Fli>\n\u003Cli>E = Sangat Buruk\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>Oke... kurang lebih seperti itu, nilai urut dari A sampai E dengan predikat dari terbaik ke terburuk.\u003C\u002Fp>\n\u003Cp>Sekarang, sebagai programmer kita punya misi untuk membuat program yang dapat mengeluarkan sebuah predikat dari sebuah nilai. Kira kira bagaimana ya?\u003C\u002Fp>\n\u003Cp>Mungkin ada yang berpikir kita bisa menggunakan kondisi IF ELSE. Yapp betul sekali. Kurang lebih kode programnya akan terlihat sebagai 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=\"program%20InputNilai%3B%0Auses%20crt%3B%0Avar%0A%20%20nilai%3A%20char%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20write('Masukkan%20Nilai%3A%20')%3B%20readln(nilai)%3B%0A%20%20write('Predikat%3A%20')%3B%0A%20%20%0A%20%20%2F%2F%20output%20predikat%20berdasarkan%20nilai%0A%20%20if%20(nilai%20%3D%20'A')%20then%20writeln('Sangat%20Bagus')%0A%20%20else%20if%20(nilai%20%3D%20'B')%20then%20writeln('Bagus')%0A%20%20else%20if%20(nilai%20%3D%20'C')%20then%20writeln('Cukup')%0A%20%20else%20if%20(nilai%20%3D%20'D')%20then%20writeln('Buruk')%0A%20%20else%20if%20(nilai%20%3D%20'E')%20then%20writeln('Sangat%20Buruk')%0A%20%20else%20writeln('Nilai%20tidak%20valid')%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\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 InputNilai;\nuses crt;\nvar\n  nilai: char;\nbegin\n  clrscr;\n  write('Masukkan Nilai: '); readln(nilai);\n  write('Predikat: ');\n  \n  \u002F\u002F output predikat berdasarkan nilai\n  if (nilai = 'A') then writeln('Sangat Bagus')\n  else if (nilai = 'B') then writeln('Bagus')\n  else if (nilai = 'C') then writeln('Cukup')\n  else if (nilai = 'D') then writeln('Buruk')\n  else if (nilai = 'E') then writeln('Sangat Buruk')\n  else writeln('Nilai tidak valid');\n  readln;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Kalau kalian jalankan dan input nilai A maka kurang lebih outputnya akan seperti ini. Bisa kalian coba dengan nilai yang lainnya.\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=\"Masukkan%20Nilai%3A%20A%0APredikat%3A%20Sangat%20Bagus\" 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>Masukkan Nilai: A\nPredikat: Sangat Bagus\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Oke sampai sini masalah kita telah terselesaikan, tapi untuk menuliskan perintah IF ELSE yang begitu banyak sepertinya kurang efektif. Disinilah CASE OF akan berguna.\u003C\u002Fp>\n\u003Cp>Dengan menggunakan perintah CASE OF kita bisa \u003Cstrong>mempersingkat\u003C\u002Fstrong> perintah IF ELSE yang begitu banyak. Hanya dibutuhkan variable dan kondisi dari nilainya.\u003C\u002Fp>\n\u003Ch2 id=\"format-penulisan-case-of\">Format Penulisan CASE OF\u003C\u002Fh2>\n\u003Cp>Komponen utama dari perintah CASE OF adalah sebuah \u003Cstrong>variable\u003C\u002Fstrong>, kondisi \u003Cstrong>nilai\u003C\u002Fstrong>, dan \u003Cstrong>perintah\u003C\u002Fstrong> yang akan dijalankan. Untuk formatnya sebagai 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\">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=\"case%20(%7Bvariable%7D)%20of%0A%20%20nilai-1%3A%20%7Bperintah%201%7D%0A%20%20nilai-2%3A%20%7Bperintah%202%7D%0A%20%20.%0A%20%20.%0A%20%20nilai-n%3A%20%7Bperintah%20n%7D%0A%20%20else%20%7Bperintah%20jika%20tidak%20ditemukan%20nilai%7D%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>case ({variable}) of\n  nilai-1: {perintah 1}\n  nilai-2: {perintah 2}\n  .\n  .\n  nilai-n: {perintah n}\n  else {perintah jika tidak ditemukan nilai}\nend;\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nilai 1 sampai n merupakan nilai dari variable yang kita gunakan. Nantinya perintah akan dijalankan sesuai nilai dari variable tersebut. Oke daripada bingung langsung kita lihat saja contohnya.\u003C\u002Fp>\n\u003Ch2 id=\"contoh-penggunaan-case-of\">Contoh Penggunaan CASE OF\u003C\u002Fh2>\n\u003Cp>Sekarang kita akan coba memodifikasi kode yang kita buat sebelumnya. Tetap dengan nilai dan predikat yang ada, namun kita coba menggunakan kondisi CASE OF. Kira kira bagaimana? Bisa kalian lihat pada kode berikut 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\">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%20InputNilai%3B%0Auses%20crt%3B%0Avar%0A%20%20nilai%3A%20char%3B%0Abegin%0A%20%20clrscr%3B%0A%20%20write('Masukkan%20Nilai%3A%20')%3B%20readln(nilai)%3B%0A%20%20write('Predikat%3A%20')%3B%0A%20%20%2F%2F%20menggunakan%20kondisi%20case%20of%0A%20%20case%20(nilai)%20of%0A%20%20%20%20'A'%3A%20writeln('Sangat%20Baik')%3B%0A%20%20%20%20'B'%3A%20writeln('Baik')%3B%0A%20%20%20%20'C'%3A%20writeln('Cukup')%3B%0A%20%20%20%20'D'%3A%20writeln('Buruk')%3B%0A%20%20%20%20'E'%3A%20writeln('Sangat%20Buruk')%3B%0A%20%20%20%20else%20writeln('Nilai%20tidak%20valid')%3B%0A%20%20end%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\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 InputNilai;\nuses crt;\nvar\n  nilai: char;\nbegin\n  clrscr;\n  write('Masukkan Nilai: '); readln(nilai);\n  write('Predikat: ');\n  \u002F\u002F menggunakan kondisi case of\n  case (nilai) of\n    'A': writeln('Sangat Baik');\n    'B': writeln('Baik');\n    'C': writeln('Cukup');\n    'D': writeln('Buruk');\n    'E': writeln('Sangat Buruk');\n    else writeln('Nilai tidak valid');\n  end;\n  readln;\nend.\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Kalau kalian coba jalankan pasti outputnya akan sama seperti program yang kita buat sebelmunya. Tapi jelas dengan menggunakan CASE OF, penulisan kode bisa lebih mudah dibaca, dan pastinya lebih singkat dari menggunakan IF ELSE.\u003C\u002Fp>\n\u003Cp>Walaupun lebih singkat dan lebih simpel, tetapi \u003Cstrong>tidak semua\u003C\u002Fstrong> kodisi dapat dituliskan dengan CASE OF. Jika kita menginginkan kodisi yang menggunakan \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Foperasi-logika-pascal\u002F\">expresi boolean\u003C\u002Fa> maka tetap harus menggunakan perintah IF ELSE.\u003C\u002Fp>\n\u003Cp>Yah saya kira kalian sudah dapat konsepnya hehe...\u003C\u002Fp>\n\u003Ch2 id=\"penutup\">Penutup\u003C\u002Fh2>\n\u003Cp>Cukup sekian untuk tutorial kali ini semoga bermanfaat :D Pada tutorial selanjutnya kita akan coba untuk membuat \u003Ca href=\"https:\u002F\u002Finvasikode.com\u002Fpiramida-bintang-pascal\u002F\">program sederhana\u003C\u002Fa> dengan memanfaatkan perulangan dan kondisi yang telah kita pelajari sebelumnya.\u003C\u002Fp>\n","",[211,230,243,256,269,290],{"id":212,"title":213,"title_en":21,"slug":214,"excerpt":215,"excerpt_en":21,"has_translation":15,"published_at":216,"reading_time":217,"hidden_from_listing":15,"tags":218,"thumbnail_image":21,"og_image":221,"series":222,"authors":227},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,[219,220],"python","string","\u002Fog\u002Fpython-strings.png",{"id":223,"title":224,"title_en":225,"slug":226},30,"Koleksi dan String","Collections and Strings","python-collections",[228],{"authors_id":229},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":231,"title":232,"title_en":21,"slug":233,"excerpt":234,"excerpt_en":21,"has_translation":15,"published_at":235,"reading_time":217,"hidden_from_listing":15,"tags":236,"thumbnail_image":21,"og_image":238,"series":239,"authors":240},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",[219,237],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":223,"title":224,"title_en":225,"slug":226},[241],{"authors_id":242},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":244,"title":245,"title_en":21,"slug":246,"excerpt":247,"excerpt_en":21,"has_translation":15,"published_at":248,"reading_time":217,"hidden_from_listing":15,"tags":249,"thumbnail_image":21,"og_image":251,"series":252,"authors":253},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",[219,250],"set","\u002Fog\u002Fpython-sets.png",{"id":223,"title":224,"title_en":225,"slug":226},[254],{"authors_id":255},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":257,"title":258,"title_en":21,"slug":259,"excerpt":260,"excerpt_en":21,"has_translation":15,"published_at":261,"reading_time":217,"hidden_from_listing":15,"tags":262,"thumbnail_image":21,"og_image":264,"series":265,"authors":266},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",[219,263],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":223,"title":224,"title_en":225,"slug":226},[267],{"authors_id":268},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":270,"title":271,"title_en":272,"slug":273,"excerpt":274,"excerpt_en":275,"has_translation":12,"published_at":276,"reading_time":14,"hidden_from_listing":15,"tags":277,"thumbnail_image":21,"og_image":284,"series":285,"authors":287},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",[278,279,280,281,282,283],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":286,"title":35,"title_en":36,"slug":37},8,[288],{"authors_id":289},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":291,"title":292,"title_en":293,"slug":294,"excerpt":295,"excerpt_en":296,"has_translation":12,"published_at":297,"reading_time":217,"hidden_from_listing":15,"tags":298,"thumbnail_image":21,"og_image":305,"series":306,"authors":307},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",[299,300,301,302,303,304],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":286,"title":35,"title_en":36,"slug":37},[308],{"authors_id":309},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},[311,314,317,320],{"text":312,"depth":168,"id":313},"Tentang Percabangan CASE OF","tentang-percabangan-case-of",{"text":315,"depth":168,"id":316},"Format Penulisan CASE OF","format-penulisan-case-of",{"text":318,"depth":168,"id":319},"Contoh Penggunaan CASE OF","contoh-penggunaan-case-of",{"text":321,"depth":168,"id":322},"Penutup","penutup",1793295834957]