[{"data":1,"prerenderedAt":173},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-konsep-dasar-pemrograman-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":103,"renderedTakeaway":104,"latestArticles":105,"toc":157},{"id":43,"title":15,"slug":16,"excerpt":44,"published_at":45,"thumbnail_image":46,"tags":48,"reading_time":51,"takeway":51,"body":52,"authors":53,"series":54},"6","Inti dari pemrograman adalah memberi instruksi alias menyuruh komputer untuk melakukan sesuatu yang kita inginkan.","2026-06-14T16:51:40.694Z",{"id":47},"9c7f5c67-3b29-48f5-85fe-f8497bc3b4cc",[49,50],"intro","basic",null,"Belajar pemrograman tuh nggak sesulit yang kalian bayangin, lho. Nggak seberat belajar bahasa asing yang harus ngafal banyak *vocab*, dan pastinya nggak sesusah matematika yang isinya ngitung melulu. Pada dasarnya, inti dari pemrograman itu sebenarnya simpel banget karena kalian cuma butuh ngasih instruksi alias nyuruh komputer buat ngelakuin sesuatu yang kalian mau. Selama instruksi yang kita kasih jelas, komputer pasti bisa ngerjainnya dengan baik tanpa banyak protes.\n\nNah, pertanyaannya sekarang, gimana sih cara ngasih instruksinya? Tentu saja, kita bisa ngasih instruksi ke komputer dengan cara bikin program. Program ini sebenernya nggak lebih dari sekumpulan instruksi yang ditulis pake *programming language* atau bahasa pemrograman. Sama kayak bahasa manusia pada umumnya, bahasa komputer juga punya aturan mainnya sendiri. Oleh karena itu, ada beberapa konsep dasar yang harus kita pahamin buat nulis program yang bener.\n\nKonsep-konsep dasar tersebut antara lain:\n- *Variable* dan *data type*\n- *Control structure*\n- *Function* atau sub program\n- *Syntax*\n\nYuk, kita bahas satu-satu secara singkat biar kalian makin paham. Buat pembahasan yang lebih detailnya, nanti bakal dikupas tuntas di artikel yang terpisah ya.\n\n## Variabel dan Tipe Data\n\n*Variable* tuh ibarat \"tokoh utama\" di sebuah program. Menariknya, hampir semua bahasa pemrograman pasti punya konsep yang satu ini. Kalau kalian bingung apa sih *variable* itu, menurut definisi, *variable* adalah tempat nyimpen data yang dikasih nama simbolis tertentu. Gampangnya, *variable* itu cuma sebuah wadah buat nyimpen data supaya nantinya data tersebut bisa kita pake lagi pas dibutuhin.\n\nDi dunia *programming*, setiap data pasti punya bentuknya masing-masing. Karena bentuknya beda-beda, setiap bentuk itu juga butuh jenis wadah yang beda-beda pula. Nah, bentuk dari data inilah yang biasa kita sebut dengan *data type* (tipe data). Sebagian besar bahasa pemrograman punya tipe data standar yang mirip-mirip dan udah ada dari sananya (*default*).\n\nBeberapa contoh tipe data standar yang sering dipake:\n- `integer`: Buat nyimpen angka bulat (contoh: 1, 2, 90)\n- `float`: Buat nyimpen angka desimal (contoh: 2.5, 3.14, 2.71)\n- `string`: Buat nyimpen huruf atau kata (contoh: \"a\", \"ikan\", \"Inva si kode\")\n- `byte`: Buat nyimpen data mentah kayak gambar dan teks\n- `boolean`: Buat nyimpen data logika (`true` atau `false`)\n- `array`: Buat nyimpen sekumpulan *variable* dengan tipe yang sama\n\nSelain tipe data standar tersebut, beberapa bahasa juga ngasih kebebasan buat bikin tipe data sendiri sesuai kebutuhan. Fitur ini biasanya disebut dengan istilah *custom data type* atau tipe data bentukan.\n\n## Struktur Kontrol: Percabangan\n\nSelanjutnya ada percabangan atau *branching*. Percabangan ini merupakan bagian penting dari *control structure* yang fungsinya buat ngambil keputusan. Keputusan ini selalu didasarin sama yang namanya *boolean condition*. Dalam percabangan sendiri, ada dua hal pokok yang nggak bisa dipisahin, yaitu kondisi dan keputusan itu sendiri.\n\nKalo di dunia nyata, contohnya kira-kira kayak gini:\n```text\njika (hari ini hujan) maka (aku akan tidur saja)\n      └─ kondisi            └─ keputusan\n```\n\nPake percabangan, kita pada dasarnya ngasih tau komputer buat jalanin perintah tertentu kalau syaratnya terpenuhi. Syarat inilah yang kita sebut sebagai *boolean condition*. Lalu, apaan tuh *boolean condition*? Seperti yang udah sempet disinggung sebelumnya, `boolean` itu adalah salah satu tipe data. Tipe ini terbilang spesial banget karena cuma punya dua nilai mutlak, yaitu `true` (benar) dan `false` (salah).\n\nBuat dapet kondisi boolean, kita butuh yang namanya *boolean expression*. Walaupun istilahnya kedengeran rumit, 😅 sebenernya *boolean expression* itu cuma operasi perbandingan kayak \"lebih dari\", \"kurang dari\", sama \"sama dengan\". Atau selain itu, bisa juga berupa operasi logika kayak `AND`, `OR`, dan `NOT`.\n\nBiasanya, simbol yang dipake di bahasa pemrograman tuh kayak gini:\n- `>`: lebih dari\n- `\u003C`: kurang dari\n- `>=`: lebih dari atau sama dengan\n- `\u003C=`: kurang dari atau sama dengan\n- `==`: sama dengan\n- `!=`: tidak sama dengan\n- `&&` atau `and`: logika AND\n- `||` atau `or`: logika OR\n- `!` atau `not`: logika NOT\n\nUmumnya, percabangan ditandai pake kata kunci `if`, terus diikutin perintah yang bakal dijalanin kalau kondisinya memang `true`. Sebagai gambaran, coba perhatiin contoh percabangan pake *Python* berikut ini:\n```python\nif (nilai >= 94):\n  print(\"bagus sekali\")\n```\nGampang dibaca kan kodenya? Kalian nggak harus jadi *programmer* pro kok buat sekadar paham maksud dari baris kode tersebut.\n\n## Struktur Kontrol: Perulangan\n\nKonsep berikutnya yang nggak kalah penting adalah perulangan atau *looping*. Sama kayak percabangan, perulangan ini juga masuk ke dalam kategori *control structure*. Sesuai dengan namanya, fungsinya adalah buat ngulang-ngulang suatu perintah selama kondisinya masih terpenuhi. Seringkali, kita butuh ngelakuin hal yang repetitif alias berulang-ulang pas lagi bikin program.\n\nMisalnya nih, kalian diminta untuk nyetak angka 1 sampai 5. Memang sih, nulis kodenya bisa diketik manual satu-satu kayak gini:\n```python\nprint(1)\nprint(2)\nprint(3)\nprint(4)\nprint(5)\n```\nKalo cuma 5 angka doang sih jelas nggak masalah buat diketik. Tapi coba bayangin deh kalo harus nyetak sampe 1000 angka, bisa keriting tuh jari! Oleh karena itu, dengan pake perulangan, kita nggak perlu repot nulis kode yang panjang-panjang. Komputer bakal ngerjain tugas yang berulang-ulang tersebut dengan gampang dan super cepat.\n\nBiasanya perulangan ditandai pake kata kunci `for` atau `while`. Coba liat contoh perulangan `for` di *Python* berikut ini buat nyetak angka 1 sampe 999:\n```python\nfor number in range(1, 1000):\n  print(number)\n```\nTuh kan, jauh lebih simpel dan pastinya lebih gampang dibaca.\n\n## Fungsi atau Sub Program\n\nLanjut lagi, ada yang namanya fungsi atau sub program. Fungsi ini merupakan cara paling ampuh buat mecah masalah yang tadinya gede jadi bagian yang kecil-kecil, biar masalahnya lebih gampang diselesain. Di samping itu, fungsi juga bikin kode yang kita tulis bisa dipake berulang kali di berbagai tempat, jadi *code* kalian bakal lebih rapi dan efisien.\n\nKalian mungkin pernah denger istilah fungsi pas lagi belajar di pelajaran matematika. Contohnya kira-kira kayak gini nih:\n$$\nf(x)=x^2+x+1\n$$\nNah, menariknya, di *programming* juga konsepnya ternyata mirip banget! Bedanya cuma satu, nilai yang dimasukin ke dalam fungsi pemrograman nggak melulu cuma angka, tapi bisa tipe data apa aja yang udah kita bahas panjang lebar tadi.\n\nKalo di *Python*, fungsi matematika di atas tadi bisa ditulis jadi bentuk kayak gini:\n```python\ndef f(x):\n  return x*x + x + 1\n```\n*Variable* yang ada di dalem kurung fungsi tersebut (kayak huruf `x` tadi) sering disebut dengan istilah *parameter*. Dalam praktiknya, sebuah fungsi nggak cuma bisa nerima satu parameter aja. Fungsi bisa menerima banyak parameter, atau bahkan malah nggak butuh parameter sama sekali.\n\nCoba perhatiin contoh lainnya:\n```python\ndef nama_lengkap(nama_depan, nama_belakang):\n  return nama_depan + \" \" + nama_belakang\n```\nItu adalah contoh sederhana dari sebuah fungsi dengan dua parameter yang bertugas buat gabungin nama depan dan nama belakang jadi satu nama lengkap. Praktis banget kan penggunaannya?\n\n## Sintaks\n\nTerakhir nih, kita bakal bahas tentang sintaks atau *syntax*. Kalau konsep-konsep sebelumnya tuh secara umum selalu ada di semua bahasa pemrograman, urusan sintaks ini jelas beda cerita. Sama halnya dalam bahasa sehari-hari, sintaks itu ibarat aturan tata bahasa. Karena tiap bahasa manusia pasti beda-beda tata bahasanya, otomatis tiap bahasa pemrograman pun punya aturan sintaks yang unik.\n\nWalaupun begitu, kadang ada juga beberapa bahasa yang punya aturan mirip-mirip. Contohnya kayak `c` dan `c++` yang kalau diibaratkan tuh mirip banget kayak Bahasa Indonesia dan Bahasa Melayu. Biar makin kebayang, coba perhatiin gimana cara nampilin teks \"Hello World\" pake beberapa bahasa yang beda ini.\n\nPake C/C++:\n```cpp\n#include\u003Cstdio.h>\nint main(){\n    printf(\"Hello World\\n\");\n  return 0;\n}\n```\n\nPake *Python*:\n```python\nprint(\"Hello World\")\n```\n\nPake *Pascal*:\n```pascal\nprogram Hello_World;\nbegin\n  writeln('Hello World');\nend.\n```\n\nSering kali orang di luar sana mikir kalau \"belajar pemrograman\" itu berarti harus ngafalin sintaks. Nggak sepenuhnya salah sih, tapi selalu inget ya kalau bahasa pemrograman itu ujung-ujungnya cuma alat buat nyelesain masalah. Jadi, bahasa apa pun yang kalian pake, yang paling penting itu adalah masalahnya bisa beres dengan baik! 💡\n\nMengingat memang ada buanyak banget bahasa pemrograman yang beredar di luar sana, kalian nggak perlu terlalu ambisius pengen jadi *polyglot* dan nguasain semuanya sekaligus. Sebaliknya, cukup pelajarin satu bahasa aja dan pahamin konsep-konsep dasarnya sampai bener-bener dalem. Dengan fondasi yang kuat, nanti kalo mau pindah belajar ke bahasa lain pun dijamin bakal jauh lebih gampang dan gampang adaptasi.",[],{"id":55,"title":15,"slug":16,"articles":56,"parent_series":97},"12",[57,66,69,79,88],{"id":58,"title":59,"slug":60,"excerpt":61,"thumbnail_image":62,"tags":64},"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":63},"8dd5085f-35bb-46fe-8044-d50a77ede34e",[50,49,65],"looping",{"id":43,"title":15,"slug":16,"excerpt":44,"thumbnail_image":67,"tags":68},{"id":47},[49,50],{"id":70,"title":71,"slug":72,"excerpt":73,"thumbnail_image":74,"tags":76},"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":75},"0a59bd7f-b7b1-47c9-a0b8-b3351057a6c7",[50,49,77,78],"variable","types",{"id":80,"title":81,"slug":82,"excerpt":83,"thumbnail_image":84,"tags":86},"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!",{"id":85},"44de9a02-3223-4969-88df-907973544b04",[50,49,87],"conditions",{"id":89,"title":90,"slug":91,"excerpt":92,"thumbnail_image":93,"tags":95},"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":94},"aca2cb4a-803b-4fdc-85e8-c8ea2beaf441",[50,49,96],"functions",{"id":58,"title":8,"slug":9,"parent_series":51,"children_series":98},[99,101,102],{"id":100,"title":12,"slug":13,"cover_image":51},"15",{"id":80,"title":18,"slug":19,"cover_image":51},{"id":55,"title":15,"slug":16,"cover_image":51},"\u003Cp>Belajar pemrograman tuh nggak sesulit yang kalian bayangin, lho. Nggak seberat belajar bahasa asing yang harus ngafal banyak \u003Cem>vocab\u003C/em>, dan pastinya nggak sesusah matematika yang isinya ngitung melulu. Pada dasarnya, inti dari pemrograman itu sebenarnya simpel banget karena kalian cuma butuh ngasih instruksi alias nyuruh komputer buat ngelakuin sesuatu yang kalian mau. Selama instruksi yang kita kasih jelas, komputer pasti bisa ngerjainnya dengan baik tanpa banyak protes.\u003C/p>\n\u003Cp>Nah, pertanyaannya sekarang, gimana sih cara ngasih instruksinya? Tentu saja, kita bisa ngasih instruksi ke komputer dengan cara bikin program. Program ini sebenernya nggak lebih dari sekumpulan instruksi yang ditulis pake \u003Cem>programming language\u003C/em> atau bahasa pemrograman. Sama kayak bahasa manusia pada umumnya, bahasa komputer juga punya aturan mainnya sendiri. Oleh karena itu, ada beberapa konsep dasar yang harus kita pahamin buat nulis program yang bener.\u003C/p>\n\u003Cp>Konsep-konsep dasar tersebut antara lain:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cem>Variable\u003C/em> dan \u003Cem>data type\u003C/em>\u003C/li>\n\u003Cli>\u003Cem>Control structure\u003C/em>\u003C/li>\n\u003Cli>\u003Cem>Function\u003C/em> atau sub program\u003C/li>\n\u003Cli>\u003Cem>Syntax\u003C/em>\u003C/li>\n\u003C/ul>\n\u003Cp>Yuk, kita bahas satu-satu secara singkat biar kalian makin paham. Buat pembahasan yang lebih detailnya, nanti bakal dikupas tuntas di artikel yang terpisah ya.\u003C/p>\n\u003Ch2 id=\"variabel-dan-tipe-data\">Variabel dan Tipe Data\u003C/h2>\n\u003Cp>\u003Cem>Variable\u003C/em> tuh ibarat &quot;tokoh utama&quot; di sebuah program. Menariknya, hampir semua bahasa pemrograman pasti punya konsep yang satu ini. Kalau kalian bingung apa sih \u003Cem>variable\u003C/em> itu, menurut definisi, \u003Cem>variable\u003C/em> adalah tempat nyimpen data yang dikasih nama simbolis tertentu. Gampangnya, \u003Cem>variable\u003C/em> itu cuma sebuah wadah buat nyimpen data supaya nantinya data tersebut bisa kita pake lagi pas dibutuhin.\u003C/p>\n\u003Cp>Di dunia \u003Cem>programming\u003C/em>, setiap data pasti punya bentuknya masing-masing. Karena bentuknya beda-beda, setiap bentuk itu juga butuh jenis wadah yang beda-beda pula. Nah, bentuk dari data inilah yang biasa kita sebut dengan \u003Cem>data type\u003C/em> (tipe data). Sebagian besar bahasa pemrograman punya tipe data standar yang mirip-mirip dan udah ada dari sananya (\u003Cem>default\u003C/em>).\u003C/p>\n\u003Cp>Beberapa contoh tipe data standar yang sering dipake:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>integer\u003C/code>: Buat nyimpen angka bulat (contoh: 1, 2, 90)\u003C/li>\n\u003Cli>\u003Ccode>float\u003C/code>: Buat nyimpen angka desimal (contoh: 2.5, 3.14, 2.71)\u003C/li>\n\u003Cli>\u003Ccode>string\u003C/code>: Buat nyimpen huruf atau kata (contoh: &quot;a&quot;, &quot;ikan&quot;, &quot;Inva si kode&quot;)\u003C/li>\n\u003Cli>\u003Ccode>byte\u003C/code>: Buat nyimpen data mentah kayak gambar dan teks\u003C/li>\n\u003Cli>\u003Ccode>boolean\u003C/code>: Buat nyimpen data logika (\u003Ccode>true\u003C/code> atau \u003Ccode>false\u003C/code>)\u003C/li>\n\u003Cli>\u003Ccode>array\u003C/code>: Buat nyimpen sekumpulan \u003Cem>variable\u003C/em> dengan tipe yang sama\u003C/li>\n\u003C/ul>\n\u003Cp>Selain tipe data standar tersebut, beberapa bahasa juga ngasih kebebasan buat bikin tipe data sendiri sesuai kebutuhan. Fitur ini biasanya disebut dengan istilah \u003Cem>custom data type\u003C/em> atau tipe data bentukan.\u003C/p>\n\u003Ch2 id=\"struktur-kontrol-percabangan\">Struktur Kontrol: Percabangan\u003C/h2>\n\u003Cp>Selanjutnya ada percabangan atau \u003Cem>branching\u003C/em>. Percabangan ini merupakan bagian penting dari \u003Cem>control structure\u003C/em> yang fungsinya buat ngambil keputusan. Keputusan ini selalu didasarin sama yang namanya \u003Cem>boolean condition\u003C/em>. Dalam percabangan sendiri, ada dua hal pokok yang nggak bisa dipisahin, yaitu kondisi dan keputusan itu sendiri.\u003C/p>\n\u003Cp>Kalo di dunia nyata, contohnya kira-kira 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\">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=\"jika%20(hari%20ini%20hujan)%20maka%20(aku%20akan%20tidur%20saja)%0A%20%20%20%20%20%20%E2%94%94%E2%94%80%20kondisi%20%20%20%20%20%20%20%20%20%20%20%20%E2%94%94%E2%94%80%20keputusan\" 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>jika (hari ini hujan) maka (aku akan tidur saja)\n      └─ kondisi            └─ keputusan\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Pake percabangan, kita pada dasarnya ngasih tau komputer buat jalanin perintah tertentu kalau syaratnya terpenuhi. Syarat inilah yang kita sebut sebagai \u003Cem>boolean condition\u003C/em>. Lalu, apaan tuh \u003Cem>boolean condition\u003C/em>? Seperti yang udah sempet disinggung sebelumnya, \u003Ccode>boolean\u003C/code> itu adalah salah satu tipe data. Tipe ini terbilang spesial banget karena cuma punya dua nilai mutlak, yaitu \u003Ccode>true\u003C/code> (benar) dan \u003Ccode>false\u003C/code> (salah).\u003C/p>\n\u003Cp>Buat dapet kondisi boolean, kita butuh yang namanya \u003Cem>boolean expression\u003C/em>. Walaupun istilahnya kedengeran rumit, 😅 sebenernya \u003Cem>boolean expression\u003C/em> itu cuma operasi perbandingan kayak &quot;lebih dari&quot;, &quot;kurang dari&quot;, sama &quot;sama dengan&quot;. Atau selain itu, bisa juga berupa operasi logika kayak \u003Ccode>AND\u003C/code>, \u003Ccode>OR\u003C/code>, dan \u003Ccode>NOT\u003C/code>.\u003C/p>\n\u003Cp>Biasanya, simbol yang dipake di bahasa pemrograman tuh kayak gini:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Ccode>&gt;\u003C/code>: lebih dari\u003C/li>\n\u003Cli>\u003Ccode>&lt;\u003C/code>: kurang dari\u003C/li>\n\u003Cli>\u003Ccode>&gt;=\u003C/code>: lebih dari atau sama dengan\u003C/li>\n\u003Cli>\u003Ccode>&lt;=\u003C/code>: kurang dari atau sama dengan\u003C/li>\n\u003Cli>\u003Ccode>==\u003C/code>: sama dengan\u003C/li>\n\u003Cli>\u003Ccode>!=\u003C/code>: tidak sama dengan\u003C/li>\n\u003Cli>\u003Ccode>&amp;&amp;\u003C/code> atau \u003Ccode>and\u003C/code>: logika AND\u003C/li>\n\u003Cli>\u003Ccode>||\u003C/code> atau \u003Ccode>or\u003C/code>: logika OR\u003C/li>\n\u003Cli>\u003Ccode>!\u003C/code> atau \u003Ccode>not\u003C/code>: logika NOT\u003C/li>\n\u003C/ul>\n\u003Cp>Umumnya, percabangan ditandai pake kata kunci \u003Ccode>if\u003C/code>, terus diikutin perintah yang bakal dijalanin kalau kondisinya memang \u003Ccode>true\u003C/code>. Sebagai gambaran, coba perhatiin contoh percabangan pake \u003Cem>Python\u003C/em> 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=\"if%20(nilai%20%3E%3D%2094)%3A%0A%20%20print(%22bagus%20sekali%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:#F97583\">if\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> (nilai \u003C/span>\u003Cspan style=\"color:#F97583\">>=\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 94\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\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\">\"bagus sekali\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Gampang dibaca kan kodenya? Kalian nggak harus jadi \u003Cem>programmer\u003C/em> pro kok buat sekadar paham maksud dari baris kode tersebut.\u003C/p>\n\u003Ch2 id=\"struktur-kontrol-perulangan\">Struktur Kontrol: Perulangan\u003C/h2>\n\u003Cp>Konsep berikutnya yang nggak kalah penting adalah perulangan atau \u003Cem>looping\u003C/em>. Sama kayak percabangan, perulangan ini juga masuk ke dalam kategori \u003Cem>control structure\u003C/em>. Sesuai dengan namanya, fungsinya adalah buat ngulang-ngulang suatu perintah selama kondisinya masih terpenuhi. Seringkali, kita butuh ngelakuin hal yang repetitif alias berulang-ulang pas lagi bikin program.\u003C/p>\n\u003Cp>Misalnya nih, kalian diminta untuk nyetak angka 1 sampai 5. Memang sih, nulis kodenya bisa diketik manual satu-satu 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\">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=\"print(1)%0Aprint(2)%0Aprint(3)%0Aprint(4)%0Aprint(5)\" 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:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">2\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">3\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">4\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">5\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kalo cuma 5 angka doang sih jelas nggak masalah buat diketik. Tapi coba bayangin deh kalo harus nyetak sampe 1000 angka, bisa keriting tuh jari! Oleh karena itu, dengan pake perulangan, kita nggak perlu repot nulis kode yang panjang-panjang. Komputer bakal ngerjain tugas yang berulang-ulang tersebut dengan gampang dan super cepat.\u003C/p>\n\u003Cp>Biasanya perulangan ditandai pake kata kunci \u003Ccode>for\u003C/code> atau \u003Ccode>while\u003C/code>. Coba liat contoh perulangan \u003Ccode>for\u003C/code> di \u003Cem>Python\u003C/em> berikut ini buat nyetak angka 1 sampe 999:\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=\"for%20number%20in%20range(1%2C%201000)%3A%0A%20%20print(number)\" 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\">for\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> number \u003C/span>\u003Cspan style=\"color:#F97583\">in\u003C/span>\u003Cspan style=\"color:#79B8FF\"> range\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#79B8FF\">1\u003C/span>\u003Cspan style=\"color:#E1E4E8\">, \u003C/span>\u003Cspan style=\"color:#79B8FF\">1000\u003C/span>\u003Cspan style=\"color:#E1E4E8\">):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">  print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(number)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Tuh kan, jauh lebih simpel dan pastinya lebih gampang dibaca.\u003C/p>\n\u003Ch2 id=\"fungsi-atau-sub-program\">Fungsi atau Sub Program\u003C/h2>\n\u003Cp>Lanjut lagi, ada yang namanya fungsi atau sub program. Fungsi ini merupakan cara paling ampuh buat mecah masalah yang tadinya gede jadi bagian yang kecil-kecil, biar masalahnya lebih gampang diselesain. Di samping itu, fungsi juga bikin kode yang kita tulis bisa dipake berulang kali di berbagai tempat, jadi \u003Cem>code\u003C/em> kalian bakal lebih rapi dan efisien.\u003C/p>\n\u003Cp>Kalian mungkin pernah denger istilah fungsi pas lagi belajar di pelajaran matematika. Contohnya kira-kira kayak gini nih:\n$$\nf(x)=x^2+x+1\n$$\nNah, menariknya, di \u003Cem>programming\u003C/em> juga konsepnya ternyata mirip banget! Bedanya cuma satu, nilai yang dimasukin ke dalam fungsi pemrograman nggak melulu cuma angka, tapi bisa tipe data apa aja yang udah kita bahas panjang lebar tadi.\u003C/p>\n\u003Cp>Kalo di \u003Cem>Python\u003C/em>, fungsi matematika di atas tadi bisa ditulis jadi bentuk 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\">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=\"def%20f(x)%3A%0A%20%20return%20x*x%20%2B%20x%20%2B%201\" 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\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> f\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(x):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">  return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> x\u003C/span>\u003Cspan style=\"color:#F97583\">*\u003C/span>\u003Cspan style=\"color:#E1E4E8\">x \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> x \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#79B8FF\"> 1\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>\u003Cem>Variable\u003C/em> yang ada di dalem kurung fungsi tersebut (kayak huruf \u003Ccode>x\u003C/code> tadi) sering disebut dengan istilah \u003Cem>parameter\u003C/em>. Dalam praktiknya, sebuah fungsi nggak cuma bisa nerima satu parameter aja. Fungsi bisa menerima banyak parameter, atau bahkan malah nggak butuh parameter sama sekali.\u003C/p>\n\u003Cp>Coba perhatiin contoh lainnya:\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=\"def%20nama_lengkap(nama_depan%2C%20nama_belakang)%3A%0A%20%20return%20nama_depan%20%2B%20%22%20%22%20%2B%20nama_belakang\" 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\">def\u003C/span>\u003Cspan style=\"color:#B392F0\"> nama_lengkap\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(nama_depan, nama_belakang):\u003C/span>\u003C/span>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#F97583\">  return\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> nama_depan \u003C/span>\u003Cspan style=\"color:#F97583\">+\u003C/span>\u003Cspan style=\"color:#9ECBFF\"> \" \"\u003C/span>\u003Cspan style=\"color:#F97583\"> +\u003C/span>\u003Cspan style=\"color:#E1E4E8\"> nama_belakang\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Itu adalah contoh sederhana dari sebuah fungsi dengan dua parameter yang bertugas buat gabungin nama depan dan nama belakang jadi satu nama lengkap. Praktis banget kan penggunaannya?\u003C/p>\n\u003Ch2 id=\"sintaks\">Sintaks\u003C/h2>\n\u003Cp>Terakhir nih, kita bakal bahas tentang sintaks atau \u003Cem>syntax\u003C/em>. Kalau konsep-konsep sebelumnya tuh secara umum selalu ada di semua bahasa pemrograman, urusan sintaks ini jelas beda cerita. Sama halnya dalam bahasa sehari-hari, sintaks itu ibarat aturan tata bahasa. Karena tiap bahasa manusia pasti beda-beda tata bahasanya, otomatis tiap bahasa pemrograman pun punya aturan sintaks yang unik.\u003C/p>\n\u003Cp>Walaupun begitu, kadang ada juga beberapa bahasa yang punya aturan mirip-mirip. Contohnya kayak \u003Ccode>c\u003C/code> dan \u003Ccode>c++\u003C/code> yang kalau diibaratkan tuh mirip banget kayak Bahasa Indonesia dan Bahasa Melayu. Biar makin kebayang, coba perhatiin gimana cara nampilin teks &quot;Hello World&quot; pake beberapa bahasa yang beda ini.\u003C/p>\n\u003Cp>Pake C/C++:\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\">CPP\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=\"%23include%3Cstdio.h%3E%0Aint%20main()%7B%0A%20%20%20%20printf(%22Hello%20World%5Cn%22)%3B%0A%20%20return%200%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\">\u003Ccode>#include&lt;stdio.h&gt;\nint main(){\n    printf(\"Hello World\\n\");\n  return 0;\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Pake \u003Cem>Python\u003C/em>:\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=\"print(%22Hello%20World%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:#79B8FF\">print\u003C/span>\u003Cspan style=\"color:#E1E4E8\">(\u003C/span>\u003Cspan style=\"color:#9ECBFF\">\"Hello World\"\u003C/span>\u003Cspan style=\"color:#E1E4E8\">)\u003C/span>\u003C/span>\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Pake \u003Cem>Pascal\u003C/em>:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">PASCAL\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"program%20Hello_World%3B%0Abegin%0A%20%20writeln('Hello%20World')%3B%0Aend.\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>program Hello_World;\nbegin\n  writeln('Hello World');\nend.\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sering kali orang di luar sana mikir kalau &quot;belajar pemrograman&quot; itu berarti harus ngafalin sintaks. Nggak sepenuhnya salah sih, tapi selalu inget ya kalau bahasa pemrograman itu ujung-ujungnya cuma alat buat nyelesain masalah. Jadi, bahasa apa pun yang kalian pake, yang paling penting itu adalah masalahnya bisa beres dengan baik! 💡\u003C/p>\n\u003Cp>Mengingat memang ada buanyak banget bahasa pemrograman yang beredar di luar sana, kalian nggak perlu terlalu ambisius pengen jadi \u003Cem>polyglot\u003C/em> dan nguasain semuanya sekaligus. Sebaliknya, cukup pelajarin satu bahasa aja dan pahamin konsep-konsep dasarnya sampai bener-bener dalem. Dengan fondasi yang kuat, nanti kalo mau pindah belajar ke bahasa lain pun dijamin bakal jauh lebih gampang dan gampang adaptasi.\u003C/p>\n","",[106,119,134,146],{"id":107,"title":108,"slug":109,"excerpt":110,"thumbnail_image":111,"tags":113},"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":112},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[114,115,116,117,118],"system-programming","rust","zig","c","memory-safety",{"id":120,"title":121,"slug":122,"excerpt":123,"thumbnail_image":124,"tags":126},"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":125},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[127,128,129,130,131,132,133],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":135,"title":136,"slug":137,"excerpt":138,"thumbnail_image":139,"tags":141},"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":140},"e3c617fd-1486-4b82-b937-94fbec846c77",[127,142,132,143,144,128,145],"microservices","database","message-broker","postgresql",{"id":147,"title":148,"slug":149,"excerpt":150,"thumbnail_image":151,"tags":153},"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":152},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[154,144,127,132,142,155,156],"rabbitmq","async","python",[158,162,165,167,170],{"text":159,"depth":160,"id":161},"Variabel dan Tipe Data",2,"variabel-dan-tipe-data",{"text":163,"depth":160,"id":164},"Struktur Kontrol: Percabangan","struktur-kontrol-percabangan",{"text":166,"depth":160,"id":60},"Struktur Kontrol: Perulangan",{"text":168,"depth":160,"id":169},"Fungsi atau Sub Program","fungsi-atau-sub-program",{"text":171,"depth":160,"id":172},"Sintaks","sintaks",1791045071781]