Skip to main content

Posts

Showing posts from 2024

Perbandingan Java dan Kotlin

Berikut adalah perbandingan komprehensif antara Java dan Kotlin berdasarkan keyword , style , dan approach , mulai dari konsep umum hingga advanced: 1. Keyword dan Sintaks Dasar Aspek Java Kotlin Deklarasi Variabel int x = 10; var x = 10 (mu ), val y = 20 (immutable) Tipe Data Primitif & Referensi ( int , String ) Semua tipe adalah objek ( Int , String , dll.) Nullability Null pointer exception ( null ) Safe call ( ? ), elvis ( ?: ) operator Fungsi void printName(String name) fun printName(name: String): Unit Konstruktor class Person { Person(String name) {...} } class Person(val name: String) (primary constructor) Casting Manual casting dengan instanceof Smart casting menggunakan is String Interpolation "Name: " + name "Name: $name" atau "Name: ${name.length}" Getter/Setter Manual atau pakai @Getter / @Setter Otomatis dengan val / var Collections Manual ( List , Set , Map ) Lebih ringkas ...

Array dan Collection pada Java

Berikut adalah tabel yang menjelaskan fungsi dan perbedaan antara array dan berbagai jenis collection dalam Kotlin . Saya merangkumnya dalam format yang rapi: Tipe Fungsi Ciri Khas Mutable/Immutable Array Menyimpan elemen dengan tipe yang sama dalam ukuran tetap. Ukuran array tetap setelah dibuat, dan elemen diakses menggunakan indeks. Mutable (bisa diubah isinya, tapi tidak ukurannya) List Menyimpan elemen secara berurutan dengan indeks. - List (immutable): elemen tidak bisa dimodifikasi. - MutableList : elemen bisa ditambah/hapus. Mutable/Immutable Set Menyimpan elemen unik (tidak ada duplikat). - Set (immutable): tidak bisa diubah. - MutableSet : elemen bisa dimodifikasi. Mutable/Immutable Map Menyimpan pasangan key-value. Digunakan untuk pemetaan data. - Map (immutable): tidak bisa diubah. - MutableMap : pasangan key-value bisa dimodifikasi. Mutable/Immutable ArrayList Implementasi dari MutableList yang fleksibel dan sering digunakan. M...

Pagination di Spring Boot dengan JPA dan Hibernate

P ada artikel sebelumnya yang berada pada postingan yang berjudul  Spring Data: Implementasi JPA dengan Hibernate pada Spring Boot , kita mencoba membuat Web API berbasis RESTFul sederhana yang melibatkan Spring Boot, JPA, Hibernate dan juga MySQL (atau MariaDB). Kini kita akan menambahkan fitur Pagination pada api  http://localhost:8080/users, sehingga user pada awalnya akan selalu menuju halaman pertama secara default dan memilih kehalaman berapa selanjutnya.     Sebelumnya kita sudah memiliki endpoint yaitu /users untuk menerima POST (create) dan GET (retrieve). Kali ini kita akan menambahkan fitur pagination pada endoint GET /users  untuk mendapakan list dari uses yang ada di database dengan kemampuan berpindah halaman dengan menentukan offset setiap halaman. API saat ini sebelum ada pagination Pada artikel sebelumnya telah dijelaskan tentang membuat API /users diatas, tepatnnya pada artikel  Spring Data: Implementasi JPA dengan Hibernate pad...

Belajar Membuat Pipeline CI/CD untuk Proyek Java Anda di Localhost

Rekomendasi musik untuk membaca artikel ini:  Positive vibes 🍉Best tiktok songs for a positive day P ernahkah kamu penasaran bagaimana aplikasi yang kita gunakan sehari-hari bisa terus diperbarui dengan fitur-fitur baru tanpa adanya gangguan? Atau Ingin menjadi developer yang lebih produktif dan efisien? Investasikan waktu kamu untuk mempelajari CI/CD. Dengan mengotomatiskan proses build, test, dan deploy, kamu bisa fokus pada hal yang lebih penting: mengembangkan fitur-fitur baru yang inovatif. Artikel ini akan menunjukkan bagaimana CI/CD juga bisa menjadi game-changer dalam karir kamu sebagai developer. Kita akan mempelajari GitLab dan Jenkins untuk CI/CD di localhost menggunakan Docker, terutama untuk pengembangan Java. Docker dapat membantu Anda mengatur lingkungan yang terisolasi dan mudah dikonfigurasi tanpa perlu menginstal banyak perangkat lunak secara manual di sistem utama Anda. Dengan Docker, Kita bisa: Menjalankan GitLab sebagai server repository Git dan CI/CD pipel...

Mengenal isPresent untuk mengatasi masalah Null Pointer Exception (NPE)

  Penjelasan tentang isPresent di Java isPresent() adalah metode yang ada di dalam kelas Optional di Java. Optional diperkenalkan dalam Java 8 sebagai cara untuk mengatasi masalah Null Pointer Exception (NPE) dengan menyediakan cara aman untuk menangani objek yang mungkin bernilai null . Ide dan Tujuan Awal isPresent Sebelum Java 8, pengembang sering mengalami masalah NPE ketika mencoba mengakses metode atau properti dari objek yang null . Solusi umumnya adalah menambahkan pengecekan null secara manual, yang seringkali berujung pada kode yang sulit dibaca dan rentan terhadap kesalahan. Optional dirancang untuk mengurangi kebutuhan penggunaan manual null checks dengan membungkus objek di dalam container. Metode isPresent() berfungsi untuk memeriksa apakah nilai di dalam Optional ada (tidak null ). Jika ada, maka isPresent() mengembalikan true , jika tidak, mengembalikan false . Cara Penggunaan isPresent yang Tepat Berikut contoh penggunaan isPresent() : package com.mhyus...

Mengenal Generic Pada Pemrograman Java

Konsep Generic dalam Java digunakan untuk membuat kelas, antarmuka, dan metode yang dapat bekerja dengan tipe data yang berbeda sambil tetap memberikan keamanan tipe ( type safety ) pada saat kompilasi. Ini memungkinkan programmer untuk menulis kode yang lebih fleksibel dan dapat digunakan kembali tanpa kehilangan keamanan tipe. Penjelasan Sederhana: Apa itu Generic? Generic memungkinkan Anda untuk menentukan sebuah tipe parameter di dalam tanda kurung sudut <> . Contohnya, sebuah class atau method yang bisa bekerja dengan tipe data apapun, seperti String , Integer , atau tipe lainnya, tanpa menulis ulang kode. Contoh Penggunaan: Misalnya, jika Anda memiliki sebuah class Box yang dirancang untuk menyimpan objek, dengan Generic , Anda bisa membuat class yang fleksibel seperti ini: package com.mhyusuf; public class Box< T > { private T item ; public void setItem ( T item) { this . item = item; } public T getItem () { return item ; ...

Pemanfaatan Java Stream API: Contoh Kasus Praktis untuk Pemrogram Sehari-hari

D alam Java programming, Stream adalah representasi abstrak dari urutan elemen yang dapat diproses secara pipeline (berantai) untuk melakukan operasi seperti filter, sort, map, dan reduce. Stream diperkenalkan di Java 8 sebagai bagian dari Java Stream API dalam paket java.util.stream . Stream memungkinkan pemrogram untuk menulis kode yang lebih deklaratif dan ekspresif, mendukung pemrosesan data dalam jumlah besar secara efisien. Fitur utama Stream: Operasi Sederhana dan Deklaratif : Programmer dapat menggunakan metode seperti filter() , map() , dan forEach() untuk mengekspresikan apa yang harus dilakukan, tanpa harus mengelola iterasi secara manual. Pipeline : Operasi pada Stream dapat dirangkai menjadi pipeline yang melibatkan operasi intermediate (misalnya filter() , map() ) dan terminal (misalnya collect() , forEach() ). Laziness : Operasi intermediate bersifat lazy (tidak langsung diproses) sampai operasi terminal dijalankan. Dukungan Paralelisme : Stream dapat diubah menjadi p...