[{"data":1,"prerenderedAt":171},["ShallowReactive",2],{"site-footer-license":3,"site-header":7,"article-tipe-data-pada-bahasa-java-with-latest":41},{"name":4,"url":5,"show":6},"CC BY-SA","https://creativecommons.org/licenses/by-sa/4.0/",false,{"navigations":8},[9,24],{"collection":10,"item":11},"series",{"__typename":10,"title":12,"slug":13,"children_series":14},"Artikel","all",[15,18,21],{"title":16,"slug":17},"Algoritma dan Struktur Data","algoritma-struktur-data",{"title":19,"slug":20},"Konsep Dasar Pemrograman","konsep-dasar-pemrograman",{"title":22,"slug":23},"Kecerdasan Artifisial","kecerdasan-artifisial",{"collection":10,"item":25},{"__typename":10,"title":26,"slug":27,"children_series":28},"Tutorial","tutorial",[29,32,35,38],{"title":30,"slug":31},"Belajar Java","belajar-java",{"title":33,"slug":34},"Belajar Pascal","belajar-pascal",{"title":36,"slug":37},"Belajar Python","belajar-python",{"title":39,"slug":40},"Belajar Golang","belajar-golang",{"article":42,"renderedBody":100,"renderedTakeaway":101,"latestArticles":102,"toc":154},{"id":43,"title":44,"slug":45,"excerpt":46,"published_at":47,"thumbnail_image":48,"tags":50,"reading_time":55,"takeway":56,"body":57,"authors":58,"series":64},"56","Tipe Data pada Bahasa Java","tipe-data-pada-bahasa-java","Tipe data adalah atribut yang menempel pada sebuah data untuk menentukan perlakuan terhadap data tersebut.","2022-12-29T00:00:00.000Z",{"id":49},"c67f5e59-a088-4660-9a0f-55f4f7c4a37b",[51,52,53,54],"java","tipe-data","konsep","dasar",3,null,"Pada kesempatan kali ini kita akan coba berkenalan sekilas dengan tipe data pada Bahasa Java. Kali ini kita tidak akan ngoding dulu, fokus kenalan aja.\n\n## Sekilas Tentang Tipe Data\n\nFYI, Java masuk ke dalam tipe bahasa yang ***strongly typed***. Artinya programmer harus memberi tipe data secara **eksplisit** pada tiap variabel yang dibuat.\n\nNah, sekarang apa itu tipe data dan kenapa harus ada?\n\nTipe data adalah atribut yang menempel pada sebuah data. Atribut ini nantinya yang akan menentukan perlakuan apa saja yang bisa dilakukan terhadap data tersebut.\n\nContoh saja, kita punya 2 data berupa umur seseorang dan pekerjaan seseorang.\n\nKita tahu bahwa umur pasti akan bertambah tiap orang tersebut ulang tahun, dan pastinya tidak bisa diubah seenak jidat.\n\nDi sisi lain, pekerjaan seseorang bisa berubah-ubah, tapi pekerjaan itu tidak mungkin bertambah tiap dia ulang tahun (kan?).\n\nNah, 2 data ini bisa dikatakan punya tipe yang berbeda. Ini karena perlakuan yang dapat dikenakan pada suatu data tidak selalu dapat dilakukan pada data lainnya.\n\nYah, semoga dapat gambarannya lah ya.\n\n## Jenis Tipe Data pada Java\n\nSecara umum, terdapat 2 jenis tipe data pada Java yaitu tipe data primitif dan bentukan. Tipe bentukan ini biasa disebut dengan objek.\n\nKita coba bahas satu-satu.\n\n### Tipe data Primitif\n\nDengar kata primitif jangan langsung mengarah ke manusia purba ya, dalam pemrograman juga dipakai istilah ini.\n\nTipe data primitif merupakan tipe data yang sudah ada dari sananya. Sudah disediakan oleh bahasa pemrograman, bahkan sudah disediakan oleh hardware yang kita punya. Kebanyakan bahasa pemrograman punya jenis primitif yang sama.\n\nKita mungkin sudah pernah menyinggung hal ini ketika membahas tentang [variabel pada java](https://www.invasikode.com/variabel-dan-literal-pada-bahasa-java). Tapi tidak apa-apa kita coba bahas lagi supaya tidak lupa.\n\n | **Tipe Data** | **Deskripsi**                             | **Nilai**                   | **Ukuran** |\n | ------------- | ----------------------------------------- | --------------------------- | ---------- |\n | **boolean**   | Tipe data logika true false               | true, false                 | 1 bit      |\n | **byte**      | Penyimpan data mentah (karakter, dll)     | -128 - 127                  | 8 bit      |\n | **char**      | Penyimpan karakter unicode                | karakter unicode            | 16 bit     |\n | **short**     | Bilangan bulat jarak pendek               | -32768 - 32767              | 16 bit     |\n | **int**       | Bilangan bulat jarak menengah             | $-2^{31}$ sampai 2147483647 | 32 bit     |\n | **long**      | Bilangan bulat jarak panjang              | $-2^{63}$ sampai $2^{63}-1$ | 64 bit     |\n | **float**     | Desimal presisi 7 digit di belakang koma  | presisi 7 digit             | 32 bit     |\n | **double**    | Desimal presisi 16 digit di belakang koma | presisi 16 digit            | 64 bit     |\n\nNah, dari tipe data primitif tersebut kita bisa bagi lagi menjadi beberapa kelompok yaitu:\n\n- **Logika** — boolean\n- **Karakter** — char\n- **Integer** — byte, short, int, dan long\n- **Float** — float, dan double\n\nUntuk lebih jelasnya akan kita bedah satu-satu pada kesempatan selanjutnya.\n\n### Tipe data Bentukan (Objek)\n\nSelanjutnya ada tipe data bentukan. Seperti namanya, tipe data ini dibentuk sendiri oleh programmer dan bisa terdiri dari gabungan data primitif.\n\nSebagai bahasa OOP, semua hal pada Java adalah Objek. Objek ini merupakan salah satu jenis dari tipe data bentukan. Dalam sebuah objek kita bisa memberikan atribut sesuai kebutuhan kita.\n\nBahkan, tiap data primitif punya padanan objeknya. Untuk membedakan mana yang primitif mana yang objek tinggal kita lihat huruf awalnya saja. Kalau diawali kapital berarti itu objek, sebaliknya kalau diawali huruf kecil maka itu primitif.\n\nContohnya saja tipe data `boolean`, padanan objeknya adalah `Boolean`. Kalau `double` padanan objeknya adalah `Double`. Terakhir yang agak lain ada `int` dengan padanan objeknya yaitu `Integer`.\n\n> Penamaan Objek dengan awalan kapital ini merupakan **typing convention** alias aturan penulisan yang disarankan pada bahasa Java.\n\nTipe bentukan yang mungkin sering kita pakai adalah `String`. Tipe data ini masuk ke tipe bentukan karena dia merupakan gabungan dari beberapa data bertipe `char`.\n\nSelain Objek, terdapat beberapa jenis tipe bentukan yang bisa kita buat diantaranya:\n\n- **class** — Template untuk pembuatan objek\n- **interface** — Template untuk pembuatan class\n- **enum** — Tipe data dengan nilai valid yang ditentukan oleh programmer\n- **array** — Kumpulan dari beberapa data yang dapat diakses dengan indeks\n\nLebih lanjut tentang class, interface, dan enum akan kita bahas lebih lanjut pada bagian OOP pada Java.\n\n## Selanjutnya\n\nSetelah kita kenalan, selanjutnya kita akan coba bahas lebih dalam lagi untuk tiap tipe data. Kita akan bahas tentang aturan-aturan, operasi apa yang bisa dilakukan, hingga cara mengubah tipe data menjadi tipe yang lainnya.\n\nSemoga bermanfaat, selamat 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":90},"22","Variabel, Tipe Data, dan Operasi","java-variabel-tipe-data",[69,72,81],{"id":43,"title":44,"slug":45,"excerpt":46,"thumbnail_image":70,"tags":71},{"id":49},[51,52,53,54],{"id":73,"title":74,"slug":75,"excerpt":76,"thumbnail_image":77,"tags":79},"57","Mengenal Tipe Data Integer pada Java","mengenal-tipe-data-integer-pada-java","Integer, sesuai namanya merupakan tipe data yang hanya bisa menampung bilangan bulat saja (negatif, nol, dan positif)",{"id":78},"a39127be-6eeb-49cb-9ee9-7f9c1b9f28c1",[51,52,80],"integer",{"id":82,"title":83,"slug":84,"excerpt":85,"thumbnail_image":86,"tags":88},"58","Mengenal Tipe Data Float pada Java","mengenal-tipe-data-float-pada-java","Float atau floating point merupakan tipe data yang dapat menampung literal bilangan desimal dan pecahan.",{"id":87},"d915e395-5e17-40c1-ab53-677d9f1252d3",[51,52,89],"float",{"id":91,"title":30,"slug":31,"parent_series":92,"children_series":94},"13",{"id":93,"title":26,"slug":27,"parent_series":56},"1",[95,99],{"id":96,"title":97,"slug":98,"cover_image":56},"21","Berkenalan dengan Java","java-intro",{"id":65,"title":66,"slug":67,"cover_image":56},"\u003Cp>Pada kesempatan kali ini kita akan coba berkenalan sekilas dengan tipe data pada Bahasa Java. Kali ini kita tidak akan ngoding dulu, fokus kenalan aja.\u003C/p>\n\u003Ch2 id=\"sekilas-tentang-tipe-data\">Sekilas Tentang Tipe Data\u003C/h2>\n\u003Cp>FYI, Java masuk ke dalam tipe bahasa yang \u003Cem>\u003Cstrong>strongly typed\u003C/strong>\u003C/em>. Artinya programmer harus memberi tipe data secara \u003Cstrong>eksplisit\u003C/strong> pada tiap variabel yang dibuat.\u003C/p>\n\u003Cp>Nah, sekarang apa itu tipe data dan kenapa harus ada?\u003C/p>\n\u003Cp>Tipe data adalah atribut yang menempel pada sebuah data. Atribut ini nantinya yang akan menentukan perlakuan apa saja yang bisa dilakukan terhadap data tersebut.\u003C/p>\n\u003Cp>Contoh saja, kita punya 2 data berupa umur seseorang dan pekerjaan seseorang.\u003C/p>\n\u003Cp>Kita tahu bahwa umur pasti akan bertambah tiap orang tersebut ulang tahun, dan pastinya tidak bisa diubah seenak jidat.\u003C/p>\n\u003Cp>Di sisi lain, pekerjaan seseorang bisa berubah-ubah, tapi pekerjaan itu tidak mungkin bertambah tiap dia ulang tahun (kan?).\u003C/p>\n\u003Cp>Nah, 2 data ini bisa dikatakan punya tipe yang berbeda. Ini karena perlakuan yang dapat dikenakan pada suatu data tidak selalu dapat dilakukan pada data lainnya.\u003C/p>\n\u003Cp>Yah, semoga dapat gambarannya lah ya.\u003C/p>\n\u003Ch2 id=\"jenis-tipe-data-pada-java\">Jenis Tipe Data pada Java\u003C/h2>\n\u003Cp>Secara umum, terdapat 2 jenis tipe data pada Java yaitu tipe data primitif dan bentukan. Tipe bentukan ini biasa disebut dengan objek.\u003C/p>\n\u003Cp>Kita coba bahas satu-satu.\u003C/p>\n\u003Ch3 id=\"tipe-data-primitif\">Tipe data Primitif\u003C/h3>\n\u003Cp>Dengar kata primitif jangan langsung mengarah ke manusia purba ya, dalam pemrograman juga dipakai istilah ini.\u003C/p>\n\u003Cp>Tipe data primitif merupakan tipe data yang sudah ada dari sananya. Sudah disediakan oleh bahasa pemrograman, bahkan sudah disediakan oleh hardware yang kita punya. Kebanyakan bahasa pemrograman punya jenis primitif yang sama.\u003C/p>\n\u003Cp>Kita mungkin sudah pernah menyinggung hal ini ketika membahas tentang \u003Ca href=\"https://www.invasikode.com/variabel-dan-literal-pada-bahasa-java\">variabel pada java\u003C/a>. Tapi tidak apa-apa kita coba bahas lagi supaya tidak lupa.\u003C/p>\n\u003Ctable>\n\u003Cthead>\n\u003Ctr>\n\u003Cth>\u003Cstrong>Tipe Data\u003C/strong>\u003C/th>\n\u003Cth>\u003Cstrong>Deskripsi\u003C/strong>\u003C/th>\n\u003Cth>\u003Cstrong>Nilai\u003C/strong>\u003C/th>\n\u003Cth>\u003Cstrong>Ukuran\u003C/strong>\u003C/th>\n\u003C/tr>\n\u003C/thead>\n\u003Ctbody>\u003Ctr>\n\u003Ctd>\u003Cstrong>boolean\u003C/strong>\u003C/td>\n\u003Ctd>Tipe data logika true false\u003C/td>\n\u003Ctd>true, false\u003C/td>\n\u003Ctd>1 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>byte\u003C/strong>\u003C/td>\n\u003Ctd>Penyimpan data mentah (karakter, dll)\u003C/td>\n\u003Ctd>-128 - 127\u003C/td>\n\u003Ctd>8 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>char\u003C/strong>\u003C/td>\n\u003Ctd>Penyimpan karakter unicode\u003C/td>\n\u003Ctd>karakter unicode\u003C/td>\n\u003Ctd>16 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>short\u003C/strong>\u003C/td>\n\u003Ctd>Bilangan bulat jarak pendek\u003C/td>\n\u003Ctd>-32768 - 32767\u003C/td>\n\u003Ctd>16 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>int\u003C/strong>\u003C/td>\n\u003Ctd>Bilangan bulat jarak menengah\u003C/td>\n\u003Ctd>$-2^{31}$ sampai 2147483647\u003C/td>\n\u003Ctd>32 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>long\u003C/strong>\u003C/td>\n\u003Ctd>Bilangan bulat jarak panjang\u003C/td>\n\u003Ctd>$-2^{63}$ sampai $2^{63}-1$\u003C/td>\n\u003Ctd>64 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>float\u003C/strong>\u003C/td>\n\u003Ctd>Desimal presisi 7 digit di belakang koma\u003C/td>\n\u003Ctd>presisi 7 digit\u003C/td>\n\u003Ctd>32 bit\u003C/td>\n\u003C/tr>\n\u003Ctr>\n\u003Ctd>\u003Cstrong>double\u003C/strong>\u003C/td>\n\u003Ctd>Desimal presisi 16 digit di belakang koma\u003C/td>\n\u003Ctd>presisi 16 digit\u003C/td>\n\u003Ctd>64 bit\u003C/td>\n\u003C/tr>\n\u003C/tbody>\u003C/table>\n\u003Cp>Nah, dari tipe data primitif tersebut kita bisa bagi lagi menjadi beberapa kelompok yaitu:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>Logika\u003C/strong> — boolean\u003C/li>\n\u003Cli>\u003Cstrong>Karakter\u003C/strong> — char\u003C/li>\n\u003Cli>\u003Cstrong>Integer\u003C/strong> — byte, short, int, dan long\u003C/li>\n\u003Cli>\u003Cstrong>Float\u003C/strong> — float, dan double\u003C/li>\n\u003C/ul>\n\u003Cp>Untuk lebih jelasnya akan kita bedah satu-satu pada kesempatan selanjutnya.\u003C/p>\n\u003Ch3 id=\"tipe-data-bentukan-objek\">Tipe data Bentukan (Objek)\u003C/h3>\n\u003Cp>Selanjutnya ada tipe data bentukan. Seperti namanya, tipe data ini dibentuk sendiri oleh programmer dan bisa terdiri dari gabungan data primitif.\u003C/p>\n\u003Cp>Sebagai bahasa OOP, semua hal pada Java adalah Objek. Objek ini merupakan salah satu jenis dari tipe data bentukan. Dalam sebuah objek kita bisa memberikan atribut sesuai kebutuhan kita.\u003C/p>\n\u003Cp>Bahkan, tiap data primitif punya padanan objeknya. Untuk membedakan mana yang primitif mana yang objek tinggal kita lihat huruf awalnya saja. Kalau diawali kapital berarti itu objek, sebaliknya kalau diawali huruf kecil maka itu primitif.\u003C/p>\n\u003Cp>Contohnya saja tipe data \u003Ccode>boolean\u003C/code>, padanan objeknya adalah \u003Ccode>Boolean\u003C/code>. Kalau \u003Ccode>double\u003C/code> padanan objeknya adalah \u003Ccode>Double\u003C/code>. Terakhir yang agak lain ada \u003Ccode>int\u003C/code> dengan padanan objeknya yaitu \u003Ccode>Integer\u003C/code>.\u003C/p>\n\u003Cblockquote>\n\u003Cp>Penamaan Objek dengan awalan kapital ini merupakan \u003Cstrong>typing convention\u003C/strong> alias aturan penulisan yang disarankan pada bahasa Java.\u003C/p>\n\u003C/blockquote>\n\u003Cp>Tipe bentukan yang mungkin sering kita pakai adalah \u003Ccode>String\u003C/code>. Tipe data ini masuk ke tipe bentukan karena dia merupakan gabungan dari beberapa data bertipe \u003Ccode>char\u003C/code>.\u003C/p>\n\u003Cp>Selain Objek, terdapat beberapa jenis tipe bentukan yang bisa kita buat diantaranya:\u003C/p>\n\u003Cul>\n\u003Cli>\u003Cstrong>class\u003C/strong> — Template untuk pembuatan objek\u003C/li>\n\u003Cli>\u003Cstrong>interface\u003C/strong> — Template untuk pembuatan class\u003C/li>\n\u003Cli>\u003Cstrong>enum\u003C/strong> — Tipe data dengan nilai valid yang ditentukan oleh programmer\u003C/li>\n\u003Cli>\u003Cstrong>array\u003C/strong> — Kumpulan dari beberapa data yang dapat diakses dengan indeks\u003C/li>\n\u003C/ul>\n\u003Cp>Lebih lanjut tentang class, interface, dan enum akan kita bahas lebih lanjut pada bagian OOP pada Java.\u003C/p>\n\u003Ch2 id=\"selanjutnya\">Selanjutnya\u003C/h2>\n\u003Cp>Setelah kita kenalan, selanjutnya kita akan coba bahas lebih dalam lagi untuk tiap tipe data. Kita akan bahas tentang aturan-aturan, operasi apa yang bisa dilakukan, hingga cara mengubah tipe data menjadi tipe yang lainnya.\u003C/p>\n\u003Cp>Semoga bermanfaat, selamat berkoding ria 👋\u003C/p>\n","",[103,116,131,143],{"id":104,"title":105,"slug":106,"excerpt":107,"thumbnail_image":108,"tags":110},"46","Mengapa C Mulai Ditinggalkan: Duel Filosofi Keamanan Rust vs Kesederhanaan Zig","mengapa-c-mulai-ditinggalkan-duel-filosofi-rust-vs-zig","Pernah denger kalau sekitar 70% celah keamanan kritis software modern itu asalnya dari bahasa C? Iya, bahasa yang udah jadi fondasi internet ini 😅. Yuk, kita bedah duel filosofi Rust vs Zig dan cari tahu mana yang pas buat proyek kalian!",{"id":109},"1942a5c9-c1f6-476d-9913-768f78d9d8eb",[111,112,113,114,115],"system-programming","rust","zig","c","memory-safety",{"id":117,"title":118,"slug":119,"excerpt":120,"thumbnail_image":121,"tags":123},"45","Rate Limiting Algorithms: Token Bucket vs Leaky Bucket vs Sliding Window","rate-limiting-algorithms-token-bucket-leaky-bucket-sliding-window","Udah tahu kenapa *rate limiting* itu wajib, tapi masih bingung beda Token Bucket, Leaky Bucket, Fixed Window, dan Sliding Window? Yuk, kita adu empat algoritma ini bareng-bareng dan cari tahu mana yang paling pas buat API kalian!",{"id":122},"0e0ed26d-20c6-443c-bde1-4a6200f6f801",[124,125,126,127,128,129,130],"backend","system-design","rate-limiting","redis","api-gateway","architecture","traffict-management",{"id":132,"title":133,"slug":134,"excerpt":135,"thumbnail_image":136,"tags":138},"44","Transactional Outbox Pattern: Solusi Konsistensi Database dan Message Broker Tanpa 2PC","transactional-outbox-pattern-konsistensi-database-message-broker","Pernah nggak kalian lihat pesanan udah masuk database, tapi email konfirmasinya nggak pernah kekirim? Itu gejala *dual-write problem*. Yuk, kita bedah Transactional Outbox Pattern biar data dan *event* kalian nggak lagi berselisih paham!",{"id":137},"e3c617fd-1486-4b82-b937-94fbec846c77",[124,139,129,140,141,125,142],"microservices","database","message-broker","postgresql",{"id":144,"title":145,"slug":146,"excerpt":147,"thumbnail_image":148,"tags":150},"43","Dead Letter Queue (DLQ) & Retry Policy: Menyelamatkan Pesan Nyasar di RabbitMQ Tanpa Bikin Worker Macet","dead-letter-queue-retry-policy-rabbitmq-resilient-messaging","Pernah nggak sih, *worker* kalian nolak satu pesan terus-terusan sampai CPU melonjak 100%? Itu namanya *poison message loop*, jebakan klasik di RabbitMQ. Yuk, kita bahas cara pasang *retry policy* dan *dead letter queue* yang bener!",{"id":149},"6c0a7ead-4841-4073-b29e-df7ae0f2aa3c",[151,141,124,129,139,152,153],"rabbitmq","async","python",[155,159,162,165,168],{"text":156,"depth":157,"id":158},"Sekilas Tentang Tipe Data",2,"sekilas-tentang-tipe-data",{"text":160,"depth":157,"id":161},"Jenis Tipe Data pada Java","jenis-tipe-data-pada-java",{"text":163,"depth":55,"id":164},"Tipe data Primitif","tipe-data-primitif",{"text":166,"depth":55,"id":167},"Tipe data Bentukan (Objek)","tipe-data-bentukan-objek",{"text":169,"depth":157,"id":170},"Selanjutnya","selanjutnya",1791045064405]