[{"data":1,"prerenderedAt":309},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-default-argument-pada-python-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":187,"renderedTakeaway":188,"latestArticles":189,"toc":283},{"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":180,"body_locale":183,"available_locales":184,"body":186,"takeway":21,"prerequisite":21},101,"Default Argument dan Keyword Argument pada Python","Default Argument and Keyword Argument in Python","default-argument-pada-python","Default argument merupakan argument fungsi yang memiliki nilai asal, dengan ini kita bisa membuat argument opsional","A default argument is a function argument with an initial value, which lets you make arguments optional.","2024-02-12T14:01:05.000Z",3,[83,84,85],"python","fungsi","syntax","\u002Fog\u002Fdefault-argument-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91,"description":92,"description_en":93,"articles":94,"children_series":149,"parent_series":150},20,"Pemrograman Fungsional dengan Python","Functional Programming with Python","python-pemrograman-fungsional","Bungkus kode jadi fungsi biar nggak nulis hal yang sama dua kali. Bahas parameter, return, sampai default argument.","Wrap your code in functions so you stop writing the same thing twice. Parameters, return values, and default arguments.",[95,114,129,144],{"id":96,"title":97,"title_en":98,"slug":99,"excerpt":100,"excerpt_en":101,"has_translation":12,"published_at":102,"reading_time":14,"hidden_from_listing":15,"tags":103,"thumbnail_image":21,"og_image":105,"series":106,"authors":107},98,"Fungsi dan Sub Program pada Python","Functions and Sub Programs in Python","fungsi-dan-sub-program-pada-python","Fungsi atau dalam istilah pemrograman disebut dengan “function” merupakan blok kode yang digunakan untuk menyelesaikan masalah spesifik.","A function is a block of code used to solve a specific problem, and functions are the key to building large programs in Python.","2022-09-06T03:33:06.000Z",[83,84,104],"sub-program","\u002Fog\u002Ffungsi-dan-sub-program-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[108],{"authors_id":109},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"id":115,"title":116,"title_en":117,"slug":118,"excerpt":119,"excerpt_en":120,"has_translation":12,"published_at":121,"reading_time":122,"hidden_from_listing":15,"tags":123,"thumbnail_image":21,"og_image":124,"series":125,"authors":126},99,"Return Statement pada Python","The Return Statement in Python","return-statement-pada-python","Return statement memungkinkan kita mengembalikan nilai yang sudah diproses pada fungsi ke pemanggil.","The return statement lets you send a value a function has already processed back to the caller.","2022-01-03T03:40:03.000Z",6,[83,84,85],"\u002Fog\u002Freturn-statement-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[127],{"authors_id":128},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},{"id":130,"title":131,"title_en":132,"slug":133,"excerpt":134,"excerpt_en":135,"has_translation":12,"published_at":136,"reading_time":81,"hidden_from_listing":15,"tags":137,"thumbnail_image":21,"og_image":139,"series":140,"authors":141},100,"Pass Statement pada Python","The Pass Statement in Python","pass-statement-pada-python","pass statement pada python merupakan statement spesial yang hanya bisa digunakan di dalam compound statement","The pass statement in Python is a special statement you can only use inside a compound statement.","2022-01-17T03:51:58.000Z",[83,85,138],"struktur-kontrol","\u002Fog\u002Fpass-statement-pada-python.png",{"id":88,"title":89,"title_en":90,"slug":91},[142],{"authors_id":143},{"id":110,"name":111,"slug":112,"role":113,"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":145,"authors":146},{"id":88,"title":89,"title_en":90,"slug":91},[147],{"authors_id":148},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},[],{"id":151,"title":52,"title_en":53,"slug":54,"parent_series":152,"children_series":153},10,{"id":110,"title":48,"title_en":48,"slug":49},[154,159,164,169,174,175],{"id":155,"title":156,"title_en":157,"slug":158,"cover_image":21},16,"Berkenalan dengan Bahasa Python","Getting Started with Python","python-intro",{"id":160,"title":161,"title_en":162,"slug":163,"cover_image":21},17,"Variabel, Tipe Data, dan Operasi","Variables, Types, and Operations","python-variabel-tipe-data",{"id":165,"title":166,"title_en":167,"slug":168,"cover_image":21},18,"Menggunakan Script Python","Working with Python Scripts","python-pemrograman-dengan-script",{"id":170,"title":171,"title_en":172,"slug":173,"cover_image":21},19,"Struktur Kontrol","Control Structures","python-struktur-kontrol",{"id":88,"title":89,"title_en":90,"slug":91,"cover_image":21},{"id":176,"title":177,"title_en":178,"slug":179,"cover_image":21},30,"Koleksi dan String","Collections and Strings","python-collections",[181],{"authors_id":182},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},"id",[185,183],"en","Selama ini kita tahu bahwa ketika fungsi dipanggil maka seluruh argumen yang diperlukan harus diberikan. Tapi apa jadinya jika kita mendefinisikan nilai parameter tersebut ketika fungsi dibuat? Memangnya bisa?\n\nTentu bisa. Dalam python pemberian hal ini disebut default argument.\n\n## Default Argument\n\nPython memungkinakn pemberian nilai default ketika membuat argumen sebuah fungsi. Ketika fungsi dipanggil tanpa diberi argumen nantinya nilai inilah yang akan menggantikan nilainya.\n\nPembuatan default argument dilakukan seperti melakukan assignment pada umumnya, hanya saja letaknya ada pada deklarasi fungsi.\n\nBerikut ini adalah contoh fungsi dengan default argument:\n\n```python\ndef cetak_salam(salam='Halo', nama='Inva'):\n  print(salam, nama)\n```\n\nKarena sudah punya default argument fungsi tersebut bisa dipanggil tanpa diberi argumen sama sekali. Seperti ini:\n\n```python\ncetak_salam() # output: \"Halo Inva\"\ncetak_salam('Selamat siang', 'Budi') # output: \"Selamat siang Budi\"\n```\n\nNah sekarang bagaimana jika kita ingin mengganti argument `nama` tanpa mengganti argument `salam`? Tentu bisa, untuk melakukan ini kita perlu memberikan **keyword argument**.\n\n## Keyword Argument\n\nKeyword argument adalah cara untuk memberi nilai pada argument suatu fungsi dengan sekaligus menentukan nama argumennya.\n\nPenampakannya seperti ini:\n\n```python\ncetak_salam(nama='Budi') # output: \"Halo Budi\"\ncetak_salam(salam='Selamat datang') # output: \"Selamat datang Inva\"\n```\n\nDengan keyword argument ini kita dapat mengubah argumen sesuai kebutuhan kita saja. Argumen yang tidak diberikan nilai akan secara otomatis berisi nilai default yang sudah diberikan.\n\nPemberian keyword argument tidak harus sesuai dengan urutan argumennya. Kita bisa mengisikan nilai argumen dengan urutan apapun, selama nama argumen yang diberikan ada pada deklarasi fungsi.\n\n```python\n# Argumen tidak harus urut\ncetak_salam(nama='Budi', salam='Selamat siang') # output: \"Selamat siang Budi\"\n\n# Memberi argumen yang tidak ada pada deklarasi\ncetak_salam(nama='Budi', salam='Selamat siang', hari='senin') # output: error\n```\n\n## Aturan Deklarasi dan Pengisian Argument\n\nTerdapat beberapa peraturan yang harus ditepati dalam membuat argumen fungsi pada python, diantaranya:\n\n### Default argument harus diletakkan setelah non-default argument\n\nSalah ❌\n\n```python\ndef nama_fungsi(arg1, arg2=128, arg3=64, arg4)\n  ...\n```\n\nBenar ✅\n\n```python\ndef nama_fungsi(arg1, arg4, arg2=128, arg3=64)\n  ...\n```\n\n### Keyword argument diberikan setelah semua positional argument diberi nilai\n\nSalah ❌\n\n```python\ndef nama_fungsi(arg1, arg2, arg3=64, arg4=128)\n  ...\n\nnama_fungsi(arg3=70, arg4=56, 30, 64)\nnama_fungsi(30, arg3=64, arg4=56)\n```\n\nBenar ✅\n\n```python\ndef nama_fungsi(arg1, arg2, arg3=64, arg4=128)\n  ...\n\nnama_fungsi(30, 64, arg3=70, arg4=56)\nnama_fungsi(30, 64, arg4=40, arg3=102)\nnama_fungsi(30, arg4=64, arg2=102)\n```\n\n### Satu argumen hanya bisa diisi satu kali\n\nSalah ❌\n\n```python\ndef nama_fungsi(arg1, arg2, arg3=64, arg4=128)\n  ...\n\nnama_fungsi(22, 34, arg1=70) # arg1 diisi 2 kali\nnama_fungsi(22, 34, arg3=70, arg3=12) # arg3 diisi 2 kali\n```\n\n## Kapan Harus Menggunakan Default Argument?\n\nPenggunaan default argument bisa jadi salah satu cara untuk mempercepat kita dalam menulis dan memahami kode. Dengan adanya default argument kita dapat **meminimalisir pengisian argument** dengan nilai yang sama secara berulang-ulang.\n\nDengan begitu kode kita akan lebih ringkas dan mudah dibaca.\n\nAda juga kasus ketika suatu argumen sebenarnya **tidak terlalu penting**, namun kita masih ingin membuatnya menjadi fleksibel, nah default argument ini akan sangat membantu.\n\nBahkan kebanyakan library python juga menggunakan default argument ini untuk memudahkan para programmer. Sebagai contoh, kita coba comot salah satu fungsi di library [numpy](https:\u002F\u002Fnumpy.org).\n\nIni signature fungsi untuk membuat array numpy:\n\n```python\nnumpy.array(object, dtype=None, *, copy=True, order='K', subok=False, ndmin=0, like=None)\n```\n\nKalu kita lihat di situ, hanya ada 1 argument saja yang menjadi positional argument (argument pertama) dan sisanya default argument semua.\n\nHal ini mungkin karena sang empunya numpy tahu kalau kita akan jarang menggunakan argument lainnya. Yah, jarang kan bukan berarti tidak pernah, maka sebagai opsi tetap harus diberikan.\n\n## Selanjutnya…\n\nCukup sekian untuk kesempatan kali ini, selanjutnya kita akan membahas tentang variable length argument pada python 3.\n\nSelamat ber-koding ria 👋\n","\u003Cp>Selama ini kita tahu bahwa ketika fungsi dipanggil maka seluruh argumen yang diperlukan harus diberikan. Tapi apa jadinya jika kita mendefinisikan nilai parameter tersebut ketika fungsi dibuat? Memangnya bisa?\u003C\u002Fp>\n\u003Cp>Tentu bisa. Dalam python pemberian hal ini disebut default argument.\u003C\u002Fp>\n\u003Ch2 id=\"default-argument\">Default Argument\u003C\u002Fh2>\n\u003Cp>Python memungkinakn pemberian nilai default ketika membuat argumen sebuah fungsi. Ketika fungsi dipanggil tanpa diberi argumen nantinya nilai inilah yang akan menggantikan nilainya.\u003C\u002Fp>\n\u003Cp>Pembuatan default argument dilakukan seperti melakukan assignment pada umumnya, hanya saja letaknya ada pada deklarasi fungsi.\u003C\u002Fp>\n\u003Cp>Berikut ini adalah contoh fungsi dengan default argument:\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\">PYTHON\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=\"def%20cetak_salam(salam%3D'Halo'%2C%20nama%3D'Inva')%3A%0A%20%20print(salam%2C%20nama)\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> cetak_salam\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(salam\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Halo'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, nama\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Inva'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">):\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(salam, nama)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Karena sudah punya default argument fungsi tersebut bisa dipanggil tanpa diberi argumen sama sekali. Seperti 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\">PYTHON\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=\"cetak_salam()%20%23%20output%3A%20%22Halo%20Inva%22%0Acetak_salam('Selamat%20siang'%2C%20'Budi')%20%23%20output%3A%20%22Selamat%20siang%20Budi%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\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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak_salam() \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># output: \"Halo Inva\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak_salam(\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Selamat siang'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Budi'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># output: \"Selamat siang Budi\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nah sekarang bagaimana jika kita ingin mengganti argument \u003Ccode>nama\u003C\u002Fcode> tanpa mengganti argument \u003Ccode>salam\u003C\u002Fcode>? Tentu bisa, untuk melakukan ini kita perlu memberikan \u003Cstrong>keyword argument\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Ch2 id=\"keyword-argument\">Keyword Argument\u003C\u002Fh2>\n\u003Cp>Keyword argument adalah cara untuk memberi nilai pada argument suatu fungsi dengan sekaligus menentukan nama argumennya.\u003C\u002Fp>\n\u003Cp>Penampakannya seperti 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\">PYTHON\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=\"cetak_salam(nama%3D'Budi')%20%23%20output%3A%20%22Halo%20Budi%22%0Acetak_salam(salam%3D'Selamat%20datang')%20%23%20output%3A%20%22Selamat%20datang%20Inva%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\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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak_salam(\u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">nama\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Budi'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># output: \"Halo Budi\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak_salam(\u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">salam\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Selamat datang'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># output: \"Selamat datang Inva\"\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Dengan keyword argument ini kita dapat mengubah argumen sesuai kebutuhan kita saja. Argumen yang tidak diberikan nilai akan secara otomatis berisi nilai default yang sudah diberikan.\u003C\u002Fp>\n\u003Cp>Pemberian keyword argument tidak harus sesuai dengan urutan argumennya. Kita bisa mengisikan nilai argumen dengan urutan apapun, selama nama argumen yang diberikan ada pada deklarasi fungsi.\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\">PYTHON\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=\"%23%20Argumen%20tidak%20harus%20urut%0Acetak_salam(nama%3D'Budi'%2C%20salam%3D'Selamat%20siang')%20%23%20output%3A%20%22Selamat%20siang%20Budi%22%0A%0A%23%20Memberi%20argumen%20yang%20tidak%20ada%20pada%20deklarasi%0Acetak_salam(nama%3D'Budi'%2C%20salam%3D'Selamat%20siang'%2C%20hari%3D'senin')%20%23%20output%3A%20error\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Argumen tidak harus urut\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak_salam(\u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">nama\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Budi'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">salam\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Selamat siang'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># output: \"Selamat siang Budi\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#6A737D\"># Memberi argumen yang tidak ada pada deklarasi\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">cetak_salam(\u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">nama\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Budi'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">salam\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'Selamat siang'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">hari\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'senin'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># output: error\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch2 id=\"aturan-deklarasi-dan-pengisian-argument\">Aturan Deklarasi dan Pengisian Argument\u003C\u002Fh2>\n\u003Cp>Terdapat beberapa peraturan yang harus ditepati dalam membuat argumen fungsi pada python, diantaranya:\u003C\u002Fp>\n\u003Ch3 id=\"default-argument-harus-diletakkan-setelah-non-default-argument\">Default argument harus diletakkan setelah non-default argument\u003C\u002Fh3>\n\u003Cp>Salah ❌\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\">PYTHON\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=\"def%20nama_fungsi(arg1%2C%20arg2%3D128%2C%20arg3%3D64%2C%20arg4)%0A%20%20...\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> nama_fungsi\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(arg1, arg2\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">128\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, arg4)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  ...\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Benar ✅\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\">PYTHON\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=\"def%20nama_fungsi(arg1%2C%20arg4%2C%20arg2%3D128%2C%20arg3%3D64)%0A%20%20...\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> nama_fungsi\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(arg1, arg4, arg2\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">128\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  ...\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch3 id=\"keyword-argument-diberikan-setelah-semua-positional-argument-diberi-nilai\">Keyword argument diberikan setelah semua positional argument diberi nilai\u003C\u002Fh3>\n\u003Cp>Salah ❌\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\">PYTHON\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=\"def%20nama_fungsi(arg1%2C%20arg2%2C%20arg3%3D64%2C%20arg4%3D128)%0A%20%20...%0A%0Anama_fungsi(arg3%3D70%2C%20arg4%3D56%2C%2030%2C%2064)%0Anama_fungsi(30%2C%20arg3%3D64%2C%20arg4%3D56)\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> nama_fungsi\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(arg1, arg2, arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">128\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  ...\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">70\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">56\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">30\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">30\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">56\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Benar ✅\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\">PYTHON\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=\"def%20nama_fungsi(arg1%2C%20arg2%2C%20arg3%3D64%2C%20arg4%3D128)%0A%20%20...%0A%0Anama_fungsi(30%2C%2064%2C%20arg3%3D70%2C%20arg4%3D56)%0Anama_fungsi(30%2C%2064%2C%20arg4%3D40%2C%20arg3%3D102)%0Anama_fungsi(30%2C%20arg4%3D64%2C%20arg2%3D102)\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> nama_fungsi\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(arg1, arg2, arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">128\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  ...\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">30\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">70\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">56\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">30\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">40\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">102\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">30\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg2\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">102\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch3 id=\"satu-argumen-hanya-bisa-diisi-satu-kali\">Satu argumen hanya bisa diisi satu kali\u003C\u002Fh3>\n\u003Cp>Salah ❌\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\">PYTHON\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=\"def%20nama_fungsi(arg1%2C%20arg2%2C%20arg3%3D64%2C%20arg4%3D128)%0A%20%20...%0A%0Anama_fungsi(22%2C%2034%2C%20arg1%3D70)%20%23%20arg1%20diisi%202%20kali%0Anama_fungsi(22%2C%2034%2C%20arg3%3D70%2C%20arg3%3D12)%20%23%20arg3%20diisi%202%20kali\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">def\u003C\u002Fspan>\u003Cspan style=\"color:#B392F0\"> nama_fungsi\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(arg1, arg2, arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">64\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, arg4\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">128\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  ...\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">22\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">34\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg1\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">70\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># arg1 diisi 2 kali\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">nama_fungsi(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">22\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">34\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">70\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">arg3\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">12\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">) \u003C\u002Fspan>\u003Cspan style=\"color:#6A737D\"># arg3 diisi 2 kali\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch2 id=\"kapan-harus-menggunakan-default-argument\">Kapan Harus Menggunakan Default Argument?\u003C\u002Fh2>\n\u003Cp>Penggunaan default argument bisa jadi salah satu cara untuk mempercepat kita dalam menulis dan memahami kode. Dengan adanya default argument kita dapat \u003Cstrong>meminimalisir pengisian argument\u003C\u002Fstrong> dengan nilai yang sama secara berulang-ulang.\u003C\u002Fp>\n\u003Cp>Dengan begitu kode kita akan lebih ringkas dan mudah dibaca.\u003C\u002Fp>\n\u003Cp>Ada juga kasus ketika suatu argumen sebenarnya \u003Cstrong>tidak terlalu penting\u003C\u002Fstrong>, namun kita masih ingin membuatnya menjadi fleksibel, nah default argument ini akan sangat membantu.\u003C\u002Fp>\n\u003Cp>Bahkan kebanyakan library python juga menggunakan default argument ini untuk memudahkan para programmer. Sebagai contoh, kita coba comot salah satu fungsi di library \u003Ca href=\"https:\u002F\u002Fnumpy.org\">numpy\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Ini signature fungsi untuk membuat array numpy:\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\">PYTHON\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=\"numpy.array(object%2C%20dtype%3DNone%2C%20*%2C%20copy%3DTrue%2C%20order%3D'K'%2C%20subok%3DFalse%2C%20ndmin%3D0%2C%20like%3DNone)\" 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\" tabindex=\"0\">\u003Ccode>\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">numpy.array(\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">object\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">dtype\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">None\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">*\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">copy\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">True\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">order\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\">'K'\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">subok\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">False\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">ndmin\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">0\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">, \u003C\u002Fspan>\u003Cspan style=\"color:#FFAB70\">like\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\">None\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Kalu kita lihat di situ, hanya ada 1 argument saja yang menjadi positional argument (argument pertama) dan sisanya default argument semua.\u003C\u002Fp>\n\u003Cp>Hal ini mungkin karena sang empunya numpy tahu kalau kita akan jarang menggunakan argument lainnya. Yah, jarang kan bukan berarti tidak pernah, maka sebagai opsi tetap harus diberikan.\u003C\u002Fp>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya…\u003C\u002Fh2>\n\u003Cp>Cukup sekian untuk kesempatan kali ini, selanjutnya kita akan membahas tentang variable length argument pada python 3.\u003C\u002Fp>\n\u003Cp>Selamat ber-koding ria 👋\u003C\u002Fp>\n","",[190,203,216,229,242,263],{"id":191,"title":192,"title_en":21,"slug":193,"excerpt":194,"excerpt_en":21,"has_translation":15,"published_at":195,"reading_time":122,"hidden_from_listing":15,"tags":196,"thumbnail_image":21,"og_image":198,"series":199,"authors":200},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",[83,197],"string","\u002Fog\u002Fpython-strings.png",{"id":176,"title":177,"title_en":178,"slug":179},[201],{"authors_id":202},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},{"id":204,"title":205,"title_en":21,"slug":206,"excerpt":207,"excerpt_en":21,"has_translation":15,"published_at":208,"reading_time":122,"hidden_from_listing":15,"tags":209,"thumbnail_image":21,"og_image":211,"series":212,"authors":213},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",[83,210],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":176,"title":177,"title_en":178,"slug":179},[214],{"authors_id":215},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},{"id":217,"title":218,"title_en":21,"slug":219,"excerpt":220,"excerpt_en":21,"has_translation":15,"published_at":221,"reading_time":122,"hidden_from_listing":15,"tags":222,"thumbnail_image":21,"og_image":224,"series":225,"authors":226},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",[83,223],"set","\u002Fog\u002Fpython-sets.png",{"id":176,"title":177,"title_en":178,"slug":179},[227],{"authors_id":228},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},{"id":230,"title":231,"title_en":21,"slug":232,"excerpt":233,"excerpt_en":21,"has_translation":15,"published_at":234,"reading_time":122,"hidden_from_listing":15,"tags":235,"thumbnail_image":21,"og_image":237,"series":238,"authors":239},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",[83,236],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":176,"title":177,"title_en":178,"slug":179},[240],{"authors_id":241},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},{"id":243,"title":244,"title_en":245,"slug":246,"excerpt":247,"excerpt_en":248,"has_translation":12,"published_at":249,"reading_time":14,"hidden_from_listing":15,"tags":250,"thumbnail_image":21,"og_image":257,"series":258,"authors":260},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",[251,252,253,254,255,256],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":259,"title":35,"title_en":36,"slug":37},8,[261],{"authors_id":262},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},{"id":264,"title":265,"title_en":266,"slug":267,"excerpt":268,"excerpt_en":269,"has_translation":12,"published_at":270,"reading_time":122,"hidden_from_listing":15,"tags":271,"thumbnail_image":21,"og_image":278,"series":279,"authors":280},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",[272,273,274,275,276,277],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":259,"title":35,"title_en":36,"slug":37},[281],{"authors_id":282},{"id":110,"name":111,"slug":112,"role":113,"profile_picture":21},[284,288,291,294,297,300,303,306],{"text":285,"depth":286,"id":287},"Default Argument",2,"default-argument",{"text":289,"depth":286,"id":290},"Keyword Argument","keyword-argument",{"text":292,"depth":286,"id":293},"Aturan Deklarasi dan Pengisian Argument","aturan-deklarasi-dan-pengisian-argument",{"text":295,"depth":81,"id":296},"Default argument harus diletakkan setelah non-default argument","default-argument-harus-diletakkan-setelah-non-default-argument",{"text":298,"depth":81,"id":299},"Keyword argument diberikan setelah semua positional argument diberi nilai","keyword-argument-diberikan-setelah-semua-positional-argument-diberi-nilai",{"text":301,"depth":81,"id":302},"Satu argumen hanya bisa diisi satu kali","satu-argumen-hanya-bisa-diisi-satu-kali",{"text":304,"depth":286,"id":305},"Kapan Harus Menggunakan Default Argument?","kapan-harus-menggunakan-default-argument",{"text":307,"depth":286,"id":308},"Selanjutnya…","selanjutnya",1793295834032]