[{"data":1,"prerenderedAt":175},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-struktur-kontrol-kondisi-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":104,"renderedTakeaway":105,"latestArticles":106,"toc":158},{"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":58},"8","Struktur Kontrol Kondisi (If-Else dan Switch-Case), Apa Bedanya?","struktur-kontrol-kondisi","Sering bingung kapan harus pakai if-else dan kapan switch-case? Kenapa switch-case kadang bisa lebih ngebut? Yuk, bongkar rahasianya di sini!","2026-06-14T17:23:03.446Z",{"id":49},"44de9a02-3223-4969-88df-907973544b04",[51,52,53],"basic","intro","conditions",null,"- Struktur kontrol kondisi bikin program bisa bercabang dan ngambil keputusan secara dinamis.\n- if-else cocok buat logika perbandingan yang kompleks dan ngecek rentang nilai.\n- switch-case lebih rapi dan spesifik buat nyocokin satu variabel dengan nilai-nilai konstan.\n- Di beberapa bahasa, switch-case dieksekusi lebih cepat berkat optimasi jump table.","Pernah nggak kalian bikin program yang harus milih jalan? Ibaratnya lagi di persimpangan jalan, kalau belok kiri ke minimarket, kalau kanan ke pom bensin.\n\nNah, di dunia *programming*, konsep pengambilan keputusan kayak gini dinamakan struktur kontrol kondisi! 🚦\n\nStruktur ini tuh bener-bener krusial buat nentuin arah eksekusi program kalian. Di artikel ini, kita bakal bahas dua bintang utamanya: `if-else` dan `switch-case`. Yuk, kita bedah bareng-bareng!\n\n## Apa Itu Struktur Kontrol Kondisi?\nGampangnya, ini tuh mekanisme yang bikin alur eksekusi program kalian bisa berubah arah atau bercabang. Program bakal mengevaluasi sebuah kondisi, apakah dia bernilai benar (*true*) atau salah (*false*).\n\nDari hasil evaluasi tersebut, program bakal mutusin blok kode mana yang harus dijalankan selanjutnya. Tanpa mekanisme ini, program kalian cuma bisa jalan lurus doang tanpa bisa mengambil keputusan yang dinamis.\n\n## Kenalan Sama `if-else`\nStruktur `if-else` ini ibarat pisau lipat *Swiss Army*, serba bisa! Dia bekerja dengan cara mengevaluasi kondisi *boolean*.\n\nKarakteristik utamanya tuh fleksibel banget. Kalian bisa bebas pakai berbagai operator logika kayak `&&` atau `||`, sampai operator relasional kayak `>`, `\u003C`, `==`, atau `!=`.\n\nMakanya, `if-else` paling pas kalau kalian butuh ngecek rentang nilai atau kondisi bersyarat yang lumayan ribet.\n\nContoh sintaksnya gampang banget dipahami:\n```javascript\nif (nilai >= 90) {\n    console.log(\"Grade A\");\n} else if (nilai >= 80) {\n    console.log(\"Grade B\");\n} else {\n    console.log(\"Grade C atau kurang\");\n}\n```\n\n## Terus, Apa Itu `switch-case`?\nKalau `if-else` itu serba bisa, `switch-case` ini lebih spesialis. Dia dirancang khusus buat membandingkan satu variabel terhadap sekumpulan nilai konstan yang spesifik.\n\nTipe datanya lebih terbatas. Biasanya cuma bisa menerima *integer*, karakter, atau *enum*. Tapi kelebihannya, dia bakal jauh lebih rapi buat ngatur banyak pilihan yang sejajar.\n\nSatu hal yang penting banget diingat: jangan lupa menyelipkan pernyataan `break`! Kalau nggak, program kalian bakal bablas mengeksekusi *case* di bawahnya, yang sering disebut kejadian *fall-through*.\n\nBentuk kodenya lebih terstruktur kayak gini:\n```javascript\nswitch (hari) {\n    case 1:\n        console.log(\"Senin\");\n        break;\n    case 2:\n        console.log(\"Selasa\");\n        break;\n    default:\n        console.log(\"Hari lainnya\");\n}\n```\n\n## `if-else` vs `switch-case`: Pilih Mana?\nPertanyaannya, kapan waktu yang pas buat pakai yang mana?\n\nPakai `if-else` kalau kalian butuh ngecek rentang nilai, misalnya skor ujian `nilai >= 75`. Ini juga andalan buat kondisi logika perbandingan yang lebih kompleks.\n\nTapi, kalau kalian cuma perlu nyocokin sebuah variabel tunggal dengan banyak opsi nilai pasti, mending pakai `switch-case`. Contohnya buat milih menu, kode hari, atau mendeteksi *HTTP status code*. Kodenya bakal jauh lebih bersih dan nggak membingungkan!\n\n## Gimana Soal Kecepatan dan Keterbacaan?\nNah, perdebatan soal ini juga seru. Dari segi kecepatan, `switch-case` seringkali bisa lebih ngebut!\n\nBeberapa bahasa pemrograman pakai optimasi yang namanya *jump table* buat `switch-case`. Jadi, program bisa langsung loncat ke kondisi yang benar sekaligus, tanpa harus mengevaluasi kodenya satu-satu.\n\nBeda halnya sama `if-else` yang bakal mengecek kondisinya berurutan dari atas ke bawah secara sekuensial. Kalau jumlah kondisinya ada banyak banget, bakal lumayan makan waktu tuh.\n\nSelain itu, `switch-case` jelas lebih menang di urusan keterbacaan. Struktur `if-else` yang terlalu panjang dan bersarang (*nested*) cuma bakal bikin pusing yang bacanya.\n\nKalian sendiri lebih sering pakai yang mana nih buat mengeksekusi *decision making* di kode kalian? Kasih tahu alasannya di kolom komentar ya!\n\nSelamat berkoding ria! 👋\n",[],{"id":59,"title":15,"slug":16,"articles":60,"parent_series":98},"12",[61,70,76,86,89],{"id":62,"title":63,"slug":64,"excerpt":65,"thumbnail_image":66,"tags":68},"9","Struktur Kontrol Perulangan (For, While, Do-While), Kapan Harus Dipakai?","struktur-kontrol-perulangan","Pernah ngerasa capek nulis baris kode yang sama berulang kali? Gimana caranya nyuruh komputer buat ngerjain itu secara otomatis?",{"id":67},"8dd5085f-35bb-46fe-8044-d50a77ede34e",[51,52,69],"looping",{"id":71,"title":15,"slug":16,"excerpt":72,"thumbnail_image":73,"tags":75},"6","Inti dari pemrograman adalah memberi instruksi alias menyuruh komputer untuk melakukan sesuatu yang kita inginkan.",{"id":74},"9c7f5c67-3b29-48f5-85fe-f8497bc3b4cc",[52,51],{"id":77,"title":78,"slug":79,"excerpt":80,"thumbnail_image":81,"tags":83},"7","Konsep Variabel dan Tipe Data pada Pemrograman","variable-dan-tipe-data","Variabel itu ibarat “tokoh utama” di sebuah program. Nggak peduli bahasa pemrograman apapun, pasti semua punya konsep variabel.",{"id":82},"0a59bd7f-b7b1-47c9-a0b8-b3351057a6c7",[51,52,84,85],"variable","types",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":87,"tags":88},{"id":49},[51,52,53],{"id":90,"title":91,"slug":92,"excerpt":93,"thumbnail_image":94,"tags":96},"10","Fungsi dan Prosedur dalam Pemrograman, Apa Bedanya?","fungsi-dan-prosedur","Pernah bingung kapan harus pakai fungsi dan kapan pakai prosedur pas lagi ngoding? Yuk, bongkar rahasia dan bedanya di sini biar kode kamu makin rapi!",{"id":95},"aca2cb4a-803b-4fdc-85e8-c8ea2beaf441",[51,52,97],"functions",{"id":62,"title":8,"slug":9,"parent_series":54,"children_series":99},[100,102,103],{"id":101,"title":12,"slug":13,"cover_image":54},"15",{"id":43,"title":18,"slug":19,"cover_image":54},{"id":59,"title":15,"slug":16,"cover_image":54},"\u003Cp>Pernah nggak kalian bikin program yang harus milih jalan? Ibaratnya lagi di persimpangan jalan, kalau belok kiri ke minimarket, kalau kanan ke pom bensin.\u003C/p>\n\u003Cp>Nah, di dunia \u003Cem>programming\u003C/em>, konsep pengambilan keputusan kayak gini dinamakan struktur kontrol kondisi! 🚦\u003C/p>\n\u003Cp>Struktur ini tuh bener-bener krusial buat nentuin arah eksekusi program kalian. Di artikel ini, kita bakal bahas dua bintang utamanya: \u003Ccode>if-else\u003C/code> dan \u003Ccode>switch-case\u003C/code>. Yuk, kita bedah bareng-bareng!\u003C/p>\n\u003Ch2 id=\"apa-itu-struktur-kontrol-kondisi\">Apa Itu Struktur Kontrol Kondisi?\u003C/h2>\n\u003Cp>Gampangnya, ini tuh mekanisme yang bikin alur eksekusi program kalian bisa berubah arah atau bercabang. Program bakal mengevaluasi sebuah kondisi, apakah dia bernilai benar (\u003Cem>true\u003C/em>) atau salah (\u003Cem>false\u003C/em>).\u003C/p>\n\u003Cp>Dari hasil evaluasi tersebut, program bakal mutusin blok kode mana yang harus dijalankan selanjutnya. Tanpa mekanisme ini, program kalian cuma bisa jalan lurus doang tanpa bisa mengambil keputusan yang dinamis.\u003C/p>\n\u003Ch2 id=\"kenalan-sama-if-else\">Kenalan Sama \u003Ccode>if-else\u003C/code>\u003C/h2>\n\u003Cp>Struktur \u003Ccode>if-else\u003C/code> ini ibarat pisau lipat \u003Cem>Swiss Army\u003C/em>, serba bisa! Dia bekerja dengan cara mengevaluasi kondisi \u003Cem>boolean\u003C/em>.\u003C/p>\n\u003Cp>Karakteristik utamanya tuh fleksibel banget. Kalian bisa bebas pakai berbagai operator logika kayak \u003Ccode>&amp;&amp;\u003C/code> atau \u003Ccode>||\u003C/code>, sampai operator relasional kayak \u003Ccode>&gt;\u003C/code>, \u003Ccode>&lt;\u003C/code>, \u003Ccode>==\u003C/code>, atau \u003Ccode>!=\u003C/code>.\u003C/p>\n\u003Cp>Makanya, \u003Ccode>if-else\u003C/code> paling pas kalau kalian butuh ngecek rentang nilai atau kondisi bersyarat yang lumayan ribet.\u003C/p>\n\u003Cp>Contoh sintaksnya gampang banget dipahami:\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\">JAVASCRIPT\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=\"if%20(nilai%20%3E%3D%2090)%20%7B%0A%20%20%20%20console.log(%22Grade%20A%22)%3B%0A%7D%20else%20if%20(nilai%20%3E%3D%2080)%20%7B%0A%20%20%20%20console.log(%22Grade%20B%22)%3B%0A%7D%20else%20%7B%0A%20%20%20%20console.log(%22Grade%20C%20atau%20kurang%22)%3B%0A%7D\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (nilai \u003C/span>\u003Cspan style=\"color:#F97583\">>=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 90\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Grade A\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">} \u003C/span>\u003Cspan style=\"color:#F97583\">else\u003C/span>\u003Cspan style=\"color:#F97583\"> if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (nilai \u003C/span>\u003Cspan style=\"color:#F97583\">>=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 80\u003C/span>\u003Cspan style=\"color:#E1E4E8\">) {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Grade B\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">} \u003C/span>\u003Cspan style=\"color:#F97583\">else\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">    console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Grade C atau kurang\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Ch2 id=\"terus-apa-itu-switch-case\">Terus, Apa Itu \u003Ccode>switch-case\u003C/code>?\u003C/h2>\n\u003Cp>Kalau \u003Ccode>if-else\u003C/code> itu serba bisa, \u003Ccode>switch-case\u003C/code> ini lebih spesialis. Dia dirancang khusus buat membandingkan satu variabel terhadap sekumpulan nilai konstan yang spesifik.\u003C/p>\n\u003Cp>Tipe datanya lebih terbatas. Biasanya cuma bisa menerima \u003Cem>integer\u003C/em>, karakter, atau \u003Cem>enum\u003C/em>. Tapi kelebihannya, dia bakal jauh lebih rapi buat ngatur banyak pilihan yang sejajar.\u003C/p>\n\u003Cp>Satu hal yang penting banget diingat: jangan lupa menyelipkan pernyataan \u003Ccode>break\u003C/code>! Kalau nggak, program kalian bakal bablas mengeksekusi \u003Cem>case\u003C/em> di bawahnya, yang sering disebut kejadian \u003Cem>fall-through\u003C/em>.\u003C/p>\n\u003Cp>Bentuk kodenya lebih terstruktur kayak gini:\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\">JAVASCRIPT\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=\"switch%20(hari)%20%7B%0A%20%20%20%20case%201%3A%0A%20%20%20%20%20%20%20%20console.log(%22Senin%22)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20case%202%3A%0A%20%20%20%20%20%20%20%20console.log(%22Selasa%22)%3B%0A%20%20%20%20%20%20%20%20break%3B%0A%20%20%20%20default%3A%0A%20%20%20%20%20%20%20%20console.log(%22Hari%20lainnya%22)%3B%0A%7D\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">switch\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (hari) {\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    case\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Senin\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">        break\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    case\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 2\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Selasa\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">        break\u003C/span>\u003Cspan style=\"color:#E1E4E8\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">    default\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">        console.\u003C/span>\u003Cspan style=\"color:#B392F0\">log\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hari lainnya\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">);\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">}\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Ch2 id=\"if-else-vs-switch-case-pilih-mana\">\u003Ccode>if-else\u003C/code> vs \u003Ccode>switch-case\u003C/code>: Pilih Mana?\u003C/h2>\n\u003Cp>Pertanyaannya, kapan waktu yang pas buat pakai yang mana?\u003C/p>\n\u003Cp>Pakai \u003Ccode>if-else\u003C/code> kalau kalian butuh ngecek rentang nilai, misalnya skor ujian \u003Ccode>nilai &gt;= 75\u003C/code>. Ini juga andalan buat kondisi logika perbandingan yang lebih kompleks.\u003C/p>\n\u003Cp>Tapi, kalau kalian cuma perlu nyocokin sebuah variabel tunggal dengan banyak opsi nilai pasti, mending pakai \u003Ccode>switch-case\u003C/code>. Contohnya buat milih menu, kode hari, atau mendeteksi \u003Cem>HTTP status code\u003C/em>. Kodenya bakal jauh lebih bersih dan nggak membingungkan!\u003C/p>\n\u003Ch2 id=\"gimana-soal-kecepatan-dan-keterbacaan\">Gimana Soal Kecepatan dan Keterbacaan?\u003C/h2>\n\u003Cp>Nah, perdebatan soal ini juga seru. Dari segi kecepatan, \u003Ccode>switch-case\u003C/code> seringkali bisa lebih ngebut!\u003C/p>\n\u003Cp>Beberapa bahasa pemrograman pakai optimasi yang namanya \u003Cem>jump table\u003C/em> buat \u003Ccode>switch-case\u003C/code>. Jadi, program bisa langsung loncat ke kondisi yang benar sekaligus, tanpa harus mengevaluasi kodenya satu-satu.\u003C/p>\n\u003Cp>Beda halnya sama \u003Ccode>if-else\u003C/code> yang bakal mengecek kondisinya berurutan dari atas ke bawah secara sekuensial. Kalau jumlah kondisinya ada banyak banget, bakal lumayan makan waktu tuh.\u003C/p>\n\u003Cp>Selain itu, \u003Ccode>switch-case\u003C/code> jelas lebih menang di urusan keterbacaan. Struktur \u003Ccode>if-else\u003C/code> yang terlalu panjang dan bersarang (\u003Cem>nested\u003C/em>) cuma bakal bikin pusing yang bacanya.\u003C/p>\n\u003Cp>Kalian sendiri lebih sering pakai yang mana nih buat mengeksekusi \u003Cem>decision making\u003C/em> di kode kalian? Kasih tahu alasannya di kolom komentar ya!\u003C/p>\n\u003Cp>Selamat berkoding ria! 👋\u003C/p>\n","\u003Cul>\n\u003Cli>Struktur kontrol kondisi bikin program bisa bercabang dan ngambil keputusan secara dinamis.\u003C/li>\n\u003Cli>if-else cocok buat logika perbandingan yang kompleks dan ngecek rentang nilai.\u003C/li>\n\u003Cli>switch-case lebih rapi dan spesifik buat nyocokin satu variabel dengan nilai-nilai konstan.\u003C/li>\n\u003Cli>Di beberapa bahasa, switch-case dieksekusi lebih cepat berkat optimasi jump table.\u003C/li>\n\u003C/ul>\n",[107,120,135,147],{"id":108,"title":109,"slug":110,"excerpt":111,"thumbnail_image":112,"tags":114},"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":113},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[115,116,117,118,119],"system-programming","rust","zig","c","memory-safety",{"id":121,"title":122,"slug":123,"excerpt":124,"thumbnail_image":125,"tags":127},"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":126},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[128,129,130,131,132,133,134],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":136,"title":137,"slug":138,"excerpt":139,"thumbnail_image":140,"tags":142},"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":141},"e3c617fd-1486-4b82-b937-94fbec846c77",[128,143,133,144,145,129,146],"microservices","database","message-broker","postgresql",{"id":148,"title":149,"slug":150,"excerpt":151,"thumbnail_image":152,"tags":154},"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":153},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[155,145,128,133,143,156,157],"rabbitmq","async","python",[159,163,166,169,172],{"text":160,"depth":161,"id":162},"Apa Itu Struktur Kontrol Kondisi?",2,"apa-itu-struktur-kontrol-kondisi",{"text":164,"depth":161,"id":165},"Kenalan Sama if-else","kenalan-sama-if-else",{"text":167,"depth":161,"id":168},"Terus, Apa Itu switch-case?","terus-apa-itu-switch-case",{"text":170,"depth":161,"id":171},"if-else vs switch-case: Pilih Mana?","if-else-vs-switch-case-pilih-mana",{"text":173,"depth":161,"id":174},"Gimana Soal Kecepatan dan Keterbacaan?","gimana-soal-kecepatan-dan-keterbacaan",1791045072017]