Java 11 - Ciri-ciri Baru
Hai sana, para pemrogram Java yang sedang berkembang! Saya sangat senang menjadi panduan Anda dalam perjalanan yang menarik ke dunia Java 11. Sebagai seseorang yang telah mengajar ilmu komputer selama bertahun-tahun, saya telah menyaksikan banyak murid berubah dari pemula sepenuhnya menjadi pemrogram yang Percaya diri. Jadi, jangan khawatir jika Anda baru mulai – kita akan mengambil langkah demi langkah, dan sebelum Anda tahu, Anda akan menulis kode Java seperti seorang pro!
Statement kendali Java
Ayo mulai dari dasar. Statement kendali adalah seperti lampu lalu lintas dalam pemrograman – mereka mengarahkan aliran kode Anda. Dalam Java 11, kita memiliki beberapa cara yang menarik untuk mengendalikan eksekusi program kita.
Statement If-Else
Statement if-else mungkin adalah struktur kendali yang paling umum Anda gunakan. Itu seperti membuat keputusan dalam kehidupan nyata. Ini adalah contoh yang sederhana:
int umur = 18;
if (umur >= 18) {
System.out.println("Anda bisa pemilih!");
} else {
System.out.println("Maaf, Anda terlalu muda untuk pemilih.");
}
Dalam kode ini, kita memeriksa apakah variabel umur
sama dengan atau lebih dari 18. Jika ya, kita cetak bahwa orang tersebut bisa pemilih. Jika tidak, kita memberitahunya bahwa dia terlalu muda. Itu saja!
Statement Switch
Statement switch sangat baik saat Anda memiliki banyak kondisi untuk diperiksa. Pensejukkan itu seperti cara yang lebih efisien untuk menulis beberapa statement if-else. Java 11 memperkenalkan beberapa pengembangan menarik pada statement switch. Ini adalah contoh:
String hari = "Monday";
switch (hari) {
case "Monday", "Tuesday", "Wednesday", "Thursday", "Friday" -> System.out.println("Hari Kerja");
case "Saturday", "Sunday" -> System.out.println("Weekend");
default -> System.out.println("Hari Tidak Valid");
}
Statement switch ini memeriksa variabel hari
dan mencetak apakah itu adalah hari kerja atau akhir minggu. Sinkronisasi panah (->
) adalah baru di Java 11 dan membuat kode lebih ringkas.
Pemrograman Berorientasi Objek (OOP)
Pemrograman Berorientasi Objek (OOP) adalah konsep dasar di Java. Itu seperti membangun dengan blok LEGO – Anda menciptakan berbagai objek yang saling berinteraksi untuk membentuk program Anda.
Kelas dan Objek
Sebuah kelas adalah seperti rancangan untuk menciptakan objek. Ini adalah kelas sederhana yang mewakili mobil:
public class Mobil {
String merk;
String model;
int tahun;
public void mulaiMesin() {
System.out.println("Vroom! The " + tahun + " " + merk + " " + model + " is starting.");
}
}
Sekarang, mari kita buat objek dari kelas ini:
Mobil myCar = new Mobil();
myCar.merk = "Toyota";
myCar.model = "Corolla";
myCar.tahun = 2021;
myCar.mulaiMesin();
Ketika Anda menjalankan kode ini, itu akan mencetak: "Vroom! The 2021 Toyota Corolla is starting."
Kelas Bawaan Java
Java datang dengan set kelas bawaan yang kaya yang membuat hidup kita mudah. Mari kita lihat beberapa di antaranya:
Kelas String
Kelas String digunakan untuk memanipulasi teks. Ini adalah contoh:
String salam = "Hello, World!";
System.out.println(salam.length()); // Mencetak: 13
System.out.println(salam.toUpperCase()); // Mencetak: HELLO, WORLD!
Kelas ArrayList
ArrayList adalah array dinamis yang dapat tumbuh atau menyusut sesuai kebutuhan:
import java.util.ArrayList;
ArrayList<String> buah = new ArrayList<>();
buah.add("Apple");
buah.add("Banana");
buah.add("Cherry");
System.out.println(buah); // Mencetak: [Apple, Banana, Cherry]
Penanganan File Java
Penanganan file sangat penting untuk membaca dan menulis ke file. Java 11 memperkenalkan beberapa metode baru untuk membuat ini mudah:
import java.nio.file.Files;
import java.nio.file.Path;
String isi = "Hello, Java 11!";
Path pathFilePath = Path.of("example.txt");
Files.writeString(pathFilePath, isi);
String readIsi = Files.readString(pathFilePath);
System.out.println(readIsi); // Mencetak: Hello, Java 11!
Kode ini menulis string ke file dan kemudian membacanya kembali. Metode writeString
dan readString
adalah baru di Java 11 dan membuat I/O file lebih sederhana.
Kesalahan dan Ekscepsi Java
Kesalahan dan eksepsi adalah seperti bump dan lubang di jalan pemrograman. Java membantu kita menangani ini dengan lembut:
try {
int hasil = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Ups! Anda tidak dapat membagi dengan nol.");
} finally {
System.out.println("Ini selalu berjalan, kesalahan atau tidak.");
}
Kode ini mencoba untuk membagi oleh nol (yang adalah禁忌 dalam matematika), menangkap eksepsi yang timbul, dan mencetak pesan yang ramah daripada崩溃。
Multithreading Java
Multithreading adalah seperti jongkok – itu memungkinkan program Anda untuk melakukan beberapa hal secara bersamaan. Ini adalah contoh yang sederhana:
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getId() + "Nilai " + i);
}
}
}
public class Main {
public static void main(String args[]) {
MyThread t1 = new MyThread();
MyThread t2 = new MyThread();
t1.start();
t2.start();
}
}
Ini menciptakan dua thread yang menjalankan bersamaan, masing-masing mencetak ID thread dan nilai.
Sinkronisasi Java
Ketika beberapa thread mengakses sumber daya bersama, kita perlu mensinkronisasi mereka untuk menghindari konflik. Itu seperti having traffic lights at an intersection:
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 bersamaan.
Jaringan Java
Java membuatnya mudah untuk menciptakan aplikasi berjaringan. Ini adalah contoh server sederhana yang mendengarkan koneksi:
import java.net.*;
import java.io.*;
public class SimpleServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = new ServerSocket(8080);
System.out.println("Server sedang mendengarkan di port 8080");
Socket socket = serverSocket.accept();
System.out.println("Klien terhubung");
}
}
Server ini mendengarkan di port 8080 dan mencetak pesan saat klien terhubung.
Koleksi Java
Koleksi Java adalah seperti jenis berbagai wadah untuk menyimpan objek. Mari kita lihat beberapa:
List
import java.util.*;
List<String> buah = new ArrayList<>();
buah.add("Apple");
buah.add("Banana");
System.out.println(buah); // Mencetak: [Apple, Banana]
Set
Set<Integer> angka = new HashSet<>();
angka.add(1);
angka.add(2);
angka.add(1); // Duplikat, tidak akan ditambahkan
System.out.println(angka); // Mencetak: [1, 2]
Map
Map<String, Integer> usia = new HashMap<>();
usia.put("Alice", 25);
usia.put("Bob", 30);
System.out.println(usia.get("Alice")); // Mencetak: 25
Antarmuka Java
Antarmuka adalah seperti kontrak yang kelas dapat setuju untuk mengikuti. Ini adalah contoh:
interface Hewan {
void buatSuara();
}
class Anjing implements Hewan {
public void buatSuara() {
System.out.println("Woof!");
}
}
class Kucing implements Hewan {
public void buatSuara() {
System.out.println("Meow!");
}
}
Kedua Anjing
dan Kucing
mengimplementasikan antarmuka Hewan
, setuju untuk menyediakan metode buatSuara
.
Struktur Data Java
Struktur data adalah cara untuk mengorganisir dan menyimpan data. Mari kita lihat linked list sederhana:
class Node {
int data;
Node next;
Node(int d) { data = d; }
}
class LinkedList {
Node head;
public void tambah(int data) {
Node newNode = new Node(data);
if (head == null) {
head = newNode;
} else {
Node current = head;
while (current.next != null) {
current = current.next;
}
current.next = newNode;
}
}
public void cetak() {
Node current = head;
while (current != null) {
System.out.print(current.data + " ");
current = current.next;
}
System.out.println();
}
}
public class Main {
public static void main(String[] args) {
LinkedList list = new LinkedList();
list.tambah(1);
list.tambah(2);
list.tambah(3);
list.cetak(); // Mencetak: 1 2 3
}
}
Kode ini mengimplementasikan struktur data linked list sederhana.
Algoritma Koleksi Java
Java menyediakan banyak algoritma yang berguna untuk bekerja dengan koleksi. Ini adalah contoh pengurutan:
import java.util.*;
List<Integer> angka = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5));
Collections.sort(angka);
System.out.println(angka); // Mencetak: [1, 1, 2, 3, 4, 5, 5, 6, 9]
Java Tingkat Lanjut
Sekiranya Anda terus maju, Anda akan menghadapi konsep Java yang lebih tingkat lanjut. Salah satu konsep itu adalah ekspresi lambda, diperkenalkan di Java 8 dan diperbaiki di Java 11:
List<Integer> angka = Arrays.asList(1, 2, 3, 4, 5);
angka.forEach(n -> System.out.println(n * 2));
Kode ini menggunakan ekspresi lambda untuk mengalikan setiap nilai dengan 2 dan mencetaknya.
Java Misc
Java 11 memperkenalkan beberapa fitur kecil. Salah satunya adalah kata kunci var
untuk inferensi jenis variabel lokal:
var pesan = "Hello, Java 11!";
System.out.println(pesan);
Kompiler menginfer bahwa pesan
adalah String.
API dan Kerangka Kerja Java
Java memiliki ekosistem luas dari API dan kerangka kerja. Salah satu kerangka kerja populer adalah Spring Boot. Ini adalah contoh aplikasi "Hello World" Spring Boot:
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@SpringBootApplication
@RestController
public class HelloWorldApplication {
public static void main(String[] args) {
SpringApplication.run(HelloWorldApplication.class, args);
}
@GetMapping("/")
public String hello() {
return "Hello, World!";
}
}
Ini menciptakan aplikasi web yang menjawab dengan "Hello, World!" saat Anda mengunjungi URL utama.
Referensi Kelas Java
Java memungkinkan Anda mendapatkan referensi ke kelas di runtime. Ini adalah contoh:
Class<?> stringClass = String.class;
System.out.println(stringClass.getName()); // Mencetak: java.lang.String
Sumber Daya Java yang Berguna
Berikut adalah beberapa sumber daya yang berguna untuk belajar Java:
- Dokumentasi resmi Oracle Java
- Kursus Java di Codecademy
- Buku "Head First Java"
- Stack Overflow untuk bertanya
Fitur Baru
Java 11 memperkenalkan banyak fitur baru. Berikut adalah tabel ringkasan beberapa di antaranya:
Fitur | Deskripsi |
---|---|
Syntax Variabel Lokal untuk Lambda Parameters | Memungkinkan var dalam ekspresi lambda |
HTTP Client (Standard) | API pelanggan HTTP standar |
Peluncuran Program Sumber Code Single-File | Menjalankan file sumber Java secara langsung |
Metode String Baru | Metode baru seperti isBlank() , lines() , strip() , dll. |
Metode Files Baru | Metode baru seperti readString() , writeString()
|
Itu saja untuk perjalanan singkat kita ke Java 11! Ingat, belajar pemrograman adalah seperti belajar bahasa baru – itu memerlukan latihan, kesabaran, dan kegembiraan. Jangan frustasi jika Anda belum mengerti segala sesuatu segera. Terus coding, terus percobaan, dan terutama, terus bersenang-senang! Sebelum Anda tahu, Anda akan menulis aplikasi Java yang kompleks dan berpikir bagaimana itu bisa sulit pada awalnya. Selamat coding!
Credits: Image by storyset