[{"data":1,"prerenderedAt":184},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-mengenal-tipe-data-integer-pada-java-with-latest":41},{"navigations":4},[5,20],{"collection":6,"item":7},"series",{"__typename":6,"title":8,"slug":9,"children_series":10},"Artikel","all",[11,14,17],{"title":12,"slug":13},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":15,"slug":16},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":18,"slug":19},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":6,"item":21},{"__typename":6,"title":22,"slug":23,"children_series":24},"Tutorial","tutorial",[25,28,31,34],{"title":26,"slug":27},"Belajar Java","belajar-java",{"title":29,"slug":30},"Belajar Pascal","belajar-pascal",{"title":32,"slug":33},"Belajar Python","belajar-python",{"title":35,"slug":36},"Belajar Golang","belajar-golang",{"name":38,"url":39,"show":40},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"article":42,"renderedBody":100,"renderedTakeaway":101,"latestArticles":102,"toc":154},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":54,"takeway":55,"body":56,"authors":57,"series":63},"57","Mengenal Tipe Data Integer pada Java","mengenal-tipe-data-integer-pada-java","Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)","2023-01-13T00:00:00.000Z",{"id":49},"a39127be-6eeb-49cb-9ee9-7f9c1b9f28c1",[51,52,53],"java","tipe-data","integer",6,null,"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;     // sama seperti 1000000\nint satuMiliar = 1_000_000_000; // sama seperti 1000000000\n\nint seribu = 1_00_0; // 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 / b; // nilai c adalah 3\nint d = 6 / 5; // 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; // nilai c adalah 1\nint d = 6 % 5; // 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 / bagi\n3. Tambah / 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; // nilai a: 10 + 20 = 30\na = a * 5;  // nilai a: 30 * 5  = 150\na = a / 2;  // nilai a: 150 / 2 = 75\n```\n\nOperasi tersebut dapat disingkat menjadi seperti ini:\n\n```java\nint a = 10;\na += 20; // nilai a: 10 + 20 = 30\na *= 5;  // nilai a: 30 * 5  = 150\na /= 2;  // nilai a: 150 / 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; // versi lengkap\na += 1;    // lebih sederhana\n++a;       // lebih sangat sederhana\na++;       // 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++; // atau ++a\n    b--; // 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); // output: 2\n    System.out.println(a);   // output: 2\n\n    int b = 1;\n    System.out.println(b++); // output: 1\n    System.out.println(b);   // 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); // output: 2\n    System.out.println(a); // output: 2\n\n    int b = 1;\n    System.out.println(b); // output: 1\n    b += 1;\n    System.out.println(b); // 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](/p/mengenal-tipe-data-float-pada-java).\n\nSemoga bermanfaat, selamat berkoding ria 👋",[58],{"authors_id":59},{"name":60,"slug":61,"role":62,"profile_picture":55},"Daffa Izzuddin","izzudd","Writer",{"id":64,"title":65,"slug":66,"articles":67,"parent_series":90},"22","Variabel, Tipe Data, dan Operasi","java-variabel-tipe-data",[68,78,81],{"id":69,"title":70,"slug":71,"excerpt":72,"thumbnail_image":73,"tags":75},"56","Tipe Data pada Bahasa Java","tipe-data-pada-bahasa-java","Tipe data adalah atribut yang menempel pada sebuah data untuk menentukan perlakuan terhadap data tersebut.",{"id":74},"c67f5e59-a088-4660-9a0f-55f4f7c4a37b",[51,52,76,77],"konsep","dasar",{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":79,"tags":80},{"id":49},[51,52,53],{"id":82,"title":83,"slug":84,"excerpt":85,"thumbnail_image":86,"tags":88},"58","Mengenal Tipe Data Float pada Java","mengenal-tipe-data-float-pada-java","Float atau floating point merupakan tipe data yang dapat menampung literal bilangan desimal dan pecahan.",{"id":87},"d915e395-5e17-40c1-ab53-677d9f1252d3",[51,52,89],"float",{"id":91,"title":26,"slug":27,"parent_series":92,"children_series":94},"13",{"id":93,"title":22,"slug":23,"parent_series":55},"1",[95,99],{"id":96,"title":97,"slug":98,"cover_image":55},"21","Berkenalan dengan Java","java-intro",{"id":64,"title":65,"slug":66,"cover_image":55},"\u003Cp>Pada kesempatan kali ini kita akan membahas mengenai tipe data integer yang dapat menampung bilangan bulat.\u003C/p>\n\u003Ch2 id=\"tentang-tipe-data-integer\">Tentang Tipe Data Integer\u003C/h2>\n\u003Cp>Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)\u003C/p>\n\u003Ch3 id=\"sub-tipe-data-integer\">Sub Tipe data Integer\u003C/h3>\n\u003Cp>Pada Java dan bahasa pemrograman pada umumnya tipe data integer ini dibagi menjadi 4 sub tipe berdasarkan panjang memorinya. Diantaranya adalah:\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>Tipe Data\u003C/th>\n\u003Cth>Ukuran\u003C/th>\n\u003Cth>Nilai\u003C/th>\n\u003Cth>Bentuk Objek\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>byte\u003C/td>\n\u003Ctd>8 bit (1 byte)\u003C/td>\n\u003Ctd>-128 sampai 127\u003C/td>\n\u003Ctd>Byte\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>short\u003C/td>\n\u003Ctd>16 bit (2 byte)\u003C/td>\n\u003Ctd>-32.768 sampai 32.767\u003C/td>\n\u003Ctd>Short\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>int\u003C/td>\n\u003Ctd>32 bit (4 byte)\u003C/td>\n\u003Ctd>-2.147.483.648 sampai 2.147.483.647\u003C/td>\n\u003Ctd>Integer\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>long\u003C/td>\n\u003Ctd>64 bit (8 byte)\u003C/td>\n\u003Ctd>-9.223.372.036.854.775.808 sampai 9.223.372.036.854.775.807\u003C/td>\n\u003Ctd>Long\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\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/p>\n\u003Cp>Untuk penggunaannya sendiri silahkan disesuaikan dengan kebutuhan. Pada kebanyakan kasus, tipe \u003Ccode>int\u003C/code> paling sering digunakan, namun jika butuh angka yang sangat besar bisa digunakan \u003Ccode>long\u003C/code>. Di bawah itu (\u003Ccode>short\u003C/code>, dan \u003Ccode>byte\u003C/code>) cukup jarang dijumpai.\u003C/p>\n\u003Ch3 id=\"literal-integer\">Literal Integer\u003C/h3>\n\u003Cp>Literal yang diterima oleh tipe data integer adalah \u003Cstrong>angka bulat\u003C/strong>. Angka ini dapat dituliskan dalam berbagai format, diantaranya:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Desimal (basis 10)\u003C/strong> — Angka desimal biasa, tidak ada format spesial. Contoh: 1, 95, -29, 1000\u003C/li>\n\u003Cli>\u003Cstrong>Oktal (basis 8)\u003C/strong> — Format diawali angka \u003Ccode>0\u003C/code>. Contoh: 01, 0137, -035, 01750\u003C/li>\n\u003Cli>\u003Cstrong>Heksadesimal (basis 16)\u003C/strong> — Format diawali karakter \u003Ccode>0x\u003C/code>. Contoh: 0x1, 0x5f, -0x1d, 0x3e8\u003C/li>\n\u003Cli>\u003Cstrong>Biner (basis 2)\u003C/strong> — Format diawali karakter \u003Ccode>0b\u003C/code>. Contoh: 0b1, 0b1011111, -0b11101, 0b1111101000\u003C/li>\n\u003C/ul>\n\u003Cp>Supaya lebih kebayang, kita akan coba buat contoh kode programnya.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sekarang, kalau kita jalankan, outputnya akan seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">TEXT\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>250\n250\n250\n250\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\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/p>\n\u003Cp>Jika ingin meng-output-kan angka sesuai format yang diinginkan, kita bisa menggunakan \u003Ccode>printf\u003C/code> dengan template yang sesuai. Contohya:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>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/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Coba jalankan dan lihat hasilnya.\u003C/p>\n\u003Ch3 id=\"menggunakan-karakter-pemisah\">Menggunakan Karakter Pemisah\u003C/h3>\n\u003Cp>Literal integer pada Java juga memungkinkan kita menambahkan karakter pemisah berupa underscore (\u003Ccode>_\u003C/code>). Karakter pemisah ini bisa membantu ketika kita mendeklarasikan nilai yang besar. Contohnya seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>int satuJuta   = 1_000_000;     // sama seperti 1000000\nint satuMiliar = 1_000_000_000; // sama seperti 1000000000\n\nint seribu = 1_00_0; // valid namun tidak disarankan untuk alasan keterbacaan\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Ch2 id=\"operasi-tipe-data-integer\">Operasi Tipe Data Integer\u003C/h2>\n\u003Ch3 id=\"operasi-aritmatika\">Operasi Aritmatika\u003C/h3>\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/p>\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/p>\n\u003Cp>Ini disebabkan karena operasi pembagian memiliki kemungkinan menghasilkan bilangan pecahan yang dalam Java bertipe \u003Cstrong>float\u003C/strong>. Nah, untuk menghindari perubahan tipe data ini, maka hasil yang keluar harus dibulatkan agar tetap bertipe integer.\u003C/p>\n\u003Cp>Contohnya:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>int a = 10;\nint b = 3;\nint c = a / b; // nilai c adalah 3\nint d = 6 / 5; // nilai d adalah 1\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Satu lagi, Java juga mengenal operasi \u003Cstrong>modulus\u003C/strong> yang ditandai dengan operator \u003Ccode>%\u003C/code>. Operasi ini digunakan untuk mendapatkan sisa bagi 2 bilangan.\u003C/p>\n\u003Cp>Contohnya:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>int a = 10;\nint b = 3;\nint c = a % b; // nilai c adalah 1\nint d = 6 % 5; // nilai d adalah 1\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sama seperti di matematika, proses perhitungan bilangan juga memiliki urutan. Urutan ini mengikuti aturan yang ada di matematika yaitu:\u003C/p>\n\u003Col>\n\u003Cli>Kurung terdalam\u003C/li>\n\u003Cli>Kali / bagi\u003C/li>\n\u003Cli>Tambah / kurang\u003C/li>\n\u003Cli>Operasi dari kiri\u003C/li>\n\u003C/ol>\n\u003Ch3 id=\"assignment-aritmatika\">Assignment Aritmatika\u003C/h3>\n\u003Cp>Selanjutnya ada assignment aritmatika, alias operasi assignment yang disatukan dengan aritmatika.\u003C/p>\n\u003Cp>Misal kita punya kode seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>int a = 10;\na = a + 20; // nilai a: 10 + 20 = 30\na = a * 5;  // nilai a: 30 * 5  = 150\na = a / 2;  // nilai a: 150 / 2 = 75\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Operasi tersebut dapat disingkat menjadi seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>int a = 10;\na += 20; // nilai a: 10 + 20 = 30\na *= 5;  // nilai a: 30 * 5  = 150\na /= 2;  // nilai a: 150 / 2 = 75\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Bagaimana? lebih singkat kan. Kalau kita coba cetak nilai \u003Ccode>a\u003C/code> maka hasilnya pasti sama, baik menggunakan versi lengkap (atas) maupun assignment aritmatika (bawah).\u003C/p>\n\u003Ch3 id=\"unary-operator\">Unary Operator\u003C/h3>\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/p>\n\u003Cp>Ada 4 jenis unary operator untuk tipe Integer, diantaranya:\u003C/p>\n\u003Cul>\n\u003Cli>Pre-increment (\u003Ccode>++a\u003C/code>)\u003C/li>\n\u003Cli>Post-increment (\u003Ccode>a++\u003C/code>)\u003C/li>\n\u003Cli>Pre-decrement (\u003Ccode>--a\u003C/code>)\u003C/li>\n\u003Cli>Post-decrement (\u003Ccode>a--\u003C/code>)\u003C/li>\n\u003C/ul>\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/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>a = a + 1; // versi lengkap\na += 1;    // lebih sederhana\n++a;       // lebih sangat sederhana\na++;       // sama seperti di atas\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Belum percaya? Coba jalankan kode ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 10;\n    int b = 10;\n\n    a++; // atau ++a\n    b--; // atau --b\n\n    System.out.println(a);\n    System.out.println(b);\n  }\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Jika dijalankan pasti akan keluar angka 11 dan 9.\u003C/p>\n\u003Cp>Nah, mungkin muncul pertanyaan. Kalau fungsinya sama kenapa harus ada 2 versi post dan pre?\u003C/p>\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/p>\n\u003Cp>Nah pre dan post di sini menunjukkan kapan nilai itu dikembalikan. Pada operasi \u003Cstrong>pre\u003C/strong> nilai variabel terkini akan dioperasikan dulu sebelum dikembalikan. Sedangkan pada operasi \u003Cstrong>post\u003C/strong> nilai terkini akan dikembalikan dulu sebelum dioperasikan.\u003C/p>\n\u003Cp>Supaya tidak bingung, kita coba lihat contoh kodenya.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 1;\n    System.out.println(++a); // output: 2\n    System.out.println(a);   // output: 2\n\n    int b = 1;\n    System.out.println(b++); // output: 1\n    System.out.println(b);   // output: 2\n  }\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Mungkin kalau kita jabarkan, kode di atas sama seperti ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public class TipeDataInteger{\n  public static void main(String[] args) {\n    int a = 1;\n    a += 1;\n    System.out.println(a); // output: 2\n    System.out.println(a); // output: 2\n\n    int b = 1;\n    System.out.println(b); // output: 1\n    b += 1;\n    System.out.println(b); // output: 2\n  }\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Semoga dapat konsepnya lah ya.\u003C/p>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C/h2>\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/p>\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/p>\n\u003Cp>Pada kesempatan selanjutnya kita masih akan membahas tentang tipe data numerik yaitu \u003Ca href=\"/p/mengenal-tipe-data-float-pada-java\">float pada bahasa Java\u003C/a>.\u003C/p>\n\u003Cp>Semoga bermanfaat, selamat berkoding ria 👋\u003C/p>\n","",[103,116,131,143],{"id":104,"title":105,"slug":106,"excerpt":107,"thumbnail_image":108,"tags":110},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!",{"id":109},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[111,112,113,114,115],"system-programming","rust","zig","c","memory-safety",{"id":117,"title":118,"slug":119,"excerpt":120,"thumbnail_image":121,"tags":123},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!",{"id":122},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[124,125,126,127,128,129,130],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":132,"title":133,"slug":134,"excerpt":135,"thumbnail_image":136,"tags":138},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!",{"id":137},"e3c617fd-1486-4b82-b937-94fbec846c77",[124,139,129,140,141,125,142],"microservices","database","message-broker","postgresql",{"id":144,"title":145,"slug":146,"excerpt":147,"thumbnail_image":148,"tags":150},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!",{"id":149},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[151,141,124,129,139,152,153],"rabbitmq","async","python",[155,159,163,166,169,172,175,178,181],{"text":156,"depth":157,"id":158},"Tentang Tipe Data Integer",2,"tentang-tipe-data-integer",{"text":160,"depth":161,"id":162},"Sub Tipe data Integer",3,"sub-tipe-data-integer",{"text":164,"depth":161,"id":165},"Literal Integer","literal-integer",{"text":167,"depth":161,"id":168},"Menggunakan Karakter Pemisah","menggunakan-karakter-pemisah",{"text":170,"depth":157,"id":171},"Operasi Tipe Data Integer","operasi-tipe-data-integer",{"text":173,"depth":161,"id":174},"Operasi Aritmatika","operasi-aritmatika",{"text":176,"depth":161,"id":177},"Assignment Aritmatika","assignment-aritmatika",{"text":179,"depth":161,"id":180},"Unary Operator","unary-operator",{"text":182,"depth":157,"id":183},"Selanjutnya","selanjutnya",1791045067751]