[{"data":1,"prerenderedAt":214},["ShallowReactive",2],{"site-header":3,"site-footer-license":37,"article-mengenal-struktur-dasar-program-java-with-latest":41},{"navigations":4},[5,20],{"collection":6,"item":7},"series",{"__typename":6,"title":8,"slug":9,"children_series":10},"Artikel","all",[11,14,17],{"title":12,"slug":13},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":15,"slug":16},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":18,"slug":19},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":6,"item":21},{"__typename":6,"title":22,"slug":23,"children_series":24},"Tutorial","tutorial",[25,28,31,34],{"title":26,"slug":27},"Belajar Java","belajar-java",{"title":29,"slug":30},"Belajar Pascal","belajar-pascal",{"title":32,"slug":33},"Belajar Python","belajar-python",{"title":35,"slug":36},"Belajar Golang","belajar-golang",{"name":38,"url":39,"show":40},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"article":42,"renderedBody":136,"renderedTakeaway":137,"latestArticles":138,"toc":190},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":55,"takeway":56,"body":57,"authors":58,"series":64},"51","Mengenal Struktur Dasar Program Java","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.","2022-08-12T09:43:57.000Z",{"id":49},"dbfbf54c-b840-4c44-9f70-ddb80434a47d",[51,52,53,54],"java","syntax","dasar","konsep",4,null,"Setelah sebelumnya kita membuat [program \"Hello World\"](/p/membuat-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/output, 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 👋",[59],{"authors_id":60},{"name":61,"slug":62,"role":63,"profile_picture":56},"Daffa Izzuddin","izzudd","Writer",{"id":65,"title":66,"slug":67,"articles":68,"parent_series":126},"21","Berkenalan dengan Java","java-intro",[69,79,87,90,100,109,118],{"id":70,"title":71,"slug":72,"excerpt":73,"thumbnail_image":74,"tags":76},"49","Berkenalan dengan Bahasa Java","berkenalan-dengan-bahasa-java","Java merupakan bahasa pemrograman tingkat tinggi dengan paradigma OOP. Bahasa ini punya slogan “write once, run anywhere”",{"id":75},"1b4c8254-328d-43a5-b489-6ed7c7da91a0",[51,77,78,53],"intro","pemrograman",{"id":80,"title":81,"slug":82,"excerpt":83,"thumbnail_image":84,"tags":86},"50","Membuat Program \"Hello World\" pada Java","membuat-program-hello-world-pada-java","Pada kesempatan kali ini kita akan membuat kode pertama kita, yaitu Hello World pada bahasa Java.",{"id":85},"d5ece737-b796-4209-9af8-1b7ce232d554",[51,23,53],{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":88,"tags":89},{"id":49},[51,52,53,54],{"id":91,"title":92,"slug":93,"excerpt":94,"thumbnail_image":95,"tags":97},"52","Penulisan Komentar pada Bahasa Java","penulisan-komentar-pada-bahasa-java","Java memiliki beberapa jenis komentar yaitu komentar satu baris, banyak baris, dan komentar dokumentasi.",{"id":96},"720de22b-6faa-4d9f-b7be-97b17f20f130",[51,98,52,99],"komentar","best-practice",{"id":101,"title":102,"slug":103,"excerpt":104,"thumbnail_image":105,"tags":107},"53","Sistem Output pada Bahasa Java","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.",{"id":106},"acd35b05-1d92-4944-a89a-d2e5b352f3be",[51,108,53],"input-output",{"id":110,"title":111,"slug":112,"excerpt":113,"thumbnail_image":114,"tags":116},"54","Variabel dan Literal pada Bahasa Java","variabel-dan-literal-pada-bahasa-java","Literal dan variabel merupakan komponen yang penting, karena 2 hal ini berhubungan langsung dengan data dan manipulasinya.",{"id":115},"b3cfdc00-853e-424c-8a85-20c13d627d98",[51,117,54,53],"variabel",{"id":119,"title":120,"slug":121,"excerpt":122,"thumbnail_image":123,"tags":125},"55","Sistem Input pada Bahasa Java","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.",{"id":124},"3cdb0187-3373-401c-aeaf-abeda8170a90",[51,108,53],{"id":127,"title":26,"slug":27,"parent_series":128,"children_series":130},"13",{"id":129,"title":22,"slug":23,"parent_series":56},"1",[131,132],{"id":65,"title":66,"slug":67,"cover_image":56},{"id":133,"title":134,"slug":135,"cover_image":56},"22","Variabel, Tipe Data, dan Operasi","java-variabel-tipe-data","\u003Cp>Setelah sebelumnya kita membuat \u003Ca href=\"/p/membuat-program-hello-world-pada-java\">program &quot;Hello World&quot;\u003C/a>, pada kesempatan kali ini kita akan coba membedah kode tersebut untuk melihat struktur dari kode Java.\u003C/p>\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/del> komputer.\u003C/p>\n\u003Cp>Oke, langsung saja.\u003C/p>\n\u003Ch2 id=\"tentang-kode-java\">Tentang Kode Java\u003C/h2>\n\u003Cp>Pada umumnya, file kode Java ditandai dengan ekstensi \u003Ccode>.java\u003C/code>.\u003C/p>\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/p>\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/p>\n\u003Cp>Nah, itulah alasan mengapa harus mengetahui aturan kode Java sebelum ketik-ketik kode. Mari kita mulai dengan strukturnya terlebih dahulu.\u003C/p>\n\u003Ch2 id=\"struktur-program-java\">Struktur Program Java\u003C/h2>\n\u003Cp>Sebelum lanjut, ada baiknya kalau kita lihat lagi kode &quot;Hello World&quot; yang sudah pernah kita buat.\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"public%20class%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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public class HelloWorld {\n  public static void main(String args[]) {\n    System.out.println(\"Hello World!\");\n  }\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Nah, dari kode tersebut kita akan coba bedah satu per satu sesuai struktur kode Java.\u003C/p>\n\u003Ch3 id=\"1-deklarasi-kelas-utama\">1. Deklarasi Kelas Utama\u003C/h3>\n\u003Cp>Pada bahasa Java, semuanya adalah objek. Nah, sebuah objek biasanya ditandai dengan keyword \u003Ccode>class\u003C/code>.\u003C/p>\n\u003Cp>Pada contoh &quot;Hello World&quot; di atas, kita membuat deklarasi kelas utama dengan nama \u003Ccode>HelloWorld\u003C/code>\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"public%20class%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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public class HelloWorld {\n  ...\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Semua kode di dalam tanda kurung kurawal (\u003Ccode>{...}\u003C/code>) disebut sebagai tubuh kelas. Tubuh kelas ini nanti dapat berisi \u003Cstrong>deklarasi variabel\u003C/strong> dan \u003Cstrong>fungsi-fungsi\u003C/strong>.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Dalam konsep OOP, variabel yang dideklarasikan di dalam \u003Ccode>class\u003C/code> disebut dengan \u003Cem>\u003Cstrong>attribute\u003C/strong>\u003C/em>, sedangkan fungsi-fungsi di dalam \u003Ccode>class\u003C/code> disebut dengan \u003Cem>\u003Cstrong>method\u003C/strong>\u003C/em>. Kita akan bahas lebih lanjut tentang hal ini pada bagian OOP dengan Java.\u003C/p>\n\u003C/blockquote>\n\u003Cp>Aturannya, dalam satu file \u003Ccode>.java\u003C/code> hanya boleh ada satu kelas utama. Kelas utama ini ditandai dengan keyword \u003Ccode>public\u003C/code> dan namanya harus sama dengan nama file yang kita buat.\u003C/p>\n\u003Cp>Contoh, karena dalam kasus ini kita membuat kelas utama dengan nama \u003Ccode>HelloWorld\u003C/code>, maka file yang kita buat harus memiliki nama yang sama yaitu \u003Ccode>HelloWorld.java\u003C/code>.\u003C/p>\n\u003Ch3 id=\"2-deklarasi-fungsi-utama\">2. Deklarasi Fungsi Utama\u003C/h3>\n\u003Cp>Setelah kelas utama, selanjutnya ada fungsi utama atau \u003Cem>\u003Cstrong>main method\u003C/strong>\u003C/em>.\u003C/p>\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/em>\u003C/p>\n\u003Cp>Fungsi adalah blok program yang berisi logika yang kita inginkan. Fungsi ini nantinya dapat dipanggil untuk melakukan sesuatu.\u003C/p>\n\u003Cp>Pada contoh &quot;Hello World&quot; di atas, fungsi utama adalah pada blok ini:\u003C/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"public%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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>public static void main(String args[]) {\n  ...\n}\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Sama seperti deklarasi kelas, satu blok fungsi dimulai dengan tanda kurung kurawal buka (\u003Ccode>{\u003C/code>) dan diakhiri kurung kurawal tutup (\u003Ccode>}\u003C/code>). Semua kode yang ada di antara kurung kurawal ini adalah badan fungsi yang berisi logika yang kita inginkan.\u003C/p>\n\u003Cp>Main method dalam bahasa Java ditandai dengan identifier \u003Ccode>main\u003C/code>. Nama ini mutlak, karena Java menggunakannya sebagai titik mulai dari kode yang kita buat.\u003C/p>\n\u003Cp>Untuk sementara tidak perlu tahu arti dari \u003Ccode>public static void\u003C/code> dan \u003Ccode>String args[]\u003C/code>, kita akan bahas pada kesempatan-kesempatan selanjutnya.\u003C/p>\n\u003Ch3 id=\"3-tubuh-fungsi-utama\">3. Tubuh Fungsi Utama\u003C/h3>\n\u003Cp>Yang terakhir dari bagian utama kode Java adalah tubuh fungsi.\u003C/p>\n\u003Cp>Seperti yang disebutkan sebelumnya, tubuh fungsi merupakan tempat kita menuliskan logika yang diinginkan.\u003C/p>\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/p>\n\n\u003Cdiv class=\"code-block-wrapper my-6 not-prose rounded-xl border-2 border-black dark:border-gray-600 shadow-neo overflow-hidden bg-[#24292e] text-[#e1e4e8] transition-all\">\n  \u003Cdiv class=\"code-block-header flex items-center justify-between px-4 py-2.5 bg-[#1f2428] border-b-2 border-black dark:border-gray-600 font-mono text-xs font-bold text-gray-300 select-none\">\n    \u003Cdiv class=\"flex items-center gap-2\">\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ff5f56] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#ffbd2e] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"w-3 h-3 rounded-full bg-[#27c93f] border border-black/40 inline-block\">\u003C/span>\n      \u003Cspan class=\"ml-2 font-mono font-bold text-xs uppercase tracking-wider text-gray-300\">JAVA\u003C/span>\n    \u003C/div>\n    \u003Cbutton type=\"button\" class=\"copy-code-btn flex items-center gap-1.5 px-3 py-1 text-xs font-bold bg-[#2f363d] text-gray-200 border-2 border-black dark:border-gray-500 rounded-lg shadow-neo-sm hover:translate-x-0.5 hover:translate-y-0.5 hover:shadow-none hover:bg-gray-700 transition-all cursor-pointer\" data-code=\"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/path>\n      \u003C/svg>\n      \u003Cspan class=\"copy-text\">Copy\u003C/span>\n    \u003C/button>\n  \u003C/div>\n  \u003Cdiv class=\"code-block-content p-4 overflow-x-auto text-sm font-mono leading-relaxed bg-[#24292e]\">\n    \u003Cpre class=\"shiki github-dark\" style=\"background-color:#24292e;color:#e1e4e8\">\u003Ccode>System.out.println(\"Hello World\");\u003C/code>\u003C/pre>\n  \u003C/div>\n\u003C/div>\u003Cp>Kode tersebut merupakan perintah output yang berfungsi untuk memerintahkan komputer menuliskan &quot;Hello World&quot; di konsol.\u003C/p>\n\u003Cp>Dalam tubuh fungsi utama inilah kita akan menuliskan kode-kode kita. Mulai dari input/output, deklarasi variabel, struktur kontrol, dan banyak lagi yang lainnya. Semua akan kita bahas di kesempatan-kesempatan selanjutnya.\u003C/p>\n\u003Ch2 id=\"aturan-penulisan-kode-java\">Aturan Penulisan Kode Java\u003C/h2>\n\u003Cp>Setelah tahu tentang struktur kode Java, sekarang kita akan bahas tentang aturan sintaksnya.\u003C/p>\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/p>\n\u003Cp>Dalam bahasa Java, aturan penulisan umumnya adalah sebagai berikut:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Pembuatan nama (\u003Cem>identifier\u003C/em>)\u003C/strong> — 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/code>, \u003Ccode>a-z\u003C/code>), angka (\u003Ccode>0-9\u003C/code>) dan karakter \u003Ccode>$\u003C/code> serta \u003Ccode>_\u003C/code>. Dalam penulisannya tidak boleh ada spasi, tidak boleh juga diawali dengan angka.\u003C/li>\n\u003Cli>\u003Cstrong>Penggunaan titik koma (\u003Ccode>;\u003C/code>)\u003C/strong> — Titik koma pada Java digunakan untuk mengakhiri satu baris perintah. Perintah ini termasuk deklarasi variabel, pemanggilan fungsi, dan statement lainnya.\u003C/li>\n\u003Cli>\u003Cstrong>Penggunaan kurung kurawal (\u003Ccode>{...}\u003C/code>)\u003C/strong> — 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/li>\n\u003Cli>\u003Cstrong>Penggunaan tanda titik (\u003Ccode>.\u003C/code>)\u003C/strong> — 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/code> dari objek \u003Ccode>System\u003C/code>, lalu mengakses method \u003Ccode>println\u003C/code> dari objek \u003Ccode>out\u003C/code>. Selain untuk itu, tanda titik juga digunakan sebagai pengganti koma pada bilangan desimal — jadi bukan \u003Ccode>0,9\u003C/code> tetapi \u003Ccode>0.9\u003C/code>.\u003C/li>\n\u003C/ul>\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/p>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C/h2>\n\u003Cp>Selalu ingat struktur ini, karena ini adalah aturan yang harus kita ketahui untuk menulis kode Java.\u003C/p>\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/p>\n\u003Cp>Selanjutnya kita akan membahas tentang komentar pada bahasa Java.\u003C/p>\n\u003Cp>Selamat berkoding ria 👋\u003C/p>\n","",[139,152,167,179],{"id":140,"title":141,"slug":142,"excerpt":143,"thumbnail_image":144,"tags":146},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!",{"id":145},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[147,148,149,150,151],"system-programming","rust","zig","c","memory-safety",{"id":153,"title":154,"slug":155,"excerpt":156,"thumbnail_image":157,"tags":159},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!",{"id":158},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[160,161,162,163,164,165,166],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":168,"title":169,"slug":170,"excerpt":171,"thumbnail_image":172,"tags":174},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!",{"id":173},"e3c617fd-1486-4b82-b937-94fbec846c77",[160,175,165,176,177,161,178],"microservices","database","message-broker","postgresql",{"id":180,"title":181,"slug":182,"excerpt":183,"thumbnail_image":184,"tags":186},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!",{"id":185},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[187,177,160,165,175,188,189],"rabbitmq","async","python",[191,195,198,202,205,208,211],{"text":192,"depth":193,"id":194},"Tentang Kode Java",2,"tentang-kode-java",{"text":196,"depth":193,"id":197},"Struktur Program Java","struktur-program-java",{"text":199,"depth":200,"id":201},"1. Deklarasi Kelas Utama",3,"1-deklarasi-kelas-utama",{"text":203,"depth":200,"id":204},"2. Deklarasi Fungsi Utama","2-deklarasi-fungsi-utama",{"text":206,"depth":200,"id":207},"3. Tubuh Fungsi Utama","3-tubuh-fungsi-utama",{"text":209,"depth":193,"id":210},"Aturan Penulisan Kode Java","aturan-penulisan-kode-java",{"text":212,"depth":193,"id":213},"Selanjutnya","selanjutnya",1791045069117]