Terjemahan ke Bahasa Indonesia

Java 16 - Fitur Baru

Halo sana, para pemrogram Java yang bersemangat! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ini melalui dunia Java 16. Sebagai seseorang yang telah mengajar pemrograman selama tahun-tahun, saya bisa katakan bahwa Java seperti pisau Swiss dalam dunia pemrograman - multifungsi, kuat, dan selalu berkembang. Hari ini, kita akan mengeksplor fitur baru yangJava 16kan berikan ke meja. Jadi, ambil minuman kesukaan Anda, duduk nyaman, dan mari kita masuk ke dalam!

Java 16 - New Features

Statement Kendali Java

Sebelum kita melompat ke fitur baru, mari kita mengingat beberapa statement kendali dasar dalam Java. Ini adalah blok penopang yang membantu kita mengontrol alur program.

Statement If-Else

Statement if-else mirip dengan petugas lalu lintas untuk kode Anda. Itu mengarahkan alur berdasarkan beberapa kondisi.

int umur = 18;
if (umur >= 18) {
System.out.println("Anda bisa voting!");
} else {
System.out.println("Maaf, Anda masih terlalu muda untuk voting.");
}

Dalam contoh ini, jika umur adalah 18 atau lebih, ia akan mencetak "Anda bisa voting!". Jika tidak, ia akan mencetak pesan maaf.

Loop For

Loop for adalah seperti pekerja setia, mengulang tugas untuk kita.

for (int i = 1; i <= 5; i++) {
System.out.println("Hitungan: " + i);
}

Loop ini akan menghitung dari 1 ke 5, mencetak setiap nomor.

Pemrograman Berorientasi Objek

Java tentang objek, seperti dunia nyata di sekitar kita. Mari kita buat kelas sederhana untuk menunjukkan ini.

public class Anjing {
String nama;
int umur;

public void bark() {
System.out.println(nama + " mengatakan Woof!");
}
}

// Menggunakan kelas Anjing
Anjing anjingSaya = new Anjing();
anjingSaya.nama = "Buddy";
anjingSaya.umur = 3;
anjingSaya.bark();  // Output: Buddy mengatakan Woof!

Di sini, kita membuat kelas Anjing dengan properti (nama dan umur) dan metode (bark). Kita dapat membuat objek Anjing dan membuatnya berbisik!

Kelas Bawaan Java

Java datang dengan banyak kelas bawaan yang membuat hidup kita mudah. Mari kita lihat kelas String, yang mendapat beberapa pembaruan menarik di Java 16.

String nama = "John Doe";
System.out.println(nama.toLowerCase());  // john doe
System.out.println(nama.toUpperCase());  // JOHN DOE
System.out.println(nama.length());       // 8

Fitur Baru di Java 16

Sekarang, mari kita eksplor beberapa fitur baru menarik di Java 16!

Records

Records adalah perubahan besar untuk membuat kelas pengangkut data sederhana. Mereka seperti jalan pintas untuk membuat kelas yang hanya dimaksudkan untuk menahan data.

record Orang(String nama, int umur) {}

// Menggunakan record
Orang john = new Orang("John Doe", 30);
System.out.println(john.nama());  // John Doe
System.out.println(john.umur());   // 30

Dengan records, Java secara otomatis generate constructor, getter, equals(), hashCode(), dan metode toString() untuk kita. Itu seperti memiliki asisten pribadi yang merawat semua kode template!

Pemadanan Pola untuk instanceof

Fitur ini membuat pemeriksaan tipe dan pemakaian lebih singkat dan kurang berisiko kesalahan.

Object obj = "Hello, Java 16!";
if (obj instanceof String s) {
System.out.println(s.toUpperCase());
}

Dalam contoh ini, kita memeriksa jika obj adalah String, dan jika ya, kita secara otomatis mengubahnya menjadi variabel String s. Tidak perlu pemakaian eksplisit!

Kelas Tersegel

Kelas tersegel memungkinkan kita untuk membatasi kelas lain yang dapat mengembangkan mereka. Itu seperti membuat klub eksklusif untuk kelas!

public sealed class Bentuk permits Lingkaran, Persegi, Segitiga {
// Implementasi Bentuk
}

final class Lingkaran extends Bentuk {
// Implementasi Lingkaran
}

final class Persegi extends Bentuk {
// Implementasi Persegi
}

final class Segitiga extends Bentuk {
// Implementasi Segitiga
}

Dalam contoh ini, hanya Lingkaran, Persegi, dan Segitiga yang dapat mengembangkan Bentuk. Kelas lain yang mencoba mengembangkan Bentuk akan menghasilkan kesalahan kompilasi.

Penanganan File Java

Penanganan file sangat penting bagi banyak aplikasi. Mari kita lihat bagaimana kita dapat membaca dari file menggunakan Java 16.

import java.nio.file.Files;
import java.nio.file.Path;

try {
String konten = Files.readString(Path.of("example.txt"));
System.out.println(konten);
} catch (IOException e) {
System.out.println("Terjadi kesalahan: " + e.getMessage());
}

Kode ini membaca seluruh isi "example.txt" ke dalam String. Metode readString membuat pembacaan file menjadi mudah!

Kesalahan & Eksepsi Java

Penanganan kesalahan dengan baik adalah tanda dari pemrograman yang bagus. Mari kita lihat blok try-catch:

try {
int hasil = 10 / 0;  // Ini akan melempar ArithmeticException
} catch (ArithmeticException e) {
System.out.println("Ups! Anda tidak dapat membagi oleh nol.");
} finally {
System.out.println("Ini selalu berjalan, tanpa menghiraukan apa pun!");
}

Di sini, kita mencoba untuk membagi oleh nol (yang sangat dilarang dalam matematika!). Java tangkap kesalahan ini dan memungkinkan kita menanganinya dengan mulus.

Multithreading Java

Multithreading memungkinkan program kita melakukan banyak hal secara bersamaan. Itu seperti dapat memijat kepala dan meresap perut Anda pada saat yang sama!

class ThreadSaya extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getId() + " Nilai " + i);
}
}
}

public class Utama {
public static void main(String args[]) {
ThreadSaya t1 = new ThreadSaya();
ThreadSaya t2 = new ThreadSaya();
t1.start();
t2.start();
}
}

Ini membuat dua thread yang berjalan secara bersamaan, masing-masing mencetak sebuah deret angka.

Sinkronisasi Java

Ketika banyak thread mengakses sumber daya bersama, kita perlu mensinkronisasikan mereka untuk menghindari konflik. Itu seperti memastikan bahwa dua orang tidak mencoba melewati pintu pada saat yang sama!

class Counter {
private int hitung = 0;

public synchronized void increment() {
hitung++;
}

public int getHitung() {
return hitung;
}
}

Kata kunci synchronized memastikan bahwa hanya satu thread dapat menjalankan metode increment() pada saat yang sama.

Dalam kesimpulan, Java 16 membawa banyak fitur baru yang membuat hidup pemrogram kita lebih mudah dan produktif. Dari records yang mengurangi kode template hingga pemadanan pola yang menyederhanakan pemeriksaan tipe, fitur ini dirancang untuk membuat Java lebih ekspresif dan kurang verbose.

Ingat, belajar pemrograman adalah perjalanan, bukan tujuan. Terus latih, tetap curiga, dan jangan takut membuat kesalahan - itu adalah bagaimana kita belajar dan tumbuh sebagai pemrogram. Semoga kopi Anda keras dan bug Anda sedikit!

Credits: Image by storyset