[{"data":1,"prerenderedAt":353},["ShallowReactive",2],{"tag-labels":3,"site-header":4,"article-mengenal-struktur-dasar-program-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},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,84,85,86],"java","syntax","dasar","konsep","\u002Fog\u002Fmengenal-struktur-dasar-program-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,149,165,180,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,85],"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,85],"\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":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":145,"authors":146},{"id":89,"title":90,"title_en":91,"slug":92},[147],{"authors_id":148},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":150,"title":151,"title_en":152,"slug":153,"excerpt":154,"excerpt_en":155,"has_translation":12,"published_at":156,"reading_time":118,"hidden_from_listing":15,"tags":157,"thumbnail_image":21,"og_image":160,"series":161,"authors":162},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,158,84,159],"komentar","best-practice","\u002Fog\u002Fpenulisan-komentar-pada-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[163],{"authors_id":164},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":166,"title":167,"title_en":168,"slug":169,"excerpt":170,"excerpt_en":171,"has_translation":12,"published_at":172,"reading_time":14,"hidden_from_listing":15,"tags":173,"thumbnail_image":21,"og_image":175,"series":176,"authors":177},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,174,85],"input-output","\u002Fog\u002Fsistem-output-pada-bahasa-java.png",{"id":89,"title":90,"title_en":91,"slug":92},[178],{"authors_id":179},{"id":127,"name":128,"slug":129,"role":130,"profile_picture":21},{"id":181,"title":182,"title_en":183,"slug":184,"excerpt":185,"excerpt_en":186,"has_translation":12,"published_at":187,"reading_time":188,"hidden_from_listing":15,"tags":189,"thumbnail_image":21,"og_image":191,"series":192,"authors":193},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,190,86,85],"variabel","\u002Fog\u002Fvariabel-dan-literal-pada-bahasa-java.png",{"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":188,"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,174,85],"\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","Setelah sebelumnya kita membuat [program \"Hello World\"](\u002Fp\u002Fmembuat-program-hello-world-pada-java), pada kesempatan kali ini kita akan coba membedah kode tersebut untuk melihat struktur dari kode Java.\n\nJangan salah. Ibarat menulis skripsi, membuat program ternyata juga ada strukturnya. Dan struktur ini harus sesuai supaya tidak ditolak oleh sang ~~dosbing~~ komputer.\n\nOke, langsung saja.\n\n## Tentang Kode Java\n\nPada umumnya, file kode Java ditandai dengan ekstensi `.java`.\n\nPenulisan kode Java harus dibuat sesuai kaidah bahasa Java. Ada aturan dan sintaks khusus yang harus kita ikuti agar program bisa dikompilasi dan dijalankan.\n\nJika terdapat kesalahan dalam sintaks yang kita ketikkan, maka secara otomatis kompiler Java akan mengeluarkan error. Kalau error artinya program kita tidak bisa dijalankan 😞.\n\nNah, itulah alasan mengapa harus mengetahui aturan kode Java sebelum ketik-ketik kode. Mari kita mulai dengan strukturnya terlebih dahulu.\n\n## Struktur Program Java\n\nSebelum lanjut, ada baiknya kalau kita lihat lagi kode \"Hello World\" yang sudah pernah kita buat.\n\n```java\npublic class HelloWorld {\n  public static void main(String args[]) {\n    System.out.println(\"Hello World!\");\n  }\n}\n```\n\nNah, dari kode tersebut kita akan coba bedah satu per satu sesuai struktur kode Java.\n\n### 1. Deklarasi Kelas Utama\n\nPada bahasa Java, semuanya adalah objek. Nah, sebuah objek biasanya ditandai dengan keyword `class`.\n\nPada contoh \"Hello World\" di atas, kita membuat deklarasi kelas utama dengan nama `HelloWorld`\n\n```java\npublic class HelloWorld {\n  ...\n}\n```\n\nSemua kode di dalam tanda kurung kurawal (`{...}`) disebut sebagai tubuh kelas. Tubuh kelas ini nanti dapat berisi **deklarasi variabel** dan **fungsi-fungsi**.\n\n> Dalam konsep OOP, variabel yang dideklarasikan di dalam `class` disebut dengan ***attribute***, sedangkan fungsi-fungsi di dalam `class` disebut dengan ***method***. Kita akan bahas lebih lanjut tentang hal ini pada bagian OOP dengan Java.\n\nAturannya, dalam satu file `.java` hanya boleh ada satu kelas utama. Kelas utama ini ditandai dengan keyword `public` dan namanya harus sama dengan nama file yang kita buat.\n\nContoh, karena dalam kasus ini kita membuat kelas utama dengan nama `HelloWorld`, maka file yang kita buat harus memiliki nama yang sama yaitu `HelloWorld.java`.\n\n### 2. Deklarasi Fungsi Utama\n\nSetelah kelas utama, selanjutnya ada fungsi utama atau ***main method***.\n\n— *Di sini kita bicara fungsi sebagai kata benda ya, bukan kata kerja. Kalau ada kalimat \"fungsi yang berfungsi untuk ...\" itu normal ya, diharap jangan bingung hehe..*\n\nFungsi adalah blok program yang berisi logika yang kita inginkan. Fungsi ini nantinya dapat dipanggil untuk melakukan sesuatu.\n\nPada contoh \"Hello World\" di atas, fungsi utama adalah pada blok ini:\n\n```java\npublic static void main(String args[]) {\n  ...\n}\n```\n\nSama seperti deklarasi kelas, satu blok fungsi dimulai dengan tanda kurung kurawal buka (`{`) dan diakhiri kurung kurawal tutup (`}`). Semua kode yang ada di antara kurung kurawal ini adalah badan fungsi yang berisi logika yang kita inginkan.\n\nMain method dalam bahasa Java ditandai dengan identifier `main`. Nama ini mutlak, karena Java menggunakannya sebagai titik mulai dari kode yang kita buat.\n\nUntuk sementara tidak perlu tahu arti dari `public static void` dan `String args[]`, kita akan bahas pada kesempatan-kesempatan selanjutnya.\n\n### 3. Tubuh Fungsi Utama\n\nYang terakhir dari bagian utama kode Java adalah tubuh fungsi.\n\nSeperti yang disebutkan sebelumnya, tubuh fungsi merupakan tempat kita menuliskan logika yang diinginkan.\n\nDalam contoh ini karena kita ingin mengeluarkan tulisan \"Hello World\" pada konsol, maka kita harus menuliskan logika yang sesuai yaitu:\n\n```java\nSystem.out.println(\"Hello World\");\n```\n\nKode tersebut merupakan perintah output yang berfungsi untuk memerintahkan komputer menuliskan \"Hello World\" di konsol.\n\nDalam tubuh fungsi utama inilah kita akan menuliskan kode-kode kita. Mulai dari input\u002Foutput, deklarasi variabel, struktur kontrol, dan banyak lagi yang lainnya. Semua akan kita bahas di kesempatan-kesempatan selanjutnya.\n\n## Aturan Penulisan Kode Java\n\nSetelah tahu tentang struktur kode Java, sekarang kita akan bahas tentang aturan sintaksnya.\n\nSintaks ini ibaratnya sama seperti aturan ketika menulis teks dalam bahasa Indonesia. Ada aturan huruf kapital, penggunaan tanda baca, hingga ejaan yang harus dipenuhi.\n\nDalam bahasa Java, aturan penulisan umumnya adalah sebagai berikut:\n\n* **Pembuatan nama (*identifier*)** — Identifier merupakan nama yang kita berikan pada variabel, fungsi, class, dan yang sejenisnya. Identifier dapat ditulis dengan huruf besar dan kecil (`A-Z`, `a-z`), angka (`0-9`) dan karakter `$` serta `_`. Dalam penulisannya tidak boleh ada spasi, tidak boleh juga diawali dengan angka.\n* **Penggunaan titik koma (`;`)** — Titik koma pada Java digunakan untuk mengakhiri satu baris perintah. Perintah ini termasuk deklarasi variabel, pemanggilan fungsi, dan statement lainnya.\n* **Penggunaan kurung kurawal (`{...}`)** — Kurung kurawal digunakan sebagai penanda satu blok program. Blok program merupakan satu atau beberapa perintah yang dikumpulkan menjadi satu. Kita biasa menemukan kurung kurawal ini ketika membuat fungsi, kelas, serta pemanggilan struktur kontrol.\n* **Penggunaan tanda titik (`.`)** — Tanda titik dalam bahasa Java digunakan untuk mengakses atribut dan method dari sebuah objek. Dalam contoh hello world di atas, kita menggunakan tanda titik untuk mengakses atribut `out` dari objek `System`, lalu mengakses method `println` dari objek `out`. Selain untuk itu, tanda titik juga digunakan sebagai pengganti koma pada bilangan desimal — jadi bukan `0,9` tetapi `0.9`.\n\nSebenarnya masih banyak aturan dan tanda baca yang bisa kita gunakan seperti tanda tanya, koma, dan titik dua. Tapi itu semua akan kita bahas pada kesempatan-kesempatan selanjutnya.\n\n## Selanjutnya\n\nSelalu ingat struktur ini, karena ini adalah aturan yang harus kita ketahui untuk menulis kode Java.\n\nIni hanya struktur dasar ya, nantinya akan ada banyak struktur tambahan yang akan sangat membantu kita dalam menulis kode. Pastinya akan kita bahas pada kesempatan lainnya.\n\nSelanjutnya kita akan membahas tentang komentar pada bahasa Java.\n\nSelamat berkoding ria 👋\n","\u003Cp>Setelah sebelumnya kita membuat \u003Ca href=\"\u002Fp\u002Fmembuat-program-hello-world-pada-java\">program &quot;Hello World&quot;\u003C\u002Fa>, pada kesempatan kali ini kita akan coba membedah kode tersebut untuk melihat struktur dari kode Java.\u003C\u002Fp>\n\u003Cp>Jangan salah. Ibarat menulis skripsi, membuat program ternyata juga ada strukturnya. Dan struktur ini harus sesuai supaya tidak ditolak oleh sang \u003Cdel>dosbing\u003C\u002Fdel> komputer.\u003C\u002Fp>\n\u003Cp>Oke, langsung saja.\u003C\u002Fp>\n\u003Ch2 id=\"tentang-kode-java\">Tentang Kode Java\u003C\u002Fh2>\n\u003Cp>Pada umumnya, file kode Java ditandai dengan ekstensi \u003Ccode>.java\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Penulisan kode Java harus dibuat sesuai kaidah bahasa Java. Ada aturan dan sintaks khusus yang harus kita ikuti agar program bisa dikompilasi dan dijalankan.\u003C\u002Fp>\n\u003Cp>Jika terdapat kesalahan dalam sintaks yang kita ketikkan, maka secara otomatis kompiler Java akan mengeluarkan error. Kalau error artinya program kita tidak bisa dijalankan 😞.\u003C\u002Fp>\n\u003Cp>Nah, itulah alasan mengapa harus mengetahui aturan kode Java sebelum ketik-ketik kode. Mari kita mulai dengan strukturnya terlebih dahulu.\u003C\u002Fp>\n\u003Ch2 id=\"struktur-program-java\">Struktur Program Java\u003C\u002Fh2>\n\u003Cp>Sebelum lanjut, ada baiknya kalau kita lihat lagi kode &quot;Hello World&quot; yang sudah pernah kita buat.\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%20HelloWorld%20%7B%0A%20%20public%20static%20void%20main(String%20args%5B%5D)%20%7B%0A%20%20%20%20System.out.println(%22Hello%20World!%22)%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 HelloWorld {\n  public static void main(String args[]) {\n    System.out.println(\"Hello World!\");\n  }\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Nah, dari kode tersebut kita akan coba bedah satu per satu sesuai struktur kode Java.\u003C\u002Fp>\n\u003Ch3 id=\"1-deklarasi-kelas-utama\">1. Deklarasi Kelas Utama\u003C\u002Fh3>\n\u003Cp>Pada bahasa Java, semuanya adalah objek. Nah, sebuah objek biasanya ditandai dengan keyword \u003Ccode>class\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Pada contoh &quot;Hello World&quot; di atas, kita membuat deklarasi kelas utama dengan nama \u003Ccode>HelloWorld\u003C\u002Fcode>\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%20HelloWorld%20%7B%0A%20%20...%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 HelloWorld {\n  ...\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Semua kode di dalam tanda kurung kurawal (\u003Ccode>{...}\u003C\u002Fcode>) disebut sebagai tubuh kelas. Tubuh kelas ini nanti dapat berisi \u003Cstrong>deklarasi variabel\u003C\u002Fstrong> dan \u003Cstrong>fungsi-fungsi\u003C\u002Fstrong>.\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>Dalam konsep OOP, variabel yang dideklarasikan di dalam \u003Ccode>class\u003C\u002Fcode> disebut dengan \u003Cem>\u003Cstrong>attribute\u003C\u002Fstrong>\u003C\u002Fem>, sedangkan fungsi-fungsi di dalam \u003Ccode>class\u003C\u002Fcode> disebut dengan \u003Cem>\u003Cstrong>method\u003C\u002Fstrong>\u003C\u002Fem>. Kita akan bahas lebih lanjut tentang hal ini pada bagian OOP dengan Java.\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Cp>Aturannya, dalam satu file \u003Ccode>.java\u003C\u002Fcode> hanya boleh ada satu kelas utama. Kelas utama ini ditandai dengan keyword \u003Ccode>public\u003C\u002Fcode> dan namanya harus sama dengan nama file yang kita buat.\u003C\u002Fp>\n\u003Cp>Contoh, karena dalam kasus ini kita membuat kelas utama dengan nama \u003Ccode>HelloWorld\u003C\u002Fcode>, maka file yang kita buat harus memiliki nama yang sama yaitu \u003Ccode>HelloWorld.java\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Ch3 id=\"2-deklarasi-fungsi-utama\">2. Deklarasi Fungsi Utama\u003C\u002Fh3>\n\u003Cp>Setelah kelas utama, selanjutnya ada fungsi utama atau \u003Cem>\u003Cstrong>main method\u003C\u002Fstrong>\u003C\u002Fem>.\u003C\u002Fp>\n\u003Cp>— \u003Cem>Di sini kita bicara fungsi sebagai kata benda ya, bukan kata kerja. Kalau ada kalimat &quot;fungsi yang berfungsi untuk ...&quot; itu normal ya, diharap jangan bingung hehe..\u003C\u002Fem>\u003C\u002Fp>\n\u003Cp>Fungsi adalah blok program yang berisi logika yang kita inginkan. Fungsi ini nantinya dapat dipanggil untuk melakukan sesuatu.\u003C\u002Fp>\n\u003Cp>Pada contoh &quot;Hello World&quot; di atas, fungsi utama adalah pada blok 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%20static%20void%20main(String%20args%5B%5D)%20%7B%0A%20%20...%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 static void main(String args[]) {\n  ...\n}\u003C\u002Fcode>\u003C\u002Fpre>\n  \u003C\u002Fdiv>\n\u003C\u002Fdiv>\u003Cp>Sama seperti deklarasi kelas, satu blok fungsi dimulai dengan tanda kurung kurawal buka (\u003Ccode>{\u003C\u002Fcode>) dan diakhiri kurung kurawal tutup (\u003Ccode>}\u003C\u002Fcode>). Semua kode yang ada di antara kurung kurawal ini adalah badan fungsi yang berisi logika yang kita inginkan.\u003C\u002Fp>\n\u003Cp>Main method dalam bahasa Java ditandai dengan identifier \u003Ccode>main\u003C\u002Fcode>. Nama ini mutlak, karena Java menggunakannya sebagai titik mulai dari kode yang kita buat.\u003C\u002Fp>\n\u003Cp>Untuk sementara tidak perlu tahu arti dari \u003Ccode>public static void\u003C\u002Fcode> dan \u003Ccode>String args[]\u003C\u002Fcode>, kita akan bahas pada kesempatan-kesempatan selanjutnya.\u003C\u002Fp>\n\u003Ch3 id=\"3-tubuh-fungsi-utama\">3. Tubuh Fungsi Utama\u003C\u002Fh3>\n\u003Cp>Yang terakhir dari bagian utama kode Java adalah tubuh fungsi.\u003C\u002Fp>\n\u003Cp>Seperti yang disebutkan sebelumnya, tubuh fungsi merupakan tempat kita menuliskan logika yang diinginkan.\u003C\u002Fp>\n\u003Cp>Dalam contoh ini karena kita ingin mengeluarkan tulisan &quot;Hello World&quot; pada konsol, maka kita harus menuliskan logika yang sesuai yaitu:\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>Kode tersebut merupakan perintah output yang berfungsi untuk memerintahkan komputer menuliskan &quot;Hello World&quot; di konsol.\u003C\u002Fp>\n\u003Cp>Dalam tubuh fungsi utama inilah kita akan menuliskan kode-kode kita. Mulai dari input\u002Foutput, deklarasi variabel, struktur kontrol, dan banyak lagi yang lainnya. Semua akan kita bahas di kesempatan-kesempatan selanjutnya.\u003C\u002Fp>\n\u003Ch2 id=\"aturan-penulisan-kode-java\">Aturan Penulisan Kode Java\u003C\u002Fh2>\n\u003Cp>Setelah tahu tentang struktur kode Java, sekarang kita akan bahas tentang aturan sintaksnya.\u003C\u002Fp>\n\u003Cp>Sintaks ini ibaratnya sama seperti aturan ketika menulis teks dalam bahasa Indonesia. Ada aturan huruf kapital, penggunaan tanda baca, hingga ejaan yang harus dipenuhi.\u003C\u002Fp>\n\u003Cp>Dalam bahasa Java, aturan penulisan umumnya adalah sebagai berikut:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Pembuatan nama (\u003Cem>identifier\u003C\u002Fem>)\u003C\u002Fstrong> — Identifier merupakan nama yang kita berikan pada variabel, fungsi, class, dan yang sejenisnya. Identifier dapat ditulis dengan huruf besar dan kecil (\u003Ccode>A-Z\u003C\u002Fcode>, \u003Ccode>a-z\u003C\u002Fcode>), angka (\u003Ccode>0-9\u003C\u002Fcode>) dan karakter \u003Ccode>$\u003C\u002Fcode> serta \u003Ccode>_\u003C\u002Fcode>. Dalam penulisannya tidak boleh ada spasi, tidak boleh juga diawali dengan angka.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Penggunaan titik koma (\u003Ccode>;\u003C\u002Fcode>)\u003C\u002Fstrong> — Titik koma pada Java digunakan untuk mengakhiri satu baris perintah. Perintah ini termasuk deklarasi variabel, pemanggilan fungsi, dan statement lainnya.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Penggunaan kurung kurawal (\u003Ccode>{...}\u003C\u002Fcode>)\u003C\u002Fstrong> — Kurung kurawal digunakan sebagai penanda satu blok program. Blok program merupakan satu atau beberapa perintah yang dikumpulkan menjadi satu. Kita biasa menemukan kurung kurawal ini ketika membuat fungsi, kelas, serta pemanggilan struktur kontrol.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Penggunaan tanda titik (\u003Ccode>.\u003C\u002Fcode>)\u003C\u002Fstrong> — Tanda titik dalam bahasa Java digunakan untuk mengakses atribut dan method dari sebuah objek. Dalam contoh hello world di atas, kita menggunakan tanda titik untuk mengakses atribut \u003Ccode>out\u003C\u002Fcode> dari objek \u003Ccode>System\u003C\u002Fcode>, lalu mengakses method \u003Ccode>println\u003C\u002Fcode> dari objek \u003Ccode>out\u003C\u002Fcode>. Selain untuk itu, tanda titik juga digunakan sebagai pengganti koma pada bilangan desimal — jadi bukan \u003Ccode>0,9\u003C\u002Fcode> tetapi \u003Ccode>0.9\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Sebenarnya masih banyak aturan dan tanda baca yang bisa kita gunakan seperti tanda tanya, koma, dan titik dua. Tapi itu semua akan kita bahas pada kesempatan-kesempatan selanjutnya.\u003C\u002Fp>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C\u002Fh2>\n\u003Cp>Selalu ingat struktur ini, karena ini adalah aturan yang harus kita ketahui untuk menulis kode Java.\u003C\u002Fp>\n\u003Cp>Ini hanya struktur dasar ya, nantinya akan ada banyak struktur tambahan yang akan sangat membantu kita dalam menulis kode. Pastinya akan kita bahas pada kesempatan lainnya.\u003C\u002Fp>\n\u003Cp>Selanjutnya kita akan membahas tentang komentar pada bahasa Java.\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,350],{"text":332,"depth":333,"id":334},"Tentang Kode Java",2,"tentang-kode-java",{"text":336,"depth":333,"id":337},"Struktur Program Java","struktur-program-java",{"text":339,"depth":118,"id":340},"1. Deklarasi Kelas Utama","1-deklarasi-kelas-utama",{"text":342,"depth":118,"id":343},"2. Deklarasi Fungsi Utama","2-deklarasi-fungsi-utama",{"text":345,"depth":118,"id":346},"3. Tubuh Fungsi Utama","3-tubuh-fungsi-utama",{"text":348,"depth":333,"id":349},"Aturan Penulisan Kode Java","aturan-penulisan-kode-java",{"text":351,"depth":333,"id":352},"Selanjutnya","selanjutnya",1793295834640]