[{"data":1,"prerenderedAt":350},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-variabel-dan-literal-pada-bahasa-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":228,"renderedTakeaway":229,"latestArticles":230,"toc":330},{"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":87,"series":88,"authors":221,"body_locale":224,"available_locales":225,"body":227,"takeway":21,"prerequisite":21},54,"Variabel dan Literal pada Bahasa Java","Variables and Literals in the Java Language","variabel-dan-literal-pada-bahasa-java","Literal dan variabel merupakan komponen yang penting, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.","Literals and variables are important components, because these 2 things connect directly to data and how you manipulate it.","2022-09-07T07:33:30.000Z",7,[83,84,85,86],"java","variabel","konsep","dasar","\u002Fog\u002Fvariabel-dan-literal-pada-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92,"description":93,"description_en":94,"articles":95,"children_series":210,"parent_series":211},21,"Berkenalan dengan Java","Getting Started with Java","java-intro","Kenalan sama Java dari nol: bikin program pertama, paham struktur dasarnya, sampai bisa nerima input dan nampilin output.","Meet Java from scratch: your first program, how the pieces fit together, and how to read input and print output.",[96,110,131,144,160,176,191,196],{"id":97,"title":98,"title_en":99,"slug":100,"excerpt":101,"excerpt_en":102,"has_translation":12,"published_at":103,"reading_time":14,"hidden_from_listing":15,"tags":104,"thumbnail_image":21,"og_image":107,"series":108,"authors":109},14,"Instalasi Java dengan Visual Studio Code","Installing Java with Visual Studio Code","instalasi-java-dengan-visual-studio-code","Mau belajar ngoding Java tapi spek laptop pas-pasan buat buka IDE berat? Yuk, cari tahu cara setup VS Code biar ngoding Java tetap lancar dan enteng!","Want to learn Java but your laptop barely handles a heavy IDE? Here's how to set up VS Code so writing Java stays light and smooth.","2026-06-15T02:37:24.974Z",[105,83,106],"howto","editor","\u002Fog\u002Finstalasi-java-dengan-visual-studio-code.png",{"id":89,"title":90,"title_en":91,"slug":92},[],{"id":111,"title":112,"title_en":113,"slug":114,"excerpt":115,"excerpt_en":116,"has_translation":12,"published_at":117,"reading_time":118,"hidden_from_listing":15,"tags":119,"thumbnail_image":21,"og_image":122,"series":123,"authors":124},49,"Berkenalan dengan Bahasa Java","Getting to Know the Java Language","berkenalan-dengan-bahasa-java","Java merupakan bahasa pemrograman tingkat tinggi dengan paradigma OOP. Bahasa ini punya slogan “write once, run anywhere”","Java is a high-level programming language built on the OOP paradigm, and it carries the slogan “write once, run anywhere”.","2022-08-11T00:00:00.000Z",3,[83,120,121,86],"intro","pemrograman","\u002Fog\u002Fberkenalan-dengan-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[125],{"authors_id":126},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},1,"Daffa Izzuddin","izzudd","Writer",{"id":132,"title":133,"title_en":134,"slug":135,"excerpt":136,"excerpt_en":137,"has_translation":12,"published_at":117,"reading_time":127,"hidden_from_listing":15,"tags":138,"thumbnail_image":21,"og_image":139,"series":140,"authors":141},50,"Membuat Program \"Hello World\" pada Java","Building a \"Hello World\" Program in Java","membuat-program-hello-world-pada-java","Pada kesempatan kali ini kita akan membuat kode pertama kita, yaitu Hello World pada bahasa Java.","This time we build our first program, Hello World, in the Java language.",[83,49,86],"\u002Fog\u002Fmembuat-program-hello-world-pada-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[142],{"authors_id":143},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":145,"title":146,"title_en":147,"slug":148,"excerpt":149,"excerpt_en":150,"has_translation":12,"published_at":151,"reading_time":152,"hidden_from_listing":15,"tags":153,"thumbnail_image":21,"og_image":155,"series":156,"authors":157},51,"Mengenal Struktur Dasar Program Java","Understanding the Basic Structure of a Java Program","mengenal-struktur-dasar-program-java","Ibarat menulis skripsi, membuat program ternyata juga ada strukturnya. Dan struktur ini harus sesuai supaya tidak ditolak oleh sang komputer.","Writing a program has a structure, the way writing a thesis does. And that structure has to be right so the computer doesn't reject it.","2022-08-12T09:43:57.000Z",4,[83,154,86,85],"syntax","\u002Fog\u002Fmengenal-struktur-dasar-program-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[158],{"authors_id":159},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":161,"title":162,"title_en":163,"slug":164,"excerpt":165,"excerpt_en":166,"has_translation":12,"published_at":167,"reading_time":118,"hidden_from_listing":15,"tags":168,"thumbnail_image":21,"og_image":171,"series":172,"authors":173},52,"Penulisan Komentar pada Bahasa Java","Writing Comments in the Java Language","penulisan-komentar-pada-bahasa-java","Java memiliki beberapa jenis komentar yaitu komentar satu baris, banyak baris, dan komentar dokumentasi.","Java has several kinds of comments: single line comments, multiline comments, and doc comments.","2022-08-21T03:23:11.000Z",[83,169,154,170],"komentar","best-practice","\u002Fog\u002Fpenulisan-komentar-pada-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[174],{"authors_id":175},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":177,"title":178,"title_en":179,"slug":180,"excerpt":181,"excerpt_en":182,"has_translation":12,"published_at":183,"reading_time":14,"hidden_from_listing":15,"tags":184,"thumbnail_image":21,"og_image":186,"series":187,"authors":188},53,"Sistem Output pada Bahasa Java","The Output System in the Java Language","sistem-output-pada-bahasa-java","Ketika membuat program \"Hello World\" kita sudah melihat method `System.out.println`. Selain method tersebut masih ada method lainnya, mari kita bahas.","When we built the \"Hello World\" program we already met the `System.out.println` method. Java has other output methods too, and this piece goes through them.","2022-08-23T00:00:00.000Z",[83,185,86],"input-output","\u002Fog\u002Fsistem-output-pada-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[189],{"authors_id":190},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":74,"title":75,"title_en":76,"slug":77,"excerpt":78,"excerpt_en":79,"has_translation":12,"published_at":80,"reading_time":81,"hidden_from_listing":15,"tags":82,"thumbnail_image":21,"og_image":87,"series":192,"authors":193},{"id":89,"title":90,"title_en":91,"slug":92},[194],{"authors_id":195},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":197,"title":198,"title_en":199,"slug":200,"excerpt":201,"excerpt_en":202,"has_translation":12,"published_at":203,"reading_time":81,"hidden_from_listing":15,"tags":204,"thumbnail_image":21,"og_image":205,"series":206,"authors":207},55,"Sistem Input pada Bahasa Java","The Input System in the Java Language","sistem-input-pada-bahasa-java","Pada bahasa Java, sistem input dilayani oleh objek yang bernama Scanner. Objek ini memiliki banyak method yang dapat digunakan untuk sistem input.","In Java, the input system is handled by an object named Scanner, and that object has plenty of methods you can use for input.","2022-09-27T14:15:59.000Z",[83,185,86],"\u002Fog\u002Fsistem-input-pada-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[208],{"authors_id":209},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},[],{"id":212,"title":60,"title_en":61,"slug":62,"parent_series":213,"children_series":214},13,{"id":127,"title":48,"title_en":48,"slug":49},[215,216],{"id":89,"title":90,"title_en":91,"slug":92,"cover_image":21},{"id":217,"title":218,"title_en":219,"slug":220,"cover_image":21},22,"Variabel, Tipe Data, dan Operasi","Variables, Types, and Operations","java-variabel-tipe-data",[222],{"authors_id":223},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},"id",[226,224],"en","Pada kesempatan kali ini kita akan membahas tentang literal dan variabel pada bahasa Java.\n\nLiteral dan variabel merupakan komponen yang akan selalu kita gunakan ketika membuat program, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.\n\nMari kita bahas.\n\n## Literal pada Bahasa Java\n\nPada konsep pemrograman, istilah literal adalah semua **nilai mentah** yang kita ketikkan pada kode program. Literal ini bisa berupa angka, huruf, kata, kalimat, nilai boolean, dan lain sebagainya.\n\nMasih belum kepikiran? coba kita lihat potongan kode ini.\n\n```java\nSystem.out.println(\"Hello World!\");\n```\n\nNah, kita-kira pada kode tersebut mana yang termasuk literal?\n\nPada kode tersebut, yang termasuk literal adalah `“Hello World!”`. Ini merupakan literal yang bertipe **string** atau disebut “string literal”.\n\nKalau kita lihat, terdapat ciri yang menandakan bahwa `\"Hello World!\"` merupakan string literal. Sebuah string literal selalu diapit oleh tanda petik (`”…”`).\n\nSehingga kita bisa membuat string literal yang lain seperti:\n\n* `“saya makan nasi”`\n* `\"dadu bermata 9\"`\n* `\"1945\"`\n* `\"@$#&^*\"`\n\nItu semua merupakan string literal yang valid.\n\nSebelumnya sudah disebutkan kalau literal memiliki banyak jenis. Tentunya untuk tiap jenis punya ciri dan aturan masing-masing yang berbeda sesuai tipe datanya.\n\nContohnya saja:\n\n* Integer literal (angka bulat) — `1945`, `-24434`, `0x4b`, `0b001`, `0xFeeL`\n* Float literal (angka desimal) — `3.14159`, `.25`, `314E-2L`, `120f`\n* Boolean literal — `true`, `false`\n* Character literal — `'a'`, `'*'`, `'\\n'`, `'\\t'`\n* String literal — bisa dilihat di contoh sebelumnya\n\n> Untuk lebih lengkapnya, tentang literal ini akan kita bahas pada kesempatan selanjutnya ketika membahas tentang tipe data.\n\n**Lalu apa fungsinya?**\n\nLiteral tidak akan bisa terpisahkan dari pemrograman. Ada manipulasi data berarti ada variabel. Ada variabel berarti ada literal. Kalau variabel adalah wadah, literal ini adalah isinya. Oleh karena itu, 2 istilah ini tidak bisa dipisahkan.\n\nOke, selanjutnya kita bahas tentang variabel pada Java.\n\n## Variabel pada Bahasa Java\n\nDalam pemrograman, variabel merupakan tempat penampung data. Variabel ini dapat diisi dengan banyak cara, termasuk adalah dengan literal seperti di atas, atau dengan [expression](https:\u002F\u002Fwww.invasikode.com\u002Fstatement-dan-expression-bedanya-apa).\n\n### Membuat Variabel (Inisialisasi)\n\nHal yang utama terkait dengan variabel adalah, tiap variabel harus punya nama, atau biasa disebut ***identifier***.\n\nIdentifier ini berfungsi sebagai tanda pengenal dan perujuk variabel dalam format yang dimengerti manusia.\n\nSelain identifier, sebagai bahasa dengan gaya ***static typing***, Java juga mengharuskan tiap variabel memiliki tipe data secara eksplisit.\n\nSeperti yang sudah kita singgung sebelumnya, tipe data ini akan menentukan literal apa yang dapat dimasukkan pada variabel terkait.\n\n> Lebih lanjut tentang tipe data pada Bahasa Java akan kita bahas pada kesempatan-kesempatan selanjutnya. Jika menemukan keyword tipe data seperti `String`, `int`, `float`, dan lain sebagainya jangan dipikirkan keras-keras apa artinya hehe..\n\nSecara umum, format pembuatan variabel pada bahasa Java adalah sebagai berikut:\n\n```java\n[tipe_data] [identifier] = [nilai_awal]\n```\n\nContohnya saja:\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    String nama = \"Inva\";\n    int angka = 125;\n    float pecahan = 0.12f;\n    boolean benar = true;\n    \n    System.out.println(\"nama: \" + nama);\n    System.out.println(\"angka: \" + angka);\n    System.out.println(\"pecahan: \" + pecahan);\n    System.out.println(\"benar: \" + benar);\n  }\n}\n```\n\nJika kita jalankan, outputnya akan seperti ini:\n\n```\nnama: Inva\nangka: 125\npecahan: 0.12\nbenar: true\n```\n\nPada contoh tersebut, kita coba membuat 4 variabel dengan tipe data dan nilai awal yang berbeda.\n\nHal yang perlu diperhatikan dalam inisialisasi variabel adalah, nilai awal variabel harus sesuai dengan tipe data yang kita berikan. Jika kita memasukkan nilai atau literal yang tidak sesuai, maka program akan langsung error — hal ini juga berlaku untuk assignment variabel.\n\nContohnya saja:\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    String nama = 125; \u002F\u002F angka tidak bisa masuk ke string\n    int angka = \"125\"; \u002F\u002F string tidak bisa masuk ke angka\n    \n    System.out.println(\"nama: \" + nama);\n    System.out.println(\"angka: \" + angka);\n  }\n}\n```\n\nBila kita jalankan pasti akan keluar error tipe data yang kurang lebih seperti ini:\n\n```\n\u002FVariabelDanLiteral.java:3: error: incompatible types: int cannot be converted to String\n    String nama = 125; \u002F\u002F angka tidak bisa masuk ke string\n                  ^\n\u002FVariabelDanLiteral.java:4: error: incompatible types: String cannot be converted to int\n    int angka = \"125\"; \u002F\u002F string tidak bisa masuk ke angka\n                ^\n2 errors\n```\n\nDari errornya saja sudah cukup menjelaskan ya.\n\n### Mengakses Nilai Variabel\n\nVariabel yang sudah kita buat ini bisa diakses dengan cara memanggil namanya. Ketika dipanggil namanya, variabel akan mengeluarkan nilai yang ada didalamnya.\n\nContohnya saja seperti kode di atas. Kita memanggil variabel `nama`, `angka`, `pecahan`, dan `benar` dengan menuliskannya sebagai argumen dari fungsi `println`. Oleh karena itu, yang keluar di layar adalah isi dari variabel terkait.\n\nTidak jarang juga ada yang bingung, apa bedanya pemanggilan variabel dengan penulisan literal string. Terutama ketika kita punya nama variabel yang identik dengan literal yang ingin ditulis.\n\nContohnya seperti ini:\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    String nama = \"Inva\"\n    \n    System.out.println(\"nama\");\n    System.out.println(nama);\n  }\n}\n```\n\nPada contoh tersebut, kita membuat variabel dengan identifier `nama`. Selanjutnya, pada `println` kita mengisi argumen dengan nilai yang sekilas sama.\n\nIngat! Untuk memanggil variabel, kita hanya perlu menuliskan namanya saja. Pada `println` yang pertama, karena kita menggunakan tanda petik, maka Java menganggapnya sebagai literal string biasa.\n\nSedangkan, pada `println` yang kedua kita melakukan pemanggilan pada variabel `nama`, sehingga yang keluar adalah isi dari variabel tersebut yaitu \"Inva\".\n\nSehingga outputnya akan seperti ini:\n\n```\nnama\nInva\n```\n\nTerlihat ya bedanya.\n\nPemanggilan variabel juga dapat digunakan dalam operasi data. Seperti penjumlahan, pengurangan, dan lain sebagainya. Contohnya saja seperti ini:\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 9;\n    int b = 12;\n    \n    String namaDepan = \"Inva\";\n    String namaBelakang = \"sikode\";\n    \n    \u002F\u002F nilai variabel jumlah adalah 9 + 12 = 21\n    int jumlah = a + b;\n    \u002F\u002F nilai variabel namaLngkp adalah Invasikode\n    String namaLengkap = namaDepan + namaBelakang;\n    \n    System.out.println(jumlah);\n    System.out.println(namaLengkap);\n  }\n}\n```\n\nOutput:\n\n```\n21\nInvasikode\n```\n\nLebih lanjut tentang operasi tipe data akan kita bahas pada kesempatan-kesempatan selanjutnya.\n\n## Memasukkan Nilai pada Variabel (Assignment)\n\nSebagai tempat penyimpan data, variabel juga bisa diubah isinya. Perubahan data ini dilakukan dengan memasukkan data baru, atau disebut dengan assignment.\n\nUntuk melakukan assignment, kita perlu memanggil nama variabel yang sudah diinisialisasi diikuti tanda sama dengan (`=`) dan nilai yang ingin dimasukkan.\n\nContohnya seperti ini:\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 0; \u002F\u002F inisialisasi variabel a\n    a = 12;    \u002F\u002F mengubah isi variabel a dari 9 menjadi 12\n\n    System.out.println(a);\n  }\n}\n```\n\nJika kita jalankan, maka angka yang akan keluar adalah 12.\n\nSelain menggunakan literal langsung, kita juga bisa menggunakan expresi untuk mengisi variabel. Contohnya saja seperti ini:\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 0; \u002F\u002F inisialisasi variabel a\n    a = 10 * 3 - 3; \u002F\u002F nilai a = 27\n\n    System.out.println(a);\n  }\n}\n```\n\nJika program tersebut kita jalankan, maka yang akan keluar adalah 27. Ini karena Java secara otomatis menghitung operasi bilangan pada assignment variabel `a`.\n\nSekarang, bagaimana jika kita memanggil variabel untuk mengisi dirinya sendiri? Kira-kira apa yang akan terjadi? Mari kita coba.\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 10; \u002F\u002F inisialisasi variabel a\n    a = a * a;  \u002F\u002F nilai a = ?\n\n    System.out.println(a);\n  }\n}\n```\n\nPada program tersebut, kita membuat variabel `a` dengan nilai awal 10. Pada baris selanjutnya kita melakukan assignment `a = a * a`, artinya kita mencoba memasukkan nilai variabel `a` ke dalam dirinya sendiri.\n\nCoba kita jalankan.\n\n```\n100\n```\n\nNah loh, yang keluar nilai 100. Nilai ini asalnya dari mana?\n\nSesuai ekspresi yang kita ketikkan pada kode program, ketika kita melakukan pemanggilan variabel maka identifier akan diubah sesuai dengan nilai terkait.\n\nKarena dalam hal ini nilai `a` adalah 10, maka assignment `a = a * a` dapat diartikan menjadi `a = 10 * 10`, jika kita operasikan maka didapat `a = 100`. Dari sanalah asal muasal nilai 100 didapat.\n\nGampangnya, ketika ada proses assignment, kita bisa membacanya dari kanan ke kiri. Nilai di kanan tanda sama dengan adalah nilai baru, sedangkan di sisi kiri tanda adalah variabel yang akan diubah nilainya.\n\nSebagai eksperimen, coba jalankan kode berikut ini dan cari tahu kenapa outputnya bisa begitu.\n\n```java\npublic class VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 10; \u002F\u002F inisialisasi variabel a\n    a = a * a;\n    a = a * a;\n    a = a * a;\n\n    System.out.println(a);\n  }\n}\n```\n\n## Selanjutnya\n\nSetelah mengetahui tentang variabel dan literal pada Java, pada kesempatan selanjutnya kita akan membahas tentang cara membuat kode kita menjadi lebih interaktif dengan sistem output.\n\nSelamat berkoding ria 👋\n","\u003Cp>Pada kesempatan kali ini kita akan membahas tentang literal dan variabel pada bahasa Java.\u003C\u002Fp>\n\u003Cp>Literal dan variabel merupakan komponen yang akan selalu kita gunakan ketika membuat program, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.\u003C\u002Fp>\n\u003Cp>Mari kita bahas.\u003C\u002Fp>\n\u003Ch2 id=\"literal-pada-bahasa-java\">Literal pada Bahasa Java\u003C\u002Fh2>\n\u003Cp>Pada konsep pemrograman, istilah literal adalah semua \u003Cstrong>nilai mentah\u003C\u002Fstrong> yang kita ketikkan pada kode program. Literal ini bisa berupa angka, huruf, kata, kalimat, nilai boolean, dan lain sebagainya.\u003C\u002Fp>\n\u003Cp>Masih belum kepikiran? coba kita lihat potongan 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=\"System.out.println(%22Hello%20World!%22)%3B\" 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>System.out.println(\"Hello World!\");\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nah, kita-kira pada kode tersebut mana yang termasuk literal?\u003C\u002Fp>\n\u003Cp>Pada kode tersebut, yang termasuk literal adalah \u003Ccode>“Hello World!”\u003C\u002Fcode>. Ini merupakan literal yang bertipe \u003Cstrong>string\u003C\u002Fstrong> atau disebut “string literal”.\u003C\u002Fp>\n\u003Cp>Kalau kita lihat, terdapat ciri yang menandakan bahwa \u003Ccode>&quot;Hello World!&quot;\u003C\u002Fcode> merupakan string literal. Sebuah string literal selalu diapit oleh tanda petik (\u003Ccode>”…”\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>Sehingga kita bisa membuat string literal yang lain seperti:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>“saya makan nasi”\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>&quot;dadu bermata 9&quot;\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>&quot;1945&quot;\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>&quot;@$#&amp;^*&quot;\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Itu semua merupakan string literal yang valid.\u003C\u002Fp>\n\u003Cp>Sebelumnya sudah disebutkan kalau literal memiliki banyak jenis. Tentunya untuk tiap jenis punya ciri dan aturan masing-masing yang berbeda sesuai tipe datanya.\u003C\u002Fp>\n\u003Cp>Contohnya saja:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Integer literal (angka bulat) — \u003Ccode>1945\u003C\u002Fcode>, \u003Ccode>-24434\u003C\u002Fcode>, \u003Ccode>0x4b\u003C\u002Fcode>, \u003Ccode>0b001\u003C\u002Fcode>, \u003Ccode>0xFeeL\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Float literal (angka desimal) — \u003Ccode>3.14159\u003C\u002Fcode>, \u003Ccode>.25\u003C\u002Fcode>, \u003Ccode>314E-2L\u003C\u002Fcode>, \u003Ccode>120f\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Boolean literal — \u003Ccode>true\u003C\u002Fcode>, \u003Ccode>false\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Character literal — \u003Ccode>&#39;a&#39;\u003C\u002Fcode>, \u003Ccode>&#39;*&#39;\u003C\u002Fcode>, \u003Ccode>&#39;\\n&#39;\u003C\u002Fcode>, \u003Ccode>&#39;\\t&#39;\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>String literal — bisa dilihat di contoh sebelumnya\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cblockquote>\n\u003Cp>Untuk lebih lengkapnya, tentang literal ini akan kita bahas pada kesempatan selanjutnya ketika membahas tentang tipe data.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>\u003Cstrong>Lalu apa fungsinya?\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Literal tidak akan bisa terpisahkan dari pemrograman. Ada manipulasi data berarti ada variabel. Ada variabel berarti ada literal. Kalau variabel adalah wadah, literal ini adalah isinya. Oleh karena itu, 2 istilah ini tidak bisa dipisahkan.\u003C\u002Fp>\n\u003Cp>Oke, selanjutnya kita bahas tentang variabel pada Java.\u003C\u002Fp>\n\u003Ch2 id=\"variabel-pada-bahasa-java\">Variabel pada Bahasa Java\u003C\u002Fh2>\n\u003Cp>Dalam pemrograman, variabel merupakan tempat penampung data. Variabel ini dapat diisi dengan banyak cara, termasuk adalah dengan literal seperti di atas, atau dengan \u003Ca href=\"https:\u002F\u002Fwww.invasikode.com\u002Fstatement-dan-expression-bedanya-apa\">expression\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3 id=\"membuat-variabel-inisialisasi\">Membuat Variabel (Inisialisasi)\u003C\u002Fh3>\n\u003Cp>Hal yang utama terkait dengan variabel adalah, tiap variabel harus punya nama, atau biasa disebut \u003Cem>\u003Cstrong>identifier\u003C\u002Fstrong>\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>Identifier ini berfungsi sebagai tanda pengenal dan perujuk variabel dalam format yang dimengerti manusia.\u003C\u002Fp>\n\u003Cp>Selain identifier, sebagai bahasa dengan gaya \u003Cem>\u003Cstrong>static typing\u003C\u002Fstrong>\u003C\u002Fem>, Java juga mengharuskan tiap variabel memiliki tipe data secara eksplisit.\u003C\u002Fp>\n\u003Cp>Seperti yang sudah kita singgung sebelumnya, tipe data ini akan menentukan literal apa yang dapat dimasukkan pada variabel terkait.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Lebih lanjut tentang tipe data pada Bahasa Java akan kita bahas pada kesempatan-kesempatan selanjutnya. Jika menemukan keyword tipe data seperti \u003Ccode>String\u003C\u002Fcode>, \u003Ccode>int\u003C\u002Fcode>, \u003Ccode>float\u003C\u002Fcode>, dan lain sebagainya jangan dipikirkan keras-keras apa artinya hehe..\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Secara umum, format pembuatan variabel pada bahasa Java adalah sebagai berikut:\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=\"%5Btipe_data%5D%20%5Bidentifier%5D%20%3D%20%5Bnilai_awal%5D\" 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>[tipe_data] [identifier] = [nilai_awal]\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Contohnya saja:\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%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20String%20nama%20%3D%20%22Inva%22%3B%0A%20%20%20%20int%20angka%20%3D%20125%3B%0A%20%20%20%20float%20pecahan%20%3D%200.12f%3B%0A%20%20%20%20boolean%20benar%20%3D%20true%3B%0A%20%20%20%20%0A%20%20%20%20System.out.println(%22nama%3A%20%22%20%2B%20nama)%3B%0A%20%20%20%20System.out.println(%22angka%3A%20%22%20%2B%20angka)%3B%0A%20%20%20%20System.out.println(%22pecahan%3A%20%22%20%2B%20pecahan)%3B%0A%20%20%20%20System.out.println(%22benar%3A%20%22%20%2B%20benar)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    String nama = \"Inva\";\n    int angka = 125;\n    float pecahan = 0.12f;\n    boolean benar = true;\n    \n    System.out.println(\"nama: \" + nama);\n    System.out.println(\"angka: \" + angka);\n    System.out.println(\"pecahan: \" + pecahan);\n    System.out.println(\"benar: \" + benar);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Jika 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=\"nama%3A%20Inva%0Aangka%3A%20125%0Apecahan%3A%200.12%0Abenar%3A%20true\" 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>nama: Inva\nangka: 125\npecahan: 0.12\nbenar: true\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Pada contoh tersebut, kita coba membuat 4 variabel dengan tipe data dan nilai awal yang berbeda.\u003C\u002Fp>\n\u003Cp>Hal yang perlu diperhatikan dalam inisialisasi variabel adalah, nilai awal variabel harus sesuai dengan tipe data yang kita berikan. Jika kita memasukkan nilai atau literal yang tidak sesuai, maka program akan langsung error — hal ini juga berlaku untuk assignment variabel.\u003C\u002Fp>\n\u003Cp>Contohnya saja:\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%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20String%20nama%20%3D%20125%3B%20%2F%2F%20angka%20tidak%20bisa%20masuk%20ke%20string%0A%20%20%20%20int%20angka%20%3D%20%22125%22%3B%20%2F%2F%20string%20tidak%20bisa%20masuk%20ke%20angka%0A%20%20%20%20%0A%20%20%20%20System.out.println(%22nama%3A%20%22%20%2B%20nama)%3B%0A%20%20%20%20System.out.println(%22angka%3A%20%22%20%2B%20angka)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    String nama = 125; \u002F\u002F angka tidak bisa masuk ke string\n    int angka = \"125\"; \u002F\u002F string tidak bisa masuk ke angka\n    \n    System.out.println(\"nama: \" + nama);\n    System.out.println(\"angka: \" + angka);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Bila kita jalankan pasti akan keluar error tipe data yang kurang lebih 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=\"%2FVariabelDanLiteral.java%3A3%3A%20error%3A%20incompatible%20types%3A%20int%20cannot%20be%20converted%20to%20String%0A%20%20%20%20String%20nama%20%3D%20125%3B%20%2F%2F%20angka%20tidak%20bisa%20masuk%20ke%20string%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E%0A%2FVariabelDanLiteral.java%3A4%3A%20error%3A%20incompatible%20types%3A%20String%20cannot%20be%20converted%20to%20int%0A%20%20%20%20int%20angka%20%3D%20%22125%22%3B%20%2F%2F%20string%20tidak%20bisa%20masuk%20ke%20angka%0A%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%5E%0A2%20errors\" 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>\u002FVariabelDanLiteral.java:3: error: incompatible types: int cannot be converted to String\n    String nama = 125; \u002F\u002F angka tidak bisa masuk ke string\n                  ^\n\u002FVariabelDanLiteral.java:4: error: incompatible types: String cannot be converted to int\n    int angka = \"125\"; \u002F\u002F string tidak bisa masuk ke angka\n                ^\n2 errors\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Dari errornya saja sudah cukup menjelaskan ya.\u003C\u002Fp>\n\u003Ch3 id=\"mengakses-nilai-variabel\">Mengakses Nilai Variabel\u003C\u002Fh3>\n\u003Cp>Variabel yang sudah kita buat ini bisa diakses dengan cara memanggil namanya. Ketika dipanggil namanya, variabel akan mengeluarkan nilai yang ada didalamnya.\u003C\u002Fp>\n\u003Cp>Contohnya saja seperti kode di atas. Kita memanggil variabel \u003Ccode>nama\u003C\u002Fcode>, \u003Ccode>angka\u003C\u002Fcode>, \u003Ccode>pecahan\u003C\u002Fcode>, dan \u003Ccode>benar\u003C\u002Fcode> dengan menuliskannya sebagai argumen dari fungsi \u003Ccode>println\u003C\u002Fcode>. Oleh karena itu, yang keluar di layar adalah isi dari variabel terkait.\u003C\u002Fp>\n\u003Cp>Tidak jarang juga ada yang bingung, apa bedanya pemanggilan variabel dengan penulisan literal string. Terutama ketika kita punya nama variabel yang identik dengan literal yang ingin ditulis.\u003C\u002Fp>\n\u003Cp>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=\"public%20class%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20String%20nama%20%3D%20%22Inva%22%0A%20%20%20%20%0A%20%20%20%20System.out.println(%22nama%22)%3B%0A%20%20%20%20System.out.println(nama)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    String nama = \"Inva\"\n    \n    System.out.println(\"nama\");\n    System.out.println(nama);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Pada contoh tersebut, kita membuat variabel dengan identifier \u003Ccode>nama\u003C\u002Fcode>. Selanjutnya, pada \u003Ccode>println\u003C\u002Fcode> kita mengisi argumen dengan nilai yang sekilas sama.\u003C\u002Fp>\n\u003Cp>Ingat! Untuk memanggil variabel, kita hanya perlu menuliskan namanya saja. Pada \u003Ccode>println\u003C\u002Fcode> yang pertama, karena kita menggunakan tanda petik, maka Java menganggapnya sebagai literal string biasa.\u003C\u002Fp>\n\u003Cp>Sedangkan, pada \u003Ccode>println\u003C\u002Fcode> yang kedua kita melakukan pemanggilan pada variabel \u003Ccode>nama\u003C\u002Fcode>, sehingga yang keluar adalah isi dari variabel tersebut yaitu &quot;Inva&quot;.\u003C\u002Fp>\n\u003Cp>Sehingga 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=\"nama%0AInva\" 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>nama\nInva\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Terlihat ya bedanya.\u003C\u002Fp>\n\u003Cp>Pemanggilan variabel juga dapat digunakan dalam operasi data. Seperti penjumlahan, pengurangan, dan lain sebagainya. Contohnya saja 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%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%209%3B%0A%20%20%20%20int%20b%20%3D%2012%3B%0A%20%20%20%20%0A%20%20%20%20String%20namaDepan%20%3D%20%22Inva%22%3B%0A%20%20%20%20String%20namaBelakang%20%3D%20%22sikode%22%3B%0A%20%20%20%20%0A%20%20%20%20%2F%2F%20nilai%20variabel%20jumlah%20adalah%209%20%2B%2012%20%3D%2021%0A%20%20%20%20int%20jumlah%20%3D%20a%20%2B%20b%3B%0A%20%20%20%20%2F%2F%20nilai%20variabel%20namaLngkp%20adalah%20Invasikode%0A%20%20%20%20String%20namaLengkap%20%3D%20namaDepan%20%2B%20namaBelakang%3B%0A%20%20%20%20%0A%20%20%20%20System.out.println(jumlah)%3B%0A%20%20%20%20System.out.println(namaLengkap)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 9;\n    int b = 12;\n    \n    String namaDepan = \"Inva\";\n    String namaBelakang = \"sikode\";\n    \n    \u002F\u002F nilai variabel jumlah adalah 9 + 12 = 21\n    int jumlah = a + b;\n    \u002F\u002F nilai variabel namaLngkp adalah Invasikode\n    String namaLengkap = namaDepan + namaBelakang;\n    \n    System.out.println(jumlah);\n    System.out.println(namaLengkap);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Output:\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=\"21%0AInvasikode\" 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>21\nInvasikode\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Lebih lanjut tentang operasi tipe data akan kita bahas pada kesempatan-kesempatan selanjutnya.\u003C\u002Fp>\n\u003Ch2 id=\"memasukkan-nilai-pada-variabel-assignment\">Memasukkan Nilai pada Variabel (Assignment)\u003C\u002Fh2>\n\u003Cp>Sebagai tempat penyimpan data, variabel juga bisa diubah isinya. Perubahan data ini dilakukan dengan memasukkan data baru, atau disebut dengan assignment.\u003C\u002Fp>\n\u003Cp>Untuk melakukan assignment, kita perlu memanggil nama variabel yang sudah diinisialisasi diikuti tanda sama dengan (\u003Ccode>=\u003C\u002Fcode>) dan nilai yang ingin dimasukkan.\u003C\u002Fp>\n\u003Cp>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=\"public%20class%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%200%3B%20%2F%2F%20inisialisasi%20variabel%20a%0A%20%20%20%20a%20%3D%2012%3B%20%20%20%20%2F%2F%20mengubah%20isi%20variabel%20a%20dari%209%20menjadi%2012%0A%0A%20%20%20%20System.out.println(a)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 0; \u002F\u002F inisialisasi variabel a\n    a = 12;    \u002F\u002F mengubah isi variabel a dari 9 menjadi 12\n\n    System.out.println(a);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Jika kita jalankan, maka angka yang akan keluar adalah 12.\u003C\u002Fp>\n\u003Cp>Selain menggunakan literal langsung, kita juga bisa menggunakan expresi untuk mengisi variabel. Contohnya saja 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%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%200%3B%20%2F%2F%20inisialisasi%20variabel%20a%0A%20%20%20%20a%20%3D%2010%20*%203%20-%203%3B%20%2F%2F%20nilai%20a%20%3D%2027%0A%0A%20%20%20%20System.out.println(a)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 0; \u002F\u002F inisialisasi variabel a\n    a = 10 * 3 - 3; \u002F\u002F nilai a = 27\n\n    System.out.println(a);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Jika program tersebut kita jalankan, maka yang akan keluar adalah 27. Ini karena Java secara otomatis menghitung operasi bilangan pada assignment variabel \u003Ccode>a\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Sekarang, bagaimana jika kita memanggil variabel untuk mengisi dirinya sendiri? Kira-kira apa yang akan terjadi? Mari kita coba.\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%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%2010%3B%20%2F%2F%20inisialisasi%20variabel%20a%0A%20%20%20%20a%20%3D%20a%20*%20a%3B%20%20%2F%2F%20nilai%20a%20%3D%20%3F%0A%0A%20%20%20%20System.out.println(a)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 10; \u002F\u002F inisialisasi variabel a\n    a = a * a;  \u002F\u002F nilai a = ?\n\n    System.out.println(a);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Pada program tersebut, kita membuat variabel \u003Ccode>a\u003C\u002Fcode> dengan nilai awal 10. Pada baris selanjutnya kita melakukan assignment \u003Ccode>a = a * a\u003C\u002Fcode>, artinya kita mencoba memasukkan nilai variabel \u003Ccode>a\u003C\u002Fcode> ke dalam dirinya sendiri.\u003C\u002Fp>\n\u003Cp>Coba kita jalankan.\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=\"100\" 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>100\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nah loh, yang keluar nilai 100. Nilai ini asalnya dari mana?\u003C\u002Fp>\n\u003Cp>Sesuai ekspresi yang kita ketikkan pada kode program, ketika kita melakukan pemanggilan variabel maka identifier akan diubah sesuai dengan nilai terkait.\u003C\u002Fp>\n\u003Cp>Karena dalam hal ini nilai \u003Ccode>a\u003C\u002Fcode> adalah 10, maka assignment \u003Ccode>a = a * a\u003C\u002Fcode> dapat diartikan menjadi \u003Ccode>a = 10 * 10\u003C\u002Fcode>, jika kita operasikan maka didapat \u003Ccode>a = 100\u003C\u002Fcode>. Dari sanalah asal muasal nilai 100 didapat.\u003C\u002Fp>\n\u003Cp>Gampangnya, ketika ada proses assignment, kita bisa membacanya dari kanan ke kiri. Nilai di kanan tanda sama dengan adalah nilai baru, sedangkan di sisi kiri tanda adalah variabel yang akan diubah nilainya.\u003C\u002Fp>\n\u003Cp>Sebagai eksperimen, coba jalankan kode berikut ini dan cari tahu kenapa outputnya bisa begitu.\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%20VariabelDanLiteral%7B%0A%20%20public%20static%20void%20main(String%5B%5D%20args)%20%7B%0A%20%20%20%20int%20a%20%3D%2010%3B%20%2F%2F%20inisialisasi%20variabel%20a%0A%20%20%20%20a%20%3D%20a%20*%20a%3B%0A%20%20%20%20a%20%3D%20a%20*%20a%3B%0A%20%20%20%20a%20%3D%20a%20*%20a%3B%0A%0A%20%20%20%20System.out.println(a)%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 VariabelDanLiteral{\n  public static void main(String[] args) {\n    int a = 10; \u002F\u002F inisialisasi variabel a\n    a = a * a;\n    a = a * a;\n    a = a * a;\n\n    System.out.println(a);\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C\u002Fh2>\n\u003Cp>Setelah mengetahui tentang variabel dan literal pada Java, pada kesempatan selanjutnya kita akan membahas tentang cara membuat kode kita menjadi lebih interaktif dengan sistem output.\u003C\u002Fp>\n\u003Cp>Selamat berkoding ria 👋\u003C\u002Fp>\n","",[231,250,263,276,289,310],{"id":232,"title":233,"title_en":21,"slug":234,"excerpt":235,"excerpt_en":21,"has_translation":15,"published_at":236,"reading_time":237,"hidden_from_listing":15,"tags":238,"thumbnail_image":21,"og_image":241,"series":242,"authors":247},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",6,[239,240],"python","string","\u002Fog\u002Fpython-strings.png",{"id":243,"title":244,"title_en":245,"slug":246},30,"Koleksi dan String","Collections and Strings","python-collections",[248],{"authors_id":249},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":251,"title":252,"title_en":21,"slug":253,"excerpt":254,"excerpt_en":21,"has_translation":15,"published_at":255,"reading_time":237,"hidden_from_listing":15,"tags":256,"thumbnail_image":21,"og_image":258,"series":259,"authors":260},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",[239,257],"tuple","\u002Fog\u002Fpython-tuples.png",{"id":243,"title":244,"title_en":245,"slug":246},[261],{"authors_id":262},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":264,"title":265,"title_en":21,"slug":266,"excerpt":267,"excerpt_en":21,"has_translation":15,"published_at":268,"reading_time":237,"hidden_from_listing":15,"tags":269,"thumbnail_image":21,"og_image":271,"series":272,"authors":273},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",[239,270],"set","\u002Fog\u002Fpython-sets.png",{"id":243,"title":244,"title_en":245,"slug":246},[274],{"authors_id":275},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":277,"title":278,"title_en":21,"slug":279,"excerpt":280,"excerpt_en":21,"has_translation":15,"published_at":281,"reading_time":237,"hidden_from_listing":15,"tags":282,"thumbnail_image":21,"og_image":284,"series":285,"authors":286},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",[239,283],"dictionary","\u002Fog\u002Fpython-dictionary.png",{"id":243,"title":244,"title_en":245,"slug":246},[287],{"authors_id":288},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":290,"title":291,"title_en":292,"slug":293,"excerpt":294,"excerpt_en":295,"has_translation":12,"published_at":296,"reading_time":14,"hidden_from_listing":15,"tags":297,"thumbnail_image":21,"og_image":304,"series":305,"authors":307},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",[298,299,300,301,302,303],"rag","cloud-run","cloud-tasks","gcp","serverless","arsitektur","\u002Fog\u002Frag-pisah-jalur-query-dan-ingestion.png",{"id":306,"title":35,"title_en":36,"slug":37},8,[308],{"authors_id":309},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":311,"title":312,"title_en":313,"slug":314,"excerpt":315,"excerpt_en":316,"has_translation":12,"published_at":317,"reading_time":237,"hidden_from_listing":15,"tags":318,"thumbnail_image":21,"og_image":325,"series":326,"authors":327},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",[319,320,321,322,323,324],"multi-agent","langgraph","autogen","orkestrasi","checkpoint","llm","\u002Fog\u002Fmulti-agen-linear-atau-grafik.png",{"id":306,"title":35,"title_en":36,"slug":37},[328],{"authors_id":329},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},[331,335,338,341,344,347],{"text":332,"depth":333,"id":334},"Literal pada Bahasa Java",2,"literal-pada-bahasa-java",{"text":336,"depth":333,"id":337},"Variabel pada Bahasa Java","variabel-pada-bahasa-java",{"text":339,"depth":118,"id":340},"Membuat Variabel (Inisialisasi)","membuat-variabel-inisialisasi",{"text":342,"depth":118,"id":343},"Mengakses Nilai Variabel","mengakses-nilai-variabel",{"text":345,"depth":333,"id":346},"Memasukkan Nilai pada Variabel (Assignment)","memasukkan-nilai-pada-variabel-assignment",{"text":348,"depth":333,"id":349},"Selanjutnya","selanjutnya",1793295835463]