[{"data":1,"prerenderedAt":205},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-percobangan-dengan-ternary-operator-pada-python-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":138,"renderedTakeaway":139,"latestArticles":140,"toc":191},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":55,"takeway":56,"body":57,"authors":58,"series":64},"96","Percabangan dengan Ternary Operator pada Python","percobangan-dengan-ternary-operator-pada-python","Pada Python ternary operator untuk mempersingkat assignment yang melibatkan kondisi IF ELSE.","2021-11-21T04:07:50.000Z",{"id":49},"9bfe4ceb-53ed-43e0-99f6-af44c65ed13b",[51,52,53,54],"python","percabangan","operator","struktur-kontrol",3,null,"Kembali lagi membahas tentang [percabangan](https://invasikode.com/if-else-python/) pada Python. Kalau sebelumnya sudah kita bahas tentang `if`, `elif`, dan `else`, kali ini kita akan membahas tentang versi pendeknya yaitu **conditional ternary operator**. Nah kira-kira apa itu dan bagaimana cara menggunakannya? mari kita bahas lebih lanjut...\n\n## Tentang Ternary Operator\n\n**Ternary operator** merupakan operasi dalam bahasa pemrograman yang membutuhkan 3 operand. Tidak lebih dan tidak kurang. Nah selain ternary ini ada yang namanya **binary** operator (2 operand) dan **unary** operator (1 operand).\n\nSadar atau tidak, kita sudah sering bertemu dengan yang namanya binary operator. Yang paling familiar adalah operasi [aritmatika](https://invasikode.com/tipe-data-numerasi-python/), [perbandingan](https://invasikode.com/tipe-data-boolean-python/), dan [logika boolean](https://invasikode.com/tipe-data-boolean-python/). Nah bagaimana dengan ternary operator?\n\nPada Python sendiri terdapat beberapa **ternary operator**, salah satunya adalah **conditional ternary operator** yang fungsinya untuk mempersingkat [assignment](https://invasikode.com/penulisan-dan-penggunaan-variable-python/) yang melibatkan kondisi `if-else`.\n\n## Format Conditional Ternary Operator pada Python\n\nSebagai ternary operator, operasi ini tentunya membutuhkan 3 operand, yaitu **nilai utama**, **kondisi**, dan **nilai alternatif**. Untuk operator yang digunakan ada 2 yaitu keyword `if` dan `else`. Berikut ini format penulisannya:\n\n```\n\u003Cnilai-utama> if \u003Ckondisi> else \u003Cnilai-alternatif>\n```\n\n* `nilai-utama`: Nilai yang akan dikembalikan ketika kondisi terpenuhi (`True`)\n* `kondisi`: Kondisi boolean untuk mengambil keputusan pengembalian nilai\n* `nilai-alternatif`: NIlai yang akan dikembalikan ketika kondisi tidak terpenuhi (`False`)\n\n## Menggunakan Conditional Ternary Operator\n\nKita coba masuk ke contoh program. Program kali ini bertujuan untuk menampilkan predikat kelulusan berdasarkan nilai yang didapat.\n\nCoba perhatikan kode berikut ini:\n\n```python\nnilai = 90;\npredikat = \"\"\n\nif (nilai > 76):\n  predikat = \"lulus\"\nelse:\n  predikat = \"tidak lulus\"\n\nprint(predikat)\n```\n\nPada kode tersebut kita mendeklarasikan variable `nilai` dengan nilai 90, lalu ada variable `predikat` yang berupa string kosong. Nah selanjutnya kita mengisi nilai dari variable `predikat` sesuai dengan kondisi yang ada. Yaitu \"lulus\" jika nilai lebih dari 76, dan \"tidak lulus\" jika dibawahnya.\n\n> Deklarasi variable `predikat` di awal adalah opsional, namun lebih baik jika dilakukan untuk mencegah kemungkinan **undefined variable**\n\nOutputnya sudah bisa dipastikan lah ya...\n\nSekarang kita coba pakai kekuatan ternary conditional opearator untuk membuat kode tersebut lebih pendek lagi. Dengan logika yang sama, kodenya dapat diubah menjadi begini:\n\n```python\nnilai = 90\npredikat = \"lulus\" if nilai > 76 else \"tidak lulus\"\nprint(predikat)\n```\n\nNah loh, jadi cuma 3 baris kan. Sekarang coba jalankan kode tersebut, seharusnya sih tidak ada perbedaan dari sebelumnya.\n\n**Apa yang sebenarnya terjadi?**\n\nKalau deklarasi variabel `predikat` diubah ke bahasa manusia (baca: bahasa Indonesia) maka kurang lebih akan seperti ini.\n\n```\npredikat adalah \"lulus\" jika nilai lebih dari 76, jika tidak maka \"tidak lulus\"\n```\n\nBagaimana, mulai masuk akal kan? Dengan kekuatan kemanusiaan yang dimiliki Python, semua bisa dimengerti dengan mudah ehehe...\n\nPada dasarnya, ternary operator ini mengembalikan salah satu dari 2 kemungkinan nilai yang ada sesuai dengan kondisi. Nah nilai kembalian ini bisa langsung digunakan untuk melakukan operasi.\n\nNah dari sini bisa kita perpendek lagi nih kodenya\n\n```python\nnilai = 90\nprint(\"lulus\" if nilai > 76 else \"tidak lulus\")\n```\n\nNah loh, tinggal 2 baris aja kan. Kalau mau lihat hasilnya tinggal jalankan sendiri\n\n## Penutup\n\nCukup sekian untuk kesempatan kali ini, semoga bermanfaat\n\nPada kesempatan selanjutnya kita akan membahas satu lagi ternary operator pada Python yaitu [list comprehension pada Python 3](https://invasikode.com/list-comprehension-python/).\n\nSee ya...",[59],{"authors_id":60},{"name":61,"slug":62,"role":63,"profile_picture":56},"Daffa Izzuddin","izzudd","Writer",{"id":65,"title":66,"slug":67,"articles":68,"parent_series":116},"19","Struktur Kontrol","python-struktur-kontrol",[69,77,87,95,103,106],{"id":70,"title":71,"slug":72,"excerpt":73,"thumbnail_image":74,"tags":76},"92","Percabangan dengan IF, ELIF, ELSE pada Python","percabangan-dengan-if-elif-else-pada-python","Conditional statement bertugas untuk menjalankan perintah sesuai kondisi. Pada python, hal ini ditangani oleh if statement.",{"id":75},"1d91ec3b-2446-49fd-82e3-e3446468b70a",[51,52,54],{"id":78,"title":79,"slug":80,"excerpt":81,"thumbnail_image":82,"tags":84},"93","Perulangan dengan FOR Loop pada Python","perulangan-dengan-for-loop-pada-python","for loop merupakan perulangan yang sudah diketahui kapan mulainya dan kapan selesainya.",{"id":83},"930bed49-dd1d-4707-85be-e6b774b65505",[51,85,86,54],"perulangan","loop",{"id":88,"title":89,"slug":90,"excerpt":91,"thumbnail_image":92,"tags":94},"94","Perulangan dengan WHILE Loop pada Python","perulangan-dengan-while-loop-pada-python","Berbeda dengan perulangan for, dengan while kita akan menggunakan kondisi boolean sebagai pengendalinya.",{"id":93},"a3d2cf83-8fff-4592-a62f-0d91d9a7b054",[51,85,86,54],{"id":96,"title":97,"slug":98,"excerpt":99,"thumbnail_image":100,"tags":102},"95","Statement BREAK dan CONTINUE pada Python","statement-break-dan-continue-pada-python","Python memiliki statement break dan continue untuk mengatasi kasus-kasus khusus pada struktur kontrol.",{"id":101},"cd09cb1e-7ef2-49a0-bf0a-03ff8c377577",[51,85,86,54],{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":104,"tags":105},{"id":49},[51,52,53,54],{"id":107,"title":108,"slug":109,"excerpt":110,"thumbnail_image":111,"tags":113},"97","List Comprehension Pada Pyhton","list-comprehension-pada-pyhton","list comprehension merupakan ternary operator pada Python untuk mempersingkat proses inisialisasi variable list",{"id":112},"5e8d4c5d-5506-4852-997d-deaa9f979fb5",[51,114,115],"list","list-comprehension",{"id":117,"title":32,"slug":33,"parent_series":118,"children_series":120},"10",{"id":119,"title":22,"slug":23,"parent_series":56},"1",[121,125,129,133,134],{"id":122,"title":123,"slug":124,"cover_image":56},"16","Berkenalan dengan Bahasa Python","python-intro",{"id":126,"title":127,"slug":128,"cover_image":56},"17","Variabel, Tipe Data, dan Operasi","python-variabel-tipe-data",{"id":130,"title":131,"slug":132,"cover_image":56},"18","Menggunakan Script Python","python-pemrograman-dengan-script",{"id":65,"title":66,"slug":67,"cover_image":56},{"id":135,"title":136,"slug":137,"cover_image":56},"20","Pemrograman Fungsional dengan Python","python-pemrograman-fungsional","\u003Cp>Kembali lagi membahas tentang \u003Ca href=\"https://invasikode.com/if-else-python/\">percabangan\u003C/a> pada Python. Kalau sebelumnya sudah kita bahas tentang \u003Ccode>if\u003C/code>, \u003Ccode>elif\u003C/code>, dan \u003Ccode>else\u003C/code>, kali ini kita akan membahas tentang versi pendeknya yaitu \u003Cstrong>conditional ternary operator\u003C/strong>. Nah kira-kira apa itu dan bagaimana cara menggunakannya? mari kita bahas lebih lanjut...\u003C/p>\n\u003Ch2 id=\"tentang-ternary-operator\">Tentang Ternary Operator\u003C/h2>\n\u003Cp>\u003Cstrong>Ternary operator\u003C/strong> merupakan operasi dalam bahasa pemrograman yang membutuhkan 3 operand. Tidak lebih dan tidak kurang. Nah selain ternary ini ada yang namanya \u003Cstrong>binary\u003C/strong> operator (2 operand) dan \u003Cstrong>unary\u003C/strong> operator (1 operand).\u003C/p>\n\u003Cp>Sadar atau tidak, kita sudah sering bertemu dengan yang namanya binary operator. Yang paling familiar adalah operasi \u003Ca href=\"https://invasikode.com/tipe-data-numerasi-python/\">aritmatika\u003C/a>, \u003Ca href=\"https://invasikode.com/tipe-data-boolean-python/\">perbandingan\u003C/a>, dan \u003Ca href=\"https://invasikode.com/tipe-data-boolean-python/\">logika boolean\u003C/a>. Nah bagaimana dengan ternary operator?\u003C/p>\n\u003Cp>Pada Python sendiri terdapat beberapa \u003Cstrong>ternary operator\u003C/strong>, salah satunya adalah \u003Cstrong>conditional ternary operator\u003C/strong> yang fungsinya untuk mempersingkat \u003Ca href=\"https://invasikode.com/penulisan-dan-penggunaan-variable-python/\">assignment\u003C/a> yang melibatkan kondisi \u003Ccode>if-else\u003C/code>.\u003C/p>\n\u003Ch2 id=\"format-conditional-ternary-operator-pada-python\">Format Conditional Ternary Operator pada Python\u003C/h2>\n\u003Cp>Sebagai ternary operator, operasi ini tentunya membutuhkan 3 operand, yaitu \u003Cstrong>nilai utama\u003C/strong>, \u003Cstrong>kondisi\u003C/strong>, dan \u003Cstrong>nilai alternatif\u003C/strong>. Untuk operator yang digunakan ada 2 yaitu keyword \u003Ccode>if\u003C/code> dan \u003Ccode>else\u003C/code>. Berikut ini format penulisannya:\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=\"%3Cnilai-utama%3E%20if%20%3Ckondisi%3E%20else%20%3Cnilai-alternatif%3E\" 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>&lt;nilai-utama&gt; if &lt;kondisi&gt; else &lt;nilai-alternatif&gt;\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cul>\n\u003Cli>\u003Ccode>nilai-utama\u003C/code>: Nilai yang akan dikembalikan ketika kondisi terpenuhi (\u003Ccode>True\u003C/code>)\u003C/li>\n\u003Cli>\u003Ccode>kondisi\u003C/code>: Kondisi boolean untuk mengambil keputusan pengembalian nilai\u003C/li>\n\u003Cli>\u003Ccode>nilai-alternatif\u003C/code>: NIlai yang akan dikembalikan ketika kondisi tidak terpenuhi (\u003Ccode>False\u003C/code>)\u003C/li>\n\u003C/ul>\n\u003Ch2 id=\"menggunakan-conditional-ternary-operator\">Menggunakan Conditional Ternary Operator\u003C/h2>\n\u003Cp>Kita coba masuk ke contoh program. Program kali ini bertujuan untuk menampilkan predikat kelulusan berdasarkan nilai yang didapat.\u003C/p>\n\u003Cp>Coba perhatikan kode berikut 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\">PYTHON\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%20%3D%2090%3B%0Apredikat%20%3D%20%22%22%0A%0Aif%20(nilai%20%3E%2076)%3A%0A%20%20predikat%20%3D%20%22lulus%22%0Aelse%3A%0A%20%20predikat%20%3D%20%22tidak%20lulus%22%0A%0Aprint(predikat)\" 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:#E1E4E8\">nilai \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 90\u003C/span>\u003Cspan style=\"color:#FDAEB7;font-style:italic\">;\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">predikat \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\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\"> 76\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  predikat \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"lulus\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">else\u003C/span>\u003Cspan style=\"color:#E1E4E8\">:\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">  predikat \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"tidak lulus\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(predikat)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Pada kode tersebut kita mendeklarasikan variable \u003Ccode>nilai\u003C/code> dengan nilai 90, lalu ada variable \u003Ccode>predikat\u003C/code> yang berupa string kosong. Nah selanjutnya kita mengisi nilai dari variable \u003Ccode>predikat\u003C/code> sesuai dengan kondisi yang ada. Yaitu &quot;lulus&quot; jika nilai lebih dari 76, dan &quot;tidak lulus&quot; jika dibawahnya.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Deklarasi variable \u003Ccode>predikat\u003C/code> di awal adalah opsional, namun lebih baik jika dilakukan untuk mencegah kemungkinan \u003Cstrong>undefined variable\u003C/strong>\u003C/p>\n\u003C/blockquote>\n\u003Cp>Outputnya sudah bisa dipastikan lah ya...\u003C/p>\n\u003Cp>Sekarang kita coba pakai kekuatan ternary conditional opearator untuk membuat kode tersebut lebih pendek lagi. Dengan logika yang sama, kodenya dapat diubah menjadi begini:\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\">PYTHON\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%20%3D%2090%0Apredikat%20%3D%20%22lulus%22%20if%20nilai%20%3E%2076%20else%20%22tidak%20lulus%22%0Aprint(predikat)\" 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:#E1E4E8\">nilai \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 90\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">predikat \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"lulus\"\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\"> 76\u003C/span>\u003Cspan style=\"color:#F97583\"> else\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"tidak lulus\"\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(predikat)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Nah loh, jadi cuma 3 baris kan. Sekarang coba jalankan kode tersebut, seharusnya sih tidak ada perbedaan dari sebelumnya.\u003C/p>\n\u003Cp>\u003Cstrong>Apa yang sebenarnya terjadi?\u003C/strong>\u003C/p>\n\u003Cp>Kalau deklarasi variabel \u003Ccode>predikat\u003C/code> diubah ke bahasa manusia (baca: bahasa Indonesia) maka kurang lebih 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=\"predikat%20adalah%20%22lulus%22%20jika%20nilai%20lebih%20dari%2076%2C%20jika%20tidak%20maka%20%22tidak%20lulus%22\" 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>predikat adalah \"lulus\" jika nilai lebih dari 76, jika tidak maka \"tidak lulus\"\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Bagaimana, mulai masuk akal kan? Dengan kekuatan kemanusiaan yang dimiliki Python, semua bisa dimengerti dengan mudah ehehe...\u003C/p>\n\u003Cp>Pada dasarnya, ternary operator ini mengembalikan salah satu dari 2 kemungkinan nilai yang ada sesuai dengan kondisi. Nah nilai kembalian ini bisa langsung digunakan untuk melakukan operasi.\u003C/p>\n\u003Cp>Nah dari sini bisa kita perpendek lagi nih kodenya\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\">PYTHON\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%20%3D%2090%0Aprint(%22lulus%22%20if%20nilai%20%3E%2076%20else%20%22tidak%20lulus%22)\" 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:#E1E4E8\">nilai \u003C/span>\u003Cspan style=\"color:#F97583\">=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 90\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"lulus\"\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\"> 76\u003C/span>\u003Cspan style=\"color:#F97583\"> else\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \"tidak lulus\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Nah loh, tinggal 2 baris aja kan. Kalau mau lihat hasilnya tinggal jalankan sendiri\u003C/p>\n\u003Ch2 id=\"penutup\">Penutup\u003C/h2>\n\u003Cp>Cukup sekian untuk kesempatan kali ini, semoga bermanfaat\u003C/p>\n\u003Cp>Pada kesempatan selanjutnya kita akan membahas satu lagi ternary operator pada Python yaitu \u003Ca href=\"https://invasikode.com/list-comprehension-python/\">list comprehension pada Python 3\u003C/a>.\u003C/p>\n\u003Cp>See ya...\u003C/p>\n","",[141,154,169,181],{"id":142,"title":143,"slug":144,"excerpt":145,"thumbnail_image":146,"tags":148},"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":147},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[149,150,151,152,153],"system-programming","rust","zig","c","memory-safety",{"id":155,"title":156,"slug":157,"excerpt":158,"thumbnail_image":159,"tags":161},"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":160},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[162,163,164,165,166,167,168],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":170,"title":171,"slug":172,"excerpt":173,"thumbnail_image":174,"tags":176},"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":175},"e3c617fd-1486-4b82-b937-94fbec846c77",[162,177,167,178,179,163,180],"microservices","database","message-broker","postgresql",{"id":182,"title":183,"slug":184,"excerpt":185,"thumbnail_image":186,"tags":188},"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":187},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[189,179,162,167,177,190,51],"rabbitmq","async",[192,196,199,202],{"text":193,"depth":194,"id":195},"Tentang Ternary Operator",2,"tentang-ternary-operator",{"text":197,"depth":194,"id":198},"Format Conditional Ternary Operator pada Python","format-conditional-ternary-operator-pada-python",{"text":200,"depth":194,"id":201},"Menggunakan Conditional Ternary Operator","menggunakan-conditional-ternary-operator",{"text":203,"depth":194,"id":204},"Penutup","penutup",1791045069743]