[{"data":1,"prerenderedAt":285},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-mengenal-tipe-data-integer-pada-java-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":155,"renderedTakeaway":156,"latestArticles":157,"toc":256},{"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":148,"body_locale":151,"available_locales":152,"body":154,"takeway":21,"prerequisite":21},57,"Mengenal Tipe Data Integer pada Java","Getting to Know the Integer Data Type in Java","mengenal-tipe-data-integer-pada-java","Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)","Integer, as the name suggests, is a data type that only holds whole numbers (negative, zero, and positive).","2023-01-13T00:00:00.000Z",6,[83,84,85],"java","tipe-data","integer","\u002Fog\u002Fmengenal-tipe-data-integer-pada-java.png",{"id":88,"title":89,"title_en":90,"slug":91,"description":92,"description_en":93,"articles":94,"children_series":137,"parent_series":138},22,"Variabel, Tipe Data, dan Operasi","Variables, Types, and Operations","java-variabel-tipe-data","Tipe data di Java harus jelas dari awal. Kita bahas tipe data dasar, plus integer dan float lebih dalam.","In Java the type has to be clear from the start. We go through the primitive types, then integers and floats in more depth.",[95,116,121],{"id":96,"title":97,"title_en":98,"slug":99,"excerpt":100,"excerpt_en":101,"has_translation":12,"published_at":102,"reading_time":103,"hidden_from_listing":15,"tags":104,"thumbnail_image":21,"og_image":107,"series":108,"authors":109},56,"Tipe Data pada Bahasa Java","Data Types in the Java Language","tipe-data-pada-bahasa-java","Tipe data adalah atribut yang menempel pada sebuah data untuk menentukan perlakuan terhadap data tersebut.","A data type is an attribute that sticks to a piece of data and decides how that data can be treated.","2022-12-29T00:00:00.000Z",3,[83,84,105,106],"konsep","dasar","\u002Fog\u002Ftipe-data-pada-bahasa-java.png",{"id":88,"title":89,"title_en":90,"slug":91},[110],{"authors_id":111},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"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":117,"authors":118},{"id":88,"title":89,"title_en":90,"slug":91},[119],{"authors_id":120},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":122,"title":123,"title_en":124,"slug":125,"excerpt":126,"excerpt_en":127,"has_translation":12,"published_at":128,"reading_time":129,"hidden_from_listing":15,"tags":130,"thumbnail_image":21,"og_image":132,"series":133,"authors":134},58,"Mengenal Tipe Data Float pada Java","Getting to Know the Float Data Type in Java","mengenal-tipe-data-float-pada-java","Float atau floating point merupakan tipe data yang dapat menampung literal bilangan desimal dan pecahan.","Float, or floating point, is a data type that holds decimal and fractional number literals.","2023-02-15T00:00:00.000Z",4,[83,84,131],"float","\u002Fog\u002Fmengenal-tipe-data-float-pada-java.png",{"id":88,"title":89,"title_en":90,"slug":91},[135],{"authors_id":136},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},[],{"id":139,"title":60,"title_en":61,"slug":62,"parent_series":140,"children_series":141},13,{"id":112,"title":48,"title_en":48,"slug":49},[142,147],{"id":143,"title":144,"title_en":145,"slug":146,"cover_image":21},21,"Berkenalan dengan Java","Getting Started with Java","java-intro",{"id":88,"title":89,"title_en":90,"slug":91,"cover_image":21},[149],{"authors_id":150},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},"id",[153,151],"en","Pada kesempatan kali ini kita akan membahas mengenai tipe data integer yang dapat menampung bilangan bulat.\n\n## Tentang Tipe Data Integer\n\nInteger, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)\n\n### Sub Tipe data Integer\n\nPada Java dan bahasa pemrograman pada umumnya tipe data integer ini dibagi menjadi 4 sub tipe berdasarkan panjang memorinya. Diantaranya adalah:\n\n| Tipe Data | Ukuran          | Nilai                                                       | Bentuk Objek |\n| --------- | --------------- | ----------------------------------------------------------- | ------------ |\n| byte      | 8 bit (1 byte)  | -128 sampai 127                                             | Byte         |\n| short     | 16 bit (2 byte) | -32.768 sampai 32.767                                       | Short        |\n| int       | 32 bit (4 byte) | -2.147.483.648 sampai 2.147.483.647                         | Integer      |\n| long      | 64 bit (8 byte) | -9.223.372.036.854.775.808 sampai 9.223.372.036.854.775.807 | Long         |\n\nKarena semua di Java adalah Objek, tiap primitif juga punya bentuk padanan objeknya — bisa dilihat pada tabel di atas. Cara membedakannya gampang, tinggal lihat huruf awalnya saja. Kalau diawali kapital berarti itu objek.\n\nUntuk penggunaannya sendiri silahkan disesuaikan dengan kebutuhan. Pada kebanyakan kasus, tipe `int` paling sering digunakan, namun jika butuh angka yang sangat besar bisa digunakan `long`. Di bawah itu (`short`, dan `byte`) cukup jarang dijumpai.\n\n### Literal Integer\n\nLiteral yang diterima oleh tipe data integer adalah **angka bulat**. Angka ini dapat dituliskan dalam berbagai format, diantaranya:\n\n- **Desimal (basis 10)** — Angka desimal biasa, tidak ada format spesial. Contoh: 1, 95, -29, 1000\n- **Oktal (basis 8)** — Format diawali angka `0`. Contoh: 01, 0137, -035, 01750\n- **Heksadesimal (basis 16)** — Format diawali karakter `0x`. Contoh: 0x1, 0x5f, -0x1d, 0x3e8\n- **Biner (basis 2)** — Format diawali karakter `0b`. Contoh: 0b1, 0b1011111, -0b11101, 0b1111101000\n\nSupaya lebih kebayang, kita akan coba buat contoh kode programnya.\n\n```java\npublic class TipeDataInteger{\n  public static void main(String[] args) {\n    int decimal = 250;\n    int octal = 0372;\n    int hexadecimal = 0xfa;\n    int binary = 0b11111010;\n\n    System.out.println(decimal);\n    System.out.println(octal);\n    System.out.println(hexadecimal);\n    System.out.println(binary);\n  }\n}\n```\n\nSekarang, kalau kita jalankan, outputnya akan seperti ini:\n\n```\n250\n250\n250\n250\n```\n\nBisa kita lihat, ketika kita cetak isi dari variabel semuanya sama yaitu 250. Ini karena mau apapun format bilangannya, di dalam memori pasti disimpan dalam 1 bentuk yang sama, sehingga luarannya juga otomatis sama.\n\nJika ingin meng-output-kan angka sesuai format yang diinginkan, kita bisa menggunakan `printf` dengan template yang sesuai. Contohya:\n\n```java\npublic class TipeDataInteger{\n  public static void main(String[] args) {\n    int number = 250;\n\n    System.out.printf(\"desimal    : %d\\n\", number);\n    System.out.printf(\"octal      : %o\\n\", number);\n    System.out.printf(\"hexadesimal: %x\\n\", number);\n  }\n}\n```\n\nCoba jalankan dan lihat hasilnya.\n\n### Menggunakan Karakter Pemisah\n\nLiteral integer pada Java juga memungkinkan kita menambahkan karakter pemisah berupa underscore (`_`). Karakter pemisah ini bisa membantu ketika kita mendeklarasikan nilai yang besar. Contohnya seperti ini:\n\n```java\nint satuJuta   = 1_000_000;     \u002F\u002F sama seperti 1000000\nint satuMiliar = 1_000_000_000; \u002F\u002F sama seperti 1000000000\n\nint seribu = 1_00_0; \u002F\u002F valid namun tidak disarankan untuk alasan keterbacaan\n```\n\n## Operasi Tipe Data Integer\n\n### Operasi Aritmatika\n\nSebagai tipe data numerik, integer memiliki operasi yang kurang lebih sama seperti operasi bilangan pada umumnya. Termasuk juga ada perkalian, pembagian, penjumlahan, dan pengurangan.\n\nHal yang spesial mungkin ada pada operasi pembagiannya. Pada Java, apabila ada variabel atau literal bertipe integer dibagi dengan integer lainnya, maka hasilnya akan otomatis dibulatkan.\n\nIni disebabkan karena operasi pembagian memiliki kemungkinan menghasilkan bilangan pecahan yang dalam Java bertipe **float**. Nah, untuk menghindari perubahan tipe data ini, maka hasil yang keluar harus dibulatkan agar tetap bertipe integer.\n\nContohnya:\n\n```java\nint a = 10;\nint b = 3;\nint c = a \u002F b; \u002F\u002F nilai c adalah 3\nint d = 6 \u002F 5; \u002F\u002F nilai d adalah 1\n```\n\nSatu lagi, Java juga mengenal operasi **modulus** yang ditandai dengan operator `%`. Operasi ini digunakan untuk mendapatkan sisa bagi 2 bilangan.\n\nContohnya:\n\n```java\nint a = 10;\nint b = 3;\nint c = a % b; \u002F\u002F nilai c adalah 1\nint d = 6 % 5; \u002F\u002F nilai d adalah 1\n```\n\nSama seperti di matematika, proses perhitungan bilangan juga memiliki urutan. Urutan ini mengikuti aturan yang ada di matematika yaitu:\n\n1. Kurung terdalam\n2. Kali \u002F bagi\n3. Tambah \u002F kurang\n4. Operasi dari kiri\n\n### Assignment Aritmatika\n\nSelanjutnya ada assignment aritmatika, alias operasi assignment yang disatukan dengan aritmatika.\n\nMisal kita punya kode seperti ini:\n\n```java\nint a = 10;\na = a + 20; \u002F\u002F nilai a: 10 + 20 = 30\na = a * 5;  \u002F\u002F nilai a: 30 * 5  = 150\na = a \u002F 2;  \u002F\u002F nilai a: 150 \u002F 2 = 75\n```\n\nOperasi tersebut dapat disingkat menjadi seperti ini:\n\n```java\nint a = 10;\na += 20; \u002F\u002F nilai a: 10 + 20 = 30\na *= 5;  \u002F\u002F nilai a: 30 * 5  = 150\na \u002F= 2;  \u002F\u002F nilai a: 150 \u002F 2 = 75\n```\n\nBagaimana? lebih singkat kan. Kalau kita coba cetak nilai `a` maka hasilnya pasti sama, baik menggunakan versi lengkap (atas) maupun assignment aritmatika (bawah).\n\n### Unary Operator\n\nTerakhir ada unary operator. Kalau sebelumnya tiap operasi melibatkan setidaknya 2 literal atau variabel, dengan unary operator ini kita hanya perlu 1 variabel saja.\n\nAda 4 jenis unary operator untuk tipe Integer, diantaranya:\n\n- Pre-increment (`++a`)\n- Post-increment (`a++`)\n- Pre-decrement (`--a`)\n- Post-decrement (`a--`)\n\nFungsinya sebenarnya sederhana, untuk menambah atau mengurangi variabel dengan angka 1. Kalau kita jabarkan, 4 baris kode di bawah ini punya fungsi yang sama.\n\n```java\na = a + 1; \u002F\u002F versi lengkap\na += 1;    \u002F\u002F lebih sederhana\n++a;       \u002F\u002F lebih sangat sederhana\na++;       \u002F\u002F sama seperti di atas\n```\n\nBelum percaya? Coba jalankan kode ini:\n\n```java\npublic class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 10;\n    int b = 10;\n\n    a++; \u002F\u002F atau ++a\n    b--; \u002F\u002F atau --b\n\n    System.out.println(a);\n    System.out.println(b);\n  }\n}\n```\n\nJika dijalankan pasti akan keluar angka 11 dan 9.\n\nNah, mungkin muncul pertanyaan. Kalau fungsinya sama kenapa harus ada 2 versi post dan pre?\n\nSekilas jika berdiri sendiri memang fungsinya sama yaitu menambah atau mengurang bilangan. Tetapi, sebenarnya selain menambah dan mengurang, operasi ini juga akan mengembalikan nilai.\n\nNah pre dan post di sini menunjukkan kapan nilai itu dikembalikan. Pada operasi **pre** nilai variabel terkini akan dioperasikan dulu sebelum dikembalikan. Sedangkan pada operasi **post** nilai terkini akan dikembalikan dulu sebelum dioperasikan.\n\nSupaya tidak bingung, kita coba lihat contoh kodenya.\n\n```java\npublic class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 1;\n    System.out.println(++a); \u002F\u002F output: 2\n    System.out.println(a);   \u002F\u002F output: 2\n\n    int b = 1;\n    System.out.println(b++); \u002F\u002F output: 1\n    System.out.println(b);   \u002F\u002F output: 2\n  }\n}\n```\n\nMungkin kalau kita jabarkan, kode di atas sama seperti ini:\n\n```java\npublic class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 1;\n    a += 1;\n    System.out.println(a); \u002F\u002F output: 2\n    System.out.println(a); \u002F\u002F output: 2\n\n    int b = 1;\n    System.out.println(b); \u002F\u002F output: 1\n    b += 1;\n    System.out.println(b); \u002F\u002F output: 2\n  }\n}\n```\n\nSemoga dapat konsepnya lah ya.\n\n## Selanjutnya\n\nPembahasan mengenai integer ini cukup banyak ya. Tapi secara umum tipe data numerik cukup sederhana sebenarnya, bahkan operasi di atas semuanya bisa kita gunakan pada untuk tipe data float.\n\nBahkan beberapa dari operasi di atas ada juga yang bisa dipakai untuk tipe data String. Karena itu, mungkin pada kesempatan selanjutnya akan ada banyak bagian yang merujuk ke artikel ini.\n\nPada kesempatan selanjutnya kita masih akan membahas tentang tipe data numerik yaitu [float pada bahasa Java](\u002Fp\u002Fmengenal-tipe-data-float-pada-java).\n\nSemoga bermanfaat, selamat berkoding ria 👋\n","\u003Cp>Pada kesempatan kali ini kita akan membahas mengenai tipe data integer yang dapat menampung bilangan bulat.\u003C\u002Fp>\n\u003Ch2 id=\"tentang-tipe-data-integer\">Tentang Tipe Data Integer\u003C\u002Fh2>\n\u003Cp>Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)\u003C\u002Fp>\n\u003Ch3 id=\"sub-tipe-data-integer\">Sub Tipe data Integer\u003C\u002Fh3>\n\u003Cp>Pada Java dan bahasa pemrograman pada umumnya tipe data integer ini dibagi menjadi 4 sub tipe berdasarkan panjang memorinya. Diantaranya adalah:\u003C\u002Fp>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Tipe Data\u003C\u002Fth>\n\u003Cth>Ukuran\u003C\u002Fth>\n\u003Cth>Nilai\u003C\u002Fth>\n\u003Cth>Bentuk Objek\u003C\u002Fth>\n\u003C\u002Ftr>\n\u003C\u002Fthead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>byte\u003C\u002Ftd>\n\u003Ctd>8 bit (1 byte)\u003C\u002Ftd>\n\u003Ctd>-128 sampai 127\u003C\u002Ftd>\n\u003Ctd>Byte\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>short\u003C\u002Ftd>\n\u003Ctd>16 bit (2 byte)\u003C\u002Ftd>\n\u003Ctd>-32.768 sampai 32.767\u003C\u002Ftd>\n\u003Ctd>Short\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>int\u003C\u002Ftd>\n\u003Ctd>32 bit (4 byte)\u003C\u002Ftd>\n\u003Ctd>-2.147.483.648 sampai 2.147.483.647\u003C\u002Ftd>\n\u003Ctd>Integer\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003Ctr>\n\u003Ctd>long\u003C\u002Ftd>\n\u003Ctd>64 bit (8 byte)\u003C\u002Ftd>\n\u003Ctd>-9.223.372.036.854.775.808 sampai 9.223.372.036.854.775.807\u003C\u002Ftd>\n\u003Ctd>Long\u003C\u002Ftd>\n\u003C\u002Ftr>\n\u003C\u002Ftbody>\u003C\u002Ftable>\n\u003Cp>Karena semua di Java adalah Objek, tiap primitif juga punya bentuk padanan objeknya — bisa dilihat pada tabel di atas. Cara membedakannya gampang, tinggal lihat huruf awalnya saja. Kalau diawali kapital berarti itu objek.\u003C\u002Fp>\n\u003Cp>Untuk penggunaannya sendiri silahkan disesuaikan dengan kebutuhan. Pada kebanyakan kasus, tipe \u003Ccode>int\u003C\u002Fcode> paling sering digunakan, namun jika butuh angka yang sangat besar bisa digunakan \u003Ccode>long\u003C\u002Fcode>. Di bawah itu (\u003Ccode>short\u003C\u002Fcode>, dan \u003Ccode>byte\u003C\u002Fcode>) cukup jarang dijumpai.\u003C\u002Fp>\n\u003Ch3 id=\"literal-integer\">Literal Integer\u003C\u002Fh3>\n\u003Cp>Literal yang diterima oleh tipe data integer adalah \u003Cstrong>angka bulat\u003C\u002Fstrong>. Angka ini dapat dituliskan dalam berbagai format, diantaranya:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Desimal (basis 10)\u003C\u002Fstrong> — Angka desimal biasa, tidak ada format spesial. Contoh: 1, 95, -29, 1000\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Oktal (basis 8)\u003C\u002Fstrong> — Format diawali angka \u003Ccode>0\u003C\u002Fcode>. Contoh: 01, 0137, -035, 01750\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Heksadesimal (basis 16)\u003C\u002Fstrong> — Format diawali karakter \u003Ccode>0x\u003C\u002Fcode>. Contoh: 0x1, 0x5f, -0x1d, 0x3e8\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Biner (basis 2)\u003C\u002Fstrong> — Format diawali karakter \u003Ccode>0b\u003C\u002Fcode>. Contoh: 0b1, 0b1011111, -0b11101, 0b1111101000\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Supaya lebih kebayang, kita akan coba buat contoh kode programnya.\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\">JAVA\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=\"public%20class%20TipeDataInteger%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20decimal%20%3D%20250%3B%0A%20%20%20%20int%20octal%20%3D%200372%3B%0A%20%20%20%20int%20hexadecimal%20%3D%200xfa%3B%0A%20%20%20%20int%20binary%20%3D%200b11111010%3B%0A%0A%20%20%20%20System.out.println(decimal)%3B%0A%20%20%20%20System.out.println(octal)%3B%0A%20%20%20%20System.out.println(hexadecimal)%3B%0A%20%20%20%20System.out.println(binary)%3B%0A%20%20%7D%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\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>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int decimal = 250;\n    int octal = 0372;\n    int hexadecimal = 0xfa;\n    int binary = 0b11111010;\n\n    System.out.println(decimal);\n    System.out.println(octal);\n    System.out.println(hexadecimal);\n    System.out.println(binary);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Sekarang, kalau kita jalankan, outputnya akan 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\">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=\"250%0A250%0A250%0A250\" 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>250\n250\n250\n250\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Bisa kita lihat, ketika kita cetak isi dari variabel semuanya sama yaitu 250. Ini karena mau apapun format bilangannya, di dalam memori pasti disimpan dalam 1 bentuk yang sama, sehingga luarannya juga otomatis sama.\u003C\u002Fp>\n\u003Cp>Jika ingin meng-output-kan angka sesuai format yang diinginkan, kita bisa menggunakan \u003Ccode>printf\u003C\u002Fcode> dengan template yang sesuai. Contohya:\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\">JAVA\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=\"public%20class%20TipeDataInteger%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20number%20%3D%20250%3B%0A%0A%20%20%20%20System.out.printf(%22desimal%20%20%20%20%3A%20%25d%5Cn%22%2C%20number)%3B%0A%20%20%20%20System.out.printf(%22octal%20%20%20%20%20%20%3A%20%25o%5Cn%22%2C%20number)%3B%0A%20%20%20%20System.out.printf(%22hexadesimal%3A%20%25x%5Cn%22%2C%20number)%3B%0A%20%20%7D%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\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>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int number = 250;\n\n    System.out.printf(\"desimal    : %d\\n\", number);\n    System.out.printf(\"octal      : %o\\n\", number);\n    System.out.printf(\"hexadesimal: %x\\n\", number);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Coba jalankan dan lihat hasilnya.\u003C\u002Fp>\n\u003Ch3 id=\"menggunakan-karakter-pemisah\">Menggunakan Karakter Pemisah\u003C\u002Fh3>\n\u003Cp>Literal integer pada Java juga memungkinkan kita menambahkan karakter pemisah berupa underscore (\u003Ccode>_\u003C\u002Fcode>). Karakter pemisah ini bisa membantu ketika kita mendeklarasikan nilai yang besar. Contohnya 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\">JAVA\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=\"int%20satuJuta%20%20%20%3D%201_000_000%3B%20%20%20%20%20%2F%2F%20sama%20seperti%201000000%0Aint%20satuMiliar%20%3D%201_000_000_000%3B%20%2F%2F%20sama%20seperti%201000000000%0A%0Aint%20seribu%20%3D%201_00_0%3B%20%2F%2F%20valid%20namun%20tidak%20disarankan%20untuk%20alasan%20keterbacaan\" 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>int satuJuta   = 1_000_000;     \u002F\u002F sama seperti 1000000\nint satuMiliar = 1_000_000_000; \u002F\u002F sama seperti 1000000000\n\nint seribu = 1_00_0; \u002F\u002F valid namun tidak disarankan untuk alasan keterbacaan\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch2 id=\"operasi-tipe-data-integer\">Operasi Tipe Data Integer\u003C\u002Fh2>\n\u003Ch3 id=\"operasi-aritmatika\">Operasi Aritmatika\u003C\u002Fh3>\n\u003Cp>Sebagai tipe data numerik, integer memiliki operasi yang kurang lebih sama seperti operasi bilangan pada umumnya. Termasuk juga ada perkalian, pembagian, penjumlahan, dan pengurangan.\u003C\u002Fp>\n\u003Cp>Hal yang spesial mungkin ada pada operasi pembagiannya. Pada Java, apabila ada variabel atau literal bertipe integer dibagi dengan integer lainnya, maka hasilnya akan otomatis dibulatkan.\u003C\u002Fp>\n\u003Cp>Ini disebabkan karena operasi pembagian memiliki kemungkinan menghasilkan bilangan pecahan yang dalam Java bertipe \u003Cstrong>float\u003C\u002Fstrong>. Nah, untuk menghindari perubahan tipe data ini, maka hasil yang keluar harus dibulatkan agar tetap bertipe integer.\u003C\u002Fp>\n\u003Cp>Contohnya:\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\">JAVA\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=\"int%20a%20%3D%2010%3B%0Aint%20b%20%3D%203%3B%0Aint%20c%20%3D%20a%20%2F%20b%3B%20%2F%2F%20nilai%20c%20adalah%203%0Aint%20d%20%3D%206%20%2F%205%3B%20%2F%2F%20nilai%20d%20adalah%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\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>int a = 10;\nint b = 3;\nint c = a \u002F b; \u002F\u002F nilai c adalah 3\nint d = 6 \u002F 5; \u002F\u002F nilai d adalah 1\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Satu lagi, Java juga mengenal operasi \u003Cstrong>modulus\u003C\u002Fstrong> yang ditandai dengan operator \u003Ccode>%\u003C\u002Fcode>. Operasi ini digunakan untuk mendapatkan sisa bagi 2 bilangan.\u003C\u002Fp>\n\u003Cp>Contohnya:\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\">JAVA\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=\"int%20a%20%3D%2010%3B%0Aint%20b%20%3D%203%3B%0Aint%20c%20%3D%20a%20%25%20b%3B%20%2F%2F%20nilai%20c%20adalah%201%0Aint%20d%20%3D%206%20%25%205%3B%20%2F%2F%20nilai%20d%20adalah%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\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>int a = 10;\nint b = 3;\nint c = a % b; \u002F\u002F nilai c adalah 1\nint d = 6 % 5; \u002F\u002F nilai d adalah 1\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Sama seperti di matematika, proses perhitungan bilangan juga memiliki urutan. Urutan ini mengikuti aturan yang ada di matematika yaitu:\u003C\u002Fp>\n\u003Col>\n\u003Cli>Kurung terdalam\u003C\u002Fli>\n\u003Cli>Kali \u002F bagi\u003C\u002Fli>\n\u003Cli>Tambah \u002F kurang\u003C\u002Fli>\n\u003Cli>Operasi dari kiri\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch3 id=\"assignment-aritmatika\">Assignment Aritmatika\u003C\u002Fh3>\n\u003Cp>Selanjutnya ada assignment aritmatika, alias operasi assignment yang disatukan dengan aritmatika.\u003C\u002Fp>\n\u003Cp>Misal kita punya kode 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\">JAVA\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=\"int%20a%20%3D%2010%3B%0Aa%20%3D%20a%20%2B%2020%3B%20%2F%2F%20nilai%20a%3A%2010%20%2B%2020%20%3D%2030%0Aa%20%3D%20a%20*%205%3B%20%20%2F%2F%20nilai%20a%3A%2030%20*%205%20%20%3D%20150%0Aa%20%3D%20a%20%2F%202%3B%20%20%2F%2F%20nilai%20a%3A%20150%20%2F%202%20%3D%2075\" 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>int a = 10;\na = a + 20; \u002F\u002F nilai a: 10 + 20 = 30\na = a * 5;  \u002F\u002F nilai a: 30 * 5  = 150\na = a \u002F 2;  \u002F\u002F nilai a: 150 \u002F 2 = 75\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Operasi tersebut dapat disingkat menjadi 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\">JAVA\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=\"int%20a%20%3D%2010%3B%0Aa%20%2B%3D%2020%3B%20%2F%2F%20nilai%20a%3A%2010%20%2B%2020%20%3D%2030%0Aa%20*%3D%205%3B%20%20%2F%2F%20nilai%20a%3A%2030%20*%205%20%20%3D%20150%0Aa%20%2F%3D%202%3B%20%20%2F%2F%20nilai%20a%3A%20150%20%2F%202%20%3D%2075\" 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>int a = 10;\na += 20; \u002F\u002F nilai a: 10 + 20 = 30\na *= 5;  \u002F\u002F nilai a: 30 * 5  = 150\na \u002F= 2;  \u002F\u002F nilai a: 150 \u002F 2 = 75\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Bagaimana? lebih singkat kan. Kalau kita coba cetak nilai \u003Ccode>a\u003C\u002Fcode> maka hasilnya pasti sama, baik menggunakan versi lengkap (atas) maupun assignment aritmatika (bawah).\u003C\u002Fp>\n\u003Ch3 id=\"unary-operator\">Unary Operator\u003C\u002Fh3>\n\u003Cp>Terakhir ada unary operator. Kalau sebelumnya tiap operasi melibatkan setidaknya 2 literal atau variabel, dengan unary operator ini kita hanya perlu 1 variabel saja.\u003C\u002Fp>\n\u003Cp>Ada 4 jenis unary operator untuk tipe Integer, diantaranya:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Pre-increment (\u003Ccode>++a\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Post-increment (\u003Ccode>a++\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Pre-decrement (\u003Ccode>--a\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Post-decrement (\u003Ccode>a--\u003C\u002Fcode>)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Fungsinya sebenarnya sederhana, untuk menambah atau mengurangi variabel dengan angka 1. Kalau kita jabarkan, 4 baris kode di bawah ini punya fungsi yang sama.\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\">JAVA\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=\"a%20%3D%20a%20%2B%201%3B%20%2F%2F%20versi%20lengkap%0Aa%20%2B%3D%201%3B%20%20%20%20%2F%2F%20lebih%20sederhana%0A%2B%2Ba%3B%20%20%20%20%20%20%20%2F%2F%20lebih%20sangat%20sederhana%0Aa%2B%2B%3B%20%20%20%20%20%20%20%2F%2F%20sama%20seperti%20di%20atas\" 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>a = a + 1; \u002F\u002F versi lengkap\na += 1;    \u002F\u002F lebih sederhana\n++a;       \u002F\u002F lebih sangat sederhana\na++;       \u002F\u002F sama seperti di atas\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Belum percaya? Coba jalankan kode 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\">JAVA\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=\"public%20class%20TipeDataInteger%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%2010%3B%0A%20%20%20%20int%20b%20%3D%2010%3B%0A%0A%20%20%20%20a%2B%2B%3B%20%2F%2F%20atau%20%2B%2Ba%0A%20%20%20%20b--%3B%20%2F%2F%20atau%20--b%0A%0A%20%20%20%20System.out.println(a)%3B%0A%20%20%20%20System.out.println(b)%3B%0A%20%20%7D%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\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>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 10;\n    int b = 10;\n\n    a++; \u002F\u002F atau ++a\n    b--; \u002F\u002F atau --b\n\n    System.out.println(a);\n    System.out.println(b);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Jika dijalankan pasti akan keluar angka 11 dan 9.\u003C\u002Fp>\n\u003Cp>Nah, mungkin muncul pertanyaan. Kalau fungsinya sama kenapa harus ada 2 versi post dan pre?\u003C\u002Fp>\n\u003Cp>Sekilas jika berdiri sendiri memang fungsinya sama yaitu menambah atau mengurang bilangan. Tetapi, sebenarnya selain menambah dan mengurang, operasi ini juga akan mengembalikan nilai.\u003C\u002Fp>\n\u003Cp>Nah pre dan post di sini menunjukkan kapan nilai itu dikembalikan. Pada operasi \u003Cstrong>pre\u003C\u002Fstrong> nilai variabel terkini akan dioperasikan dulu sebelum dikembalikan. Sedangkan pada operasi \u003Cstrong>post\u003C\u002Fstrong> nilai terkini akan dikembalikan dulu sebelum dioperasikan.\u003C\u002Fp>\n\u003Cp>Supaya tidak bingung, kita coba lihat contoh kodenya.\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\">JAVA\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=\"public%20class%20TipeDataInteger%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%201%3B%0A%20%20%20%20System.out.println(%2B%2Ba)%3B%20%2F%2F%20output%3A%202%0A%20%20%20%20System.out.println(a)%3B%20%20%20%2F%2F%20output%3A%202%0A%0A%20%20%20%20int%20b%20%3D%201%3B%0A%20%20%20%20System.out.println(b%2B%2B)%3B%20%2F%2F%20output%3A%201%0A%20%20%20%20System.out.println(b)%3B%20%20%20%2F%2F%20output%3A%202%0A%20%20%7D%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\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>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 1;\n    System.out.println(++a); \u002F\u002F output: 2\n    System.out.println(a);   \u002F\u002F output: 2\n\n    int b = 1;\n    System.out.println(b++); \u002F\u002F output: 1\n    System.out.println(b);   \u002F\u002F output: 2\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Mungkin kalau kita jabarkan, kode di atas sama 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\">JAVA\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=\"public%20class%20TipeDataInteger%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%201%3B%0A%20%20%20%20a%20%2B%3D%201%3B%0A%20%20%20%20System.out.println(a)%3B%20%2F%2F%20output%3A%202%0A%20%20%20%20System.out.println(a)%3B%20%2F%2F%20output%3A%202%0A%0A%20%20%20%20int%20b%20%3D%201%3B%0A%20%20%20%20System.out.println(b)%3B%20%2F%2F%20output%3A%201%0A%20%20%20%20b%20%2B%3D%201%3B%0A%20%20%20%20System.out.println(b)%3B%20%2F%2F%20output%3A%202%0A%20%20%7D%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\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>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 1;\n    a += 1;\n    System.out.println(a); \u002F\u002F output: 2\n    System.out.println(a); \u002F\u002F output: 2\n\n    int b = 1;\n    System.out.println(b); \u002F\u002F output: 1\n    b += 1;\n    System.out.println(b); \u002F\u002F output: 2\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Semoga dapat konsepnya lah ya.\u003C\u002Fp>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C\u002Fh2>\n\u003Cp>Pembahasan mengenai integer ini cukup banyak ya. Tapi secara umum tipe data numerik cukup sederhana sebenarnya, bahkan operasi di atas semuanya bisa kita gunakan pada untuk tipe data float.\u003C\u002Fp>\n\u003Cp>Bahkan beberapa dari operasi di atas ada juga yang bisa dipakai untuk tipe data String. Karena itu, mungkin pada kesempatan selanjutnya akan ada banyak bagian yang merujuk ke artikel ini.\u003C\u002Fp>\n\u003Cp>Pada kesempatan selanjutnya kita masih akan membahas tentang tipe data numerik yaitu \u003Ca href=\"\u002Fp\u002Fmengenal-tipe-data-float-pada-java\">float pada bahasa Java\u003C\u002Fa>.\u003C\u002Fp>\n\u003Cp>Semoga bermanfaat, selamat berkoding ria 👋\u003C\u002Fp>\n","",[158,176,189,202,215,236],{"id":159,"title":160,"title_en":21,"slug":161,"excerpt":162,"excerpt_en":21,"has_translation":15,"published_at":163,"reading_time":81,"hidden_from_listing":15,"tags":164,"thumbnail_image":21,"og_image":167,"series":168,"authors":173},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",[165,166],"python","string","\u002Fog\u002Fpython-strings.png",{"id":169,"title":170,"title_en":171,"slug":172},30,"Koleksi dan String","Collections and Strings","python-collections",[174],{"authors_id":175},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":177,"title":178,"title_en":21,"slug":179,"excerpt":180,"excerpt_en":21,"has_translation":15,"published_at":181,"reading_time":81,"hidden_from_listing":15,"tags":182,"thumbnail_image":21,"og_image":184,"series":185,"authors":186},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",[165,183],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":169,"title":170,"title_en":171,"slug":172},[187],{"authors_id":188},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":190,"title":191,"title_en":21,"slug":192,"excerpt":193,"excerpt_en":21,"has_translation":15,"published_at":194,"reading_time":81,"hidden_from_listing":15,"tags":195,"thumbnail_image":21,"og_image":197,"series":198,"authors":199},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",[165,196],"set","\u002Fog\u002Fpython-sets.png",{"id":169,"title":170,"title_en":171,"slug":172},[200],{"authors_id":201},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":203,"title":204,"title_en":21,"slug":205,"excerpt":206,"excerpt_en":21,"has_translation":15,"published_at":207,"reading_time":81,"hidden_from_listing":15,"tags":208,"thumbnail_image":21,"og_image":210,"series":211,"authors":212},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",[165,209],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":169,"title":170,"title_en":171,"slug":172},[213],{"authors_id":214},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":216,"title":217,"title_en":218,"slug":219,"excerpt":220,"excerpt_en":221,"has_translation":12,"published_at":222,"reading_time":14,"hidden_from_listing":15,"tags":223,"thumbnail_image":21,"og_image":230,"series":231,"authors":233},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",[224,225,226,227,228,229],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":232,"title":35,"title_en":36,"slug":37},8,[234],{"authors_id":235},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},{"id":237,"title":238,"title_en":239,"slug":240,"excerpt":241,"excerpt_en":242,"has_translation":12,"published_at":243,"reading_time":81,"hidden_from_listing":15,"tags":244,"thumbnail_image":21,"og_image":251,"series":252,"authors":253},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",[245,246,247,248,249,250],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":232,"title":35,"title_en":36,"slug":37},[254],{"authors_id":255},{"id":112,"name":113,"slug":114,"role":115,"profile_picture":21},[257,261,264,267,270,273,276,279,282],{"text":258,"depth":259,"id":260},"Tentang Tipe Data Integer",2,"tentang-tipe-data-integer",{"text":262,"depth":103,"id":263},"Sub Tipe data Integer","sub-tipe-data-integer",{"text":265,"depth":103,"id":266},"Literal Integer","literal-integer",{"text":268,"depth":103,"id":269},"Menggunakan Karakter Pemisah","menggunakan-karakter-pemisah",{"text":271,"depth":259,"id":272},"Operasi Tipe Data Integer","operasi-tipe-data-integer",{"text":274,"depth":103,"id":275},"Operasi Aritmatika","operasi-aritmatika",{"text":277,"depth":103,"id":278},"Assignment Aritmatika","assignment-aritmatika",{"text":280,"depth":103,"id":281},"Unary Operator","unary-operator",{"text":283,"depth":259,"id":284},"Selanjutnya","selanjutnya",1793295834673]