[{"data":1,"prerenderedAt":307},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-variable-dan-tipe-data-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":180,"renderedTakeaway":181,"latestArticles":182,"toc":279},{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":14,"hidden_from_listing":15,"tags":81,"thumbnail_image":21,"og_image":86,"series":87,"authors":174,"body_locale":175,"available_locales":176,"body":178,"takeway":179,"prerequisite":21},7,"Konsep Variabel dan Tipe Data pada Pemrograman","Variables and Data Types in Programming","variable-dan-tipe-data","Variabel itu ibarat “tokoh utama” di sebuah program. Nggak peduli bahasa pemrograman apapun, pasti semua punya konsep variabel.","A variable is the main character of a program, and every language has one. The type is what decides which data fits inside.","2026-06-14T16:51:40.710Z",[82,83,84,85],"basic","intro","variable","types","\u002Fog\u002Fvariable-dan-tipe-data.png",{"id":88,"title":39,"title_en":40,"slug":41,"description":89,"description_en":90,"articles":91,"children_series":167,"parent_series":168},12,"Mengenal konsep dasar pemrograman. Pada seri ini kita akan membahas tentang bagaimana cara berkutat dengan variabel, mengatur alur program dengan struktur kontrol, me-reuse kode dengan fungsi, dan aturan sintaks pada bahasa pemrograman. Konsep-konsep ini pastinya akan sangat berguna ketika kita mulai mengkoding ceria.","The concepts every language shares: variables, control flow, functions, and syntax. Learn them once and the next language is mostly vocabulary.",[92,102,105,119,131,145],{"id":93,"title":39,"title_en":94,"slug":41,"excerpt":95,"excerpt_en":96,"has_translation":12,"published_at":97,"reading_time":74,"hidden_from_listing":15,"tags":98,"thumbnail_image":21,"og_image":99,"series":100,"authors":101},6,"Programming Fundamentals: Four Concepts Behind Every Program","Inti dari pemrograman adalah memberi instruksi alias menyuruh komputer untuk melakukan sesuatu yang kita inginkan.","The core of programming is giving instructions: telling the computer to do what you want it to do, in a language that has rules of its own.","2026-06-14T16:51:40.694Z",[83,82],"\u002Fog\u002Fkonsep-dasar-pemrograman.png",{"id":88,"title":39,"title_en":40,"slug":41},[],{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":14,"hidden_from_listing":15,"tags":81,"thumbnail_image":21,"og_image":86,"series":103,"authors":104},{"id":88,"title":39,"title_en":40,"slug":41},[],{"id":106,"title":107,"title_en":108,"slug":109,"excerpt":110,"excerpt_en":111,"has_translation":12,"published_at":112,"reading_time":113,"hidden_from_listing":15,"tags":114,"thumbnail_image":21,"og_image":116,"series":117,"authors":118},8,"Struktur Kontrol Kondisi (If-Else dan Switch-Case), Apa Bedanya?","If-Else vs Switch-Case: What's the Real Difference?","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!","Not sure when to reach for if-else and when switch-case earns its place? Here is why switch-case sometimes runs faster.","2026-06-14T17:23:03.446Z",2,[82,83,115],"conditions","\u002Fog\u002Fstruktur-kontrol-kondisi.png",{"id":88,"title":39,"title_en":40,"slug":41},[],{"id":24,"title":120,"title_en":121,"slug":122,"excerpt":123,"excerpt_en":124,"has_translation":12,"published_at":125,"reading_time":113,"hidden_from_listing":15,"tags":126,"thumbnail_image":21,"og_image":128,"series":129,"authors":130},"Struktur Kontrol Perulangan (For, While, Do-While), Kapan Harus Dipakai?","Loop Control Structures: When to Use For, While, and Do-While","struktur-kontrol-perulangan","Pernah ngerasa capek nulis baris kode yang sama berulang kali? Gimana caranya nyuruh komputer buat ngerjain itu secara otomatis?","Tired of writing the same lines of code over and over? Here is how you make the computer repeat the work for you, and which loop to pick.","2026-06-14T17:23:03.479Z",[82,83,127],"looping","\u002Fog\u002Fstruktur-kontrol-perulangan.png",{"id":88,"title":39,"title_en":40,"slug":41},[],{"id":132,"title":133,"title_en":134,"slug":135,"excerpt":136,"excerpt_en":137,"has_translation":12,"published_at":138,"reading_time":139,"hidden_from_listing":15,"tags":140,"thumbnail_image":21,"og_image":142,"series":143,"authors":144},10,"Fungsi dan Prosedur dalam Pemrograman, Apa Bedanya?","Functions vs Procedures: What's the Difference?","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!","Ever wondered when to reach for a function and when a procedure does the job while coding? Here is the split that keeps your code tidy.","2026-06-14T17:23:03.636Z",3,[82,83,141],"functions","\u002Fog\u002Ffungsi-dan-prosedur.png",{"id":88,"title":39,"title_en":40,"slug":41},[],{"id":146,"title":147,"title_en":148,"slug":149,"excerpt":150,"excerpt_en":151,"has_translation":12,"published_at":152,"reading_time":14,"hidden_from_listing":15,"tags":153,"thumbnail_image":21,"og_image":158,"series":159,"authors":160},119,"Aturan Sintaks: Satu Titik Koma Bikin Program Nggak Jalan","Syntax Rules: One Missing Semicolon Stops the Program","aturan-sintaks-pemrograman","Baru nulis beberapa baris, programnya udah nolak jalan? Seringnya bukan logikanya yang salah, cuma satu karakter yang kurang atau salah tempat.","You wrote a few lines and the program already refuses to run? Most of the time the logic is fine, and one character is missing or in the wrong place.","2026-10-11T23:00:15.000Z",[154,155,156,157],"syntax","dasar","konsep","python","\u002Fog\u002Faturan-sintaks-pemrograman.png",{"id":88,"title":39,"title_en":40,"slug":41},[161],{"authors_id":162},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",[],{"id":24,"title":25,"title_en":26,"slug":27,"parent_series":21,"children_series":169},[170,171,172],{"id":106,"title":35,"title_en":36,"slug":37,"cover_image":21},{"id":88,"title":39,"title_en":40,"slug":41,"cover_image":21},{"id":173,"title":43,"title_en":44,"slug":45,"cover_image":21},15,[],"id",[177,175],"en","Variabel itu ibarat “tokoh utama” di sebuah program. Nggak peduli bahasa pemrograman apa yang kalian pakai, pasti bakal ketemu sama konsep *variable*. Bisa dibilang, variabel itu inti dari pemrograman, soalnya dia yang bertanggung jawab buat nyimpen dan memanipulasi data.\n\n## Apa itu Variabel?\n\nKita coba intip Wikipedia dulu buat tahu definisi formalnya nih.\n\n> … variabel adalah lokasi penyimpanan dan terkait nama simbolis yang berisi beberapa kuantitas yang diketahui atau tidak diketahui atau informasi, nilai\n> [wikipedia](https:\u002F\u002Fid.wikipedia.org\u002Fwiki\u002FVariabel_(ilmu_komputer))\n\nNah, itu dia definisi formalnya. Agak ribet ya bacanya? Makanya, biar gampang, bayangin aja *variable* itu semacam **wadah** buat nyimpen **data** yang nantinya bisa kita pakai lagi di dalam program. Kalau diibaratkan di dunia nyata, variabel itu kayak botol minum, sedangkan datanya adalah air di dalamnya. Botol ini bisa kita isi air buat diminum kapan aja, dan bahkan kita bebas nambahin sirup atau gula buat ganti rasanya. Sama halnya dengan variabel, di mana kita bisa masukin data, ngeluarin, atau ngeganti isinya dengan data lain. Nggak cuma itu, variabel juga ngasih jalan buat kita buat memanipulasi data sesuai dengan *logic* yang kita mau.\n\n## Hal yang Bisa Dilakukan dengan Variabel\n\n### 1. Deklarasi variabel\n\nLangkah pertama yang harus kita lakukan adalah deklarasi, yaitu proses \"pembuatan\" variabel. Di tahap ini, kita ngenalin ke komputer kalau ada “wadah” baru yang udah siap dipakai buat nyimpen data. Walaupun cara deklarasinya beda-beda di setiap bahasa pemrograman, satu hal yang pasti adalah variabel **harus punya nama** yang jelas. Selain itu, ada aturan penamaannya juga lho, dan tiap bahasa punya *style* masing-masing yang perlu diikuti. Oleh karena itu, hal yang paling penting adalah nama variabel itu harus punya arti dan gampang dibaca supaya nggak bikin bingung nantinya. Contohnya, kalau kalian mau nyimpen data umur seseorang, kasih aja nama variabelnya `umur`, jangan dibikin asal-asalan.\n\n### 2. Memasukkan nilai (*Assignment*)\n\nSetelah wadahnya jadi, sekarang saatnya kita masukin isi ke dalamnya. Di dunia *programming*, proses ngisi nilai ke variabel ini sering disebut dengan *assignment*. Biasanya, kita pakai tanda sama dengan (`=`) buat ngelakuin proses ini. Secara penulisan, nama variabel ditaruh di sebelah kiri, sedangkan nilai yang mau dimasukin ditaruh di sebelah kanan. Aturannya mirip banget kan sama pelajaran matematika yang sering kita temui?\n\nContohnya gini:\n\n```python\nnama = \"Inva\"\nPI = 3.14\nr = 10\n```\n\nEits, tapi perlu diinget kalau nggak semua bahasa pakai tanda `=`. Ada juga bahasa yang pakai tanda `:=` kayak Pascal atau Go, jadi pastikan kalian cek dokumentasi bahasanya ya.\n\n### 3. Mengakses nilai\n\nSetelah wadahnya berhasil diisi, tentunya sekarang kita bisa ambil datanya dong. Buat ngakses nilai di dalam variabel, kita cuma perlu **manggil nama** variabel tersebut. Gampang banget, kan? Contoh nih, kalau kita mau ngakses variabel `nama` terus mencetaknya ke layar:\n\n```python\nnama = \"Inva\"\nprint(nama)\n```\n\nNantinya, kalau *code* itu dijalankan, bakal muncul *output* kayak gini:\n\n```\nInva\n```\n\n### 4. Operasi data\n\nYang terakhir tapi nggak kalah penting, kita bisa ngelakuin operasi data. Artinya, kita bisa ngasih perlakuan khusus ke data yang ada di dalam variabel tersebut. Misal, kalau kalian punya variabel yang isinya angka, kalian bebas ngelakuin penjumlahan, pengurangan, atau operasi aritmatika lainnya. Sebaliknya, kalau variabelnya berisi *string* (teks) kayak nama lengkap, kalian bisa mecah jadi nama depan dan belakang, atau sekadar ngubah hurufnya jadi kapital semua. \n\nTapi inget ya, variabel itu lumayan pemilih! Dia nggak mau sembarangan dioperasiin sama data yang beda jenis. Coba aja bayangin kalau kita jumlahin angka sama teks, misal `2 + 'semangka'`. Kira-kira hasilnya bakal jadi apa? Pasti kita aja bingung kan, apalagi komputernya! Hal aneh ini terjadi karena keduanya **nggak sejenis** alias punya **tipe data** yang beda, di mana yang satu berupa angka (`int`) dan satunya lagi berupa teks (`string`). Terus, **tipe data itu apa sih?**\n\n## Apa itu Tipe Data?\n\nSekali lagi, kita tanya Wikipedia dulu yuk buat definisi resminya.\n\n> … tipe data ialah klasifikasi data yang mengenalkan kompilator atau penerjemah bagaimana programmer bermaksud untuk menggunakan data.\n> [wikipedia](https:\u002F\u002Fid.wikipedia.org\u002Fwiki\u002FTipe_data)\n\nKalau tadi variabel diibaratkan sebagai wadah, maka tipe data itu ibarat **bentuk dan material** dari wadah tersebut. Secara logika, tiap wadah pasti didesain pakai material yang beda-beda sesuai dengan apa yang mau disimpen di dalamnya. Misalnya aja, kita nyimpen air di botol, dan nyimpen baju di koper. Kan nggak mungkin kebalik jadi nyimpen air di koper? 😅 Nah, dengan adanya tipe data ini, kita secara otomatis ngasih tahu komputer kalau suatu variabel cuma bisa dipakai buat nyimpen *specific data type*.\n\n## Macam-macam Tipe Data\n\nUmumnya, bahasa pemrograman ngenal dua jenis tipe data utama, yaitu **tipe data standar** dan **tipe data bentukan**. Tipe data standar ini biasanya udah jadi bawaan dari bahasa pemrogramannya itu sendiri. Beberapa contoh yang paling sering dipakai adalah:\n\n- `integer`: Buat nyimpen angka bulat (contoh: `1`, `2`, `-90`).\n- `float`: Buat nyimpen angka desimal (contoh: `2.5`, `3.14`, `-2.71`).\n- `char`: Buat nyimpen satu karakter doang (contoh: `'a'`, `'$'`, `'?'`).\n- `string`: Buat nyimpen huruf atau teks panjang (contoh: `\"a\"`, `\"ikan\"`, `\"Halo kawan\"`).\n- `byte`: Buat nyimpen data mentah kayak gambar atau *file*.\n- `boolean`: Buat nyimpen nilai logika, cuma ada `true` dan `false`.\n\nTerus, kadang ada juga beberapa varian lain yang tergantung dari spesifikasi bahasanya, misal:\n\n- `long`: Kayak `integer`, tapi kapasitasnya jauh lebih gede.\n- `double`: Mirip `float`, tapi angka di belakang komanya bisa lebih banyak (*high precision*).\n- `uint` atau `unsigned integer`: Angka bulat yang khusus buat nilai positif aja.\n- `array` atau `list`: Buat nyimpen banyak nilai dalam satu variabel, asalkan tipenya sama.\n- `pointer`: Tipe data *advance* buat nyimpen alamat *memory* dari variabel lain.\n\nSelain tipe bawaan, ada juga yang namanya tipe data bentukan. Sesuai namanya, tipe data ini **dibuat sendiri** sama *programmer* buat kebutuhan yang lebih spesifik. Biasanya, tipe ini merupakan gabungan dari beberapa tipe data standar yang beda-beda.\n\n## Kesimpulan\n\nIntinya, variabel dan tipe data itu fundamental banget di dunia pemrograman. Variabel mempermudah kita nyimpen dan memanipulasi data di dalam program, sementara tipe data nentuin jenis data apa aja yang bisa masuk. Penggabungan dua konsep ini bakal ngebantu banget biar *code* kita tetap efisien dan nggak gampang *error*. Gimana, udah makin paham kan bedanya *variable* dan *data type*? Kalau ada yang masih bingung, yuk diskusi di kolom komentar! Selamat berkoding ria 👋\n","- *Variable* itu wadah buat nyimpen data yang dikasih nama, supaya datanya bisa dipakai lagi pas dibutuhin.\n- Tiap data punya bentuknya sendiri (*data type*), dan bentuknya nentuin operasi apa yang boleh dilakukan ke data itu.\n- Tipe data standar yang paling sering ketemu: `integer`, `float`, `string`, `boolean`, dan `array`.","\u003Cp>Variabel itu ibarat “tokoh utama” di sebuah program. Nggak peduli bahasa pemrograman apa yang kalian pakai, pasti bakal ketemu sama konsep \u003Cem>variable\u003C\u002Fem>. Bisa dibilang, variabel itu inti dari pemrograman, soalnya dia yang bertanggung jawab buat nyimpen dan memanipulasi data.\u003C\u002Fp>\n\u003Ch2 id=\"apa-itu-variabel\">Apa itu Variabel?\u003C\u002Fh2>\n\u003Cp>Kita coba intip Wikipedia dulu buat tahu definisi formalnya nih.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>… variabel adalah lokasi penyimpanan dan terkait nama simbolis yang berisi beberapa kuantitas yang diketahui atau tidak diketahui atau informasi, nilai\n\u003Ca href=\"https:\u002F\u002Fid.wikipedia.org\u002Fwiki\u002FVariabel_(ilmu_komputer)\">wikipedia\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Nah, itu dia definisi formalnya. Agak ribet ya bacanya? Makanya, biar gampang, bayangin aja \u003Cem>variable\u003C\u002Fem> itu semacam \u003Cstrong>wadah\u003C\u002Fstrong> buat nyimpen \u003Cstrong>data\u003C\u002Fstrong> yang nantinya bisa kita pakai lagi di dalam program. Kalau diibaratkan di dunia nyata, variabel itu kayak botol minum, sedangkan datanya adalah air di dalamnya. Botol ini bisa kita isi air buat diminum kapan aja, dan bahkan kita bebas nambahin sirup atau gula buat ganti rasanya. Sama halnya dengan variabel, di mana kita bisa masukin data, ngeluarin, atau ngeganti isinya dengan data lain. Nggak cuma itu, variabel juga ngasih jalan buat kita buat memanipulasi data sesuai dengan \u003Cem>logic\u003C\u002Fem> yang kita mau.\u003C\u002Fp>\n\u003Ch2 id=\"hal-yang-bisa-dilakukan-dengan-variabel\">Hal yang Bisa Dilakukan dengan Variabel\u003C\u002Fh2>\n\u003Ch3 id=\"1-deklarasi-variabel\">1. Deklarasi variabel\u003C\u002Fh3>\n\u003Cp>Langkah pertama yang harus kita lakukan adalah deklarasi, yaitu proses &quot;pembuatan&quot; variabel. Di tahap ini, kita ngenalin ke komputer kalau ada “wadah” baru yang udah siap dipakai buat nyimpen data. Walaupun cara deklarasinya beda-beda di setiap bahasa pemrograman, satu hal yang pasti adalah variabel \u003Cstrong>harus punya nama\u003C\u002Fstrong> yang jelas. Selain itu, ada aturan penamaannya juga lho, dan tiap bahasa punya \u003Cem>style\u003C\u002Fem> masing-masing yang perlu diikuti. Oleh karena itu, hal yang paling penting adalah nama variabel itu harus punya arti dan gampang dibaca supaya nggak bikin bingung nantinya. Contohnya, kalau kalian mau nyimpen data umur seseorang, kasih aja nama variabelnya \u003Ccode>umur\u003C\u002Fcode>, jangan dibikin asal-asalan.\u003C\u002Fp>\n\u003Ch3 id=\"2-memasukkan-nilai-assignment\">2. Memasukkan nilai (\u003Cem>Assignment\u003C\u002Fem>)\u003C\u002Fh3>\n\u003Cp>Setelah wadahnya jadi, sekarang saatnya kita masukin isi ke dalamnya. Di dunia \u003Cem>programming\u003C\u002Fem>, proses ngisi nilai ke variabel ini sering disebut dengan \u003Cem>assignment\u003C\u002Fem>. Biasanya, kita pakai tanda sama dengan (\u003Ccode>=\u003C\u002Fcode>) buat ngelakuin proses ini. Secara penulisan, nama variabel ditaruh di sebelah kiri, sedangkan nilai yang mau dimasukin ditaruh di sebelah kanan. Aturannya mirip banget kan sama pelajaran matematika yang sering kita temui?\u003C\u002Fp>\n\u003Cp>Contohnya gini:\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=\"nama%20%3D%20%22Inva%22%0API%20%3D%203.14%0Ar%20%3D%2010\" 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\">nama \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"Inva\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">PI\u003C\u002Fspan>\u003Cspan style=\"color:#F97583\"> =\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> 3.14\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#E1E4E8\">r \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#79B8FF\"> 10\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Eits, tapi perlu diinget kalau nggak semua bahasa pakai tanda \u003Ccode>=\u003C\u002Fcode>. Ada juga bahasa yang pakai tanda \u003Ccode>:=\u003C\u002Fcode> kayak Pascal atau Go, jadi pastikan kalian cek dokumentasi bahasanya ya.\u003C\u002Fp>\n\u003Ch3 id=\"3-mengakses-nilai\">3. Mengakses nilai\u003C\u002Fh3>\n\u003Cp>Setelah wadahnya berhasil diisi, tentunya sekarang kita bisa ambil datanya dong. Buat ngakses nilai di dalam variabel, kita cuma perlu \u003Cstrong>manggil nama\u003C\u002Fstrong> variabel tersebut. Gampang banget, kan? Contoh nih, kalau kita mau ngakses variabel \u003Ccode>nama\u003C\u002Fcode> terus mencetaknya ke layar:\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=\"nama%20%3D%20%22Inva%22%0Aprint(nama)\" 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\">nama \u003C\u002Fspan>\u003Cspan style=\"color:#F97583\">=\u003C\u002Fspan>\u003Cspan style=\"color:#9ECBFF\"> \"Inva\"\u003C\u002Fspan>\u003C\u002Fspan>\n\u003Cspan class=\"line\">\u003Cspan style=\"color:#79B8FF\">print\u003C\u002Fspan>\u003Cspan style=\"color:#E1E4E8\">(nama)\u003C\u002Fspan>\u003C\u002Fspan>\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nantinya, kalau \u003Cem>code\u003C\u002Fem> itu dijalankan, bakal muncul \u003Cem>output\u003C\u002Fem> kayak gini:\u003C\u002Fp>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black\u002F40 inline-block\">\u003C\u002Fspan>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C\u002Fspan>\n    \u003C\u002Fdiv>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"Inva\" title=\"Salin kode\">\n      \u003Csvg class=\"w-3.5 h-3.5 copy-icon-svg\" fill=\"none\" stroke=\"currentColor\" viewBox=\"0 0 24 24\">\n        \u003Cpath stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"2\" d=\"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z\">\u003C\u002Fpath>\n      \u003C\u002Fsvg>\n      \u003Cspan class=\"copy-text\">Copy\u003C\u002Fspan>\n    \u003C\u002Fbutton>\n  \u003C\u002Fdiv>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>Inva\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch3 id=\"4-operasi-data\">4. Operasi data\u003C\u002Fh3>\n\u003Cp>Yang terakhir tapi nggak kalah penting, kita bisa ngelakuin operasi data. Artinya, kita bisa ngasih perlakuan khusus ke data yang ada di dalam variabel tersebut. Misal, kalau kalian punya variabel yang isinya angka, kalian bebas ngelakuin penjumlahan, pengurangan, atau operasi aritmatika lainnya. Sebaliknya, kalau variabelnya berisi \u003Cem>string\u003C\u002Fem> (teks) kayak nama lengkap, kalian bisa mecah jadi nama depan dan belakang, atau sekadar ngubah hurufnya jadi kapital semua. \u003C\u002Fp>\n\u003Cp>Tapi inget ya, variabel itu lumayan pemilih! Dia nggak mau sembarangan dioperasiin sama data yang beda jenis. Coba aja bayangin kalau kita jumlahin angka sama teks, misal \u003Ccode>2 + &#39;semangka&#39;\u003C\u002Fcode>. Kira-kira hasilnya bakal jadi apa? Pasti kita aja bingung kan, apalagi komputernya! Hal aneh ini terjadi karena keduanya \u003Cstrong>nggak sejenis\u003C\u002Fstrong> alias punya \u003Cstrong>tipe data\u003C\u002Fstrong> yang beda, di mana yang satu berupa angka (\u003Ccode>int\u003C\u002Fcode>) dan satunya lagi berupa teks (\u003Ccode>string\u003C\u002Fcode>). Terus, \u003Cstrong>tipe data itu apa sih?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Ch2 id=\"apa-itu-tipe-data\">Apa itu Tipe Data?\u003C\u002Fh2>\n\u003Cp>Sekali lagi, kita tanya Wikipedia dulu yuk buat definisi resminya.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>… tipe data ialah klasifikasi data yang mengenalkan kompilator atau penerjemah bagaimana programmer bermaksud untuk menggunakan data.\n\u003Ca href=\"https:\u002F\u002Fid.wikipedia.org\u002Fwiki\u002FTipe_data\">wikipedia\u003C\u002Fa>\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Kalau tadi variabel diibaratkan sebagai wadah, maka tipe data itu ibarat \u003Cstrong>bentuk dan material\u003C\u002Fstrong> dari wadah tersebut. Secara logika, tiap wadah pasti didesain pakai material yang beda-beda sesuai dengan apa yang mau disimpen di dalamnya. Misalnya aja, kita nyimpen air di botol, dan nyimpen baju di koper. Kan nggak mungkin kebalik jadi nyimpen air di koper? 😅 Nah, dengan adanya tipe data ini, kita secara otomatis ngasih tahu komputer kalau suatu variabel cuma bisa dipakai buat nyimpen \u003Cem>specific data type\u003C\u002Fem>.\u003C\u002Fp>\n\u003Ch2 id=\"macam-macam-tipe-data\">Macam-macam Tipe Data\u003C\u002Fh2>\n\u003Cp>Umumnya, bahasa pemrograman ngenal dua jenis tipe data utama, yaitu \u003Cstrong>tipe data standar\u003C\u002Fstrong> dan \u003Cstrong>tipe data bentukan\u003C\u002Fstrong>. Tipe data standar ini biasanya udah jadi bawaan dari bahasa pemrogramannya itu sendiri. Beberapa contoh yang paling sering dipakai adalah:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>integer\u003C\u002Fcode>: Buat nyimpen angka bulat (contoh: \u003Ccode>1\u003C\u002Fcode>, \u003Ccode>2\u003C\u002Fcode>, \u003Ccode>-90\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>float\u003C\u002Fcode>: Buat nyimpen angka desimal (contoh: \u003Ccode>2.5\u003C\u002Fcode>, \u003Ccode>3.14\u003C\u002Fcode>, \u003Ccode>-2.71\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>char\u003C\u002Fcode>: Buat nyimpen satu karakter doang (contoh: \u003Ccode>&#39;a&#39;\u003C\u002Fcode>, \u003Ccode>&#39;$&#39;\u003C\u002Fcode>, \u003Ccode>&#39;?&#39;\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>string\u003C\u002Fcode>: Buat nyimpen huruf atau teks panjang (contoh: \u003Ccode>&quot;a&quot;\u003C\u002Fcode>, \u003Ccode>&quot;ikan&quot;\u003C\u002Fcode>, \u003Ccode>&quot;Halo kawan&quot;\u003C\u002Fcode>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>byte\u003C\u002Fcode>: Buat nyimpen data mentah kayak gambar atau \u003Cem>file\u003C\u002Fem>.\u003C\u002Fli>\n\u003Cli>\u003Ccode>boolean\u003C\u002Fcode>: Buat nyimpen nilai logika, cuma ada \u003Ccode>true\u003C\u002Fcode> dan \u003Ccode>false\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Terus, kadang ada juga beberapa varian lain yang tergantung dari spesifikasi bahasanya, misal:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>long\u003C\u002Fcode>: Kayak \u003Ccode>integer\u003C\u002Fcode>, tapi kapasitasnya jauh lebih gede.\u003C\u002Fli>\n\u003Cli>\u003Ccode>double\u003C\u002Fcode>: Mirip \u003Ccode>float\u003C\u002Fcode>, tapi angka di belakang komanya bisa lebih banyak (\u003Cem>high precision\u003C\u002Fem>).\u003C\u002Fli>\n\u003Cli>\u003Ccode>uint\u003C\u002Fcode> atau \u003Ccode>unsigned integer\u003C\u002Fcode>: Angka bulat yang khusus buat nilai positif aja.\u003C\u002Fli>\n\u003Cli>\u003Ccode>array\u003C\u002Fcode> atau \u003Ccode>list\u003C\u002Fcode>: Buat nyimpen banyak nilai dalam satu variabel, asalkan tipenya sama.\u003C\u002Fli>\n\u003Cli>\u003Ccode>pointer\u003C\u002Fcode>: Tipe data \u003Cem>advance\u003C\u002Fem> buat nyimpen alamat \u003Cem>memory\u003C\u002Fem> dari variabel lain.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Selain tipe bawaan, ada juga yang namanya tipe data bentukan. Sesuai namanya, tipe data ini \u003Cstrong>dibuat sendiri\u003C\u002Fstrong> sama \u003Cem>programmer\u003C\u002Fem> buat kebutuhan yang lebih spesifik. Biasanya, tipe ini merupakan gabungan dari beberapa tipe data standar yang beda-beda.\u003C\u002Fp>\n\u003Ch2 id=\"kesimpulan\">Kesimpulan\u003C\u002Fh2>\n\u003Cp>Intinya, variabel dan tipe data itu fundamental banget di dunia pemrograman. Variabel mempermudah kita nyimpen dan memanipulasi data di dalam program, sementara tipe data nentuin jenis data apa aja yang bisa masuk. Penggabungan dua konsep ini bakal ngebantu banget biar \u003Cem>code\u003C\u002Fem> kita tetap efisien dan nggak gampang \u003Cem>error\u003C\u002Fem>. Gimana, udah makin paham kan bedanya \u003Cem>variable\u003C\u002Fem> dan \u003Cem>data type\u003C\u002Fem>? Kalau ada yang masih bingung, yuk diskusi di kolom komentar! Selamat berkoding ria 👋\u003C\u002Fp>\n","\u003Cul>\n\u003Cli>\u003Cem>Variable\u003C\u002Fem> itu wadah buat nyimpen data yang dikasih nama, supaya datanya bisa dipakai lagi pas dibutuhin.\u003C\u002Fli>\n\u003Cli>Tiap data punya bentuknya sendiri (\u003Cem>data type\u003C\u002Fem>), dan bentuknya nentuin operasi apa yang boleh dilakukan ke data itu.\u003C\u002Fli>\n\u003Cli>Tipe data standar yang paling sering ketemu: \u003Ccode>integer\u003C\u002Fcode>, \u003Ccode>float\u003C\u002Fcode>, \u003Ccode>string\u003C\u002Fcode>, \u003Ccode>boolean\u003C\u002Fcode>, dan \u003Ccode>array\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n",[183,200,213,226,239,259],{"id":184,"title":185,"title_en":21,"slug":186,"excerpt":187,"excerpt_en":21,"has_translation":15,"published_at":188,"reading_time":93,"hidden_from_listing":15,"tags":189,"thumbnail_image":21,"og_image":191,"series":192,"authors":197},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",[157,190],"string","\u002Fog\u002Fpython-strings.png",{"id":193,"title":194,"title_en":195,"slug":196},30,"Koleksi dan String","Collections and Strings","python-collections",[198],{"authors_id":199},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},{"id":201,"title":202,"title_en":21,"slug":203,"excerpt":204,"excerpt_en":21,"has_translation":15,"published_at":205,"reading_time":93,"hidden_from_listing":15,"tags":206,"thumbnail_image":21,"og_image":208,"series":209,"authors":210},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",[157,207],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":193,"title":194,"title_en":195,"slug":196},[211],{"authors_id":212},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},{"id":214,"title":215,"title_en":21,"slug":216,"excerpt":217,"excerpt_en":21,"has_translation":15,"published_at":218,"reading_time":93,"hidden_from_listing":15,"tags":219,"thumbnail_image":21,"og_image":221,"series":222,"authors":223},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",[157,220],"set","\u002Fog\u002Fpython-sets.png",{"id":193,"title":194,"title_en":195,"slug":196},[224],{"authors_id":225},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},{"id":227,"title":228,"title_en":21,"slug":229,"excerpt":230,"excerpt_en":21,"has_translation":15,"published_at":231,"reading_time":93,"hidden_from_listing":15,"tags":232,"thumbnail_image":21,"og_image":234,"series":235,"authors":236},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",[157,233],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":193,"title":194,"title_en":195,"slug":196},[237],{"authors_id":238},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},{"id":240,"title":241,"title_en":242,"slug":243,"excerpt":244,"excerpt_en":245,"has_translation":12,"published_at":246,"reading_time":14,"hidden_from_listing":15,"tags":247,"thumbnail_image":21,"og_image":254,"series":255,"authors":256},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",[248,249,250,251,252,253],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":106,"title":35,"title_en":36,"slug":37},[257],{"authors_id":258},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},{"id":260,"title":261,"title_en":262,"slug":263,"excerpt":264,"excerpt_en":265,"has_translation":12,"published_at":266,"reading_time":93,"hidden_from_listing":15,"tags":267,"thumbnail_image":21,"og_image":274,"series":275,"authors":276},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",[268,269,270,271,272,273],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":106,"title":35,"title_en":36,"slug":37},[277],{"authors_id":278},{"id":163,"name":164,"slug":165,"role":166,"profile_picture":21},[280,283,286,289,292,295,298,301,304],{"text":281,"depth":113,"id":282},"Apa itu Variabel?","apa-itu-variabel",{"text":284,"depth":113,"id":285},"Hal yang Bisa Dilakukan dengan Variabel","hal-yang-bisa-dilakukan-dengan-variabel",{"text":287,"depth":139,"id":288},"1. Deklarasi variabel","1-deklarasi-variabel",{"text":290,"depth":139,"id":291},"2. Memasukkan nilai (Assignment)","2-memasukkan-nilai-assignment",{"text":293,"depth":139,"id":294},"3. Mengakses nilai","3-mengakses-nilai",{"text":296,"depth":139,"id":297},"4. Operasi data","4-operasi-data",{"text":299,"depth":113,"id":300},"Apa itu Tipe Data?","apa-itu-tipe-data",{"text":302,"depth":113,"id":303},"Macam-macam Tipe Data","macam-macam-tipe-data",{"text":305,"depth":113,"id":306},"Kesimpulan","kesimpulan",1793295835475]