Java 11 - Fitur Baru
Halo teman-teman pemrogram Java yang bersemangat! Saya sangat senang menjadi panduan Anda dalam perjalanan menarik ini ke dunia Java 11. Sebagai seseorang yang telah mengajar ilmu komputer selama tahun-tahun, saya telah melihat banyak siswa berubah dari pemula menjadi pemrogram yang percaya diri. Jadi, jangan khawatir jika Anda mulai dari nol - kita akan mengambil langkah demi langkah, dan sebelum Anda tahu, Anda akan menulis kode Java seperti seorang pro!
Statement Kontrol Java
mari mulai dengan dasar. Statement kontrol mirip seperti lampu lalu lintas dalam pemrograman - mereka mengarahkan aliran kode Anda. Di Java 11, kita memiliki beberapa cara menarik untuk mengontrol eksekusi program kita.
Statement If-Else
Statement if-else mungkin adalah struktur kontrol yang Anda gunakan paling banyak. Itu mirip seperti membuat keputusan dalam kehidupan nyata. Ini adalah contoh sederhana:
int age = 18;
if (age >= 18) {
System.out.println("Anda bisa voting!");
} else {
System.out.println("Maaf, Anda terlalu muda untuk voting.");
}
Dalam kode ini, kita memeriksa apakah variabel age
sama dengan atau lebih dari 18. Jika benar, kita mencetak bahwa orang itu bisa voting. Jika tidak, kita memberitahunya bahwa mereka terlalu muda. Itu saja!
Statement Switch
Statement switch sangat cocok ketika Anda memiliki banyak kondisi untuk diperiksa. Pictorialnya seperti menulis beberapa statement if-else secara lebih efisien. Java 11 memperkenalkan beberapa peningkatan menarik ke statement switch. Ini adalah contoh:
String day = "Monday";
switch (day) {
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 day
dan mencetak apakah itu adalah hari kerja atau akhir pekan. Sinkronisasi panah (->
) adalah hal 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 objek yang berbeda untuk berinteraksi satu sama lain untuk membentuk program Anda.
Kelas dan Objek
Kelas adalah seperti rancangan untuk menciptakan objek. Ini adalah kelas sederhana yang mewakili mobil:
public class Car {
String make;
String model;
int year;
public void startEngine() {
System.out.println("Vroom! The " + year + " " + make + " " + model + " is starting.");
}
}
Sekarang, mari kita buat objek dari kelas ini:
Car myCar = new Car();
myCar.make = "Toyota";
myCar.model = "Corolla";
myCar.year = 2021;
myCar.startEngine();
Ketika Anda menjalankan kode ini, itu akan mencetak: "Vroom! The 2021 Toyota Corolla is starting."
Kelas Bawaan Java
Java datang dengan set kaya kelas bawaan yang membuat kehidupan kita mudah. Mari kita lihat beberapa di antaranya:
Kelas String
Kelas String digunakan untuk memanipulasi teks. Ini adalah contoh:
String greeting = "Hello, World!";
System.out.println(greeting.length()); // Mencetak: 13
System.out.println(greeting.toUpperCase()); // Mencetak: HELLO, WORLD!
Kelas ArrayList
ArrayList adalah array dinamis yang dapat bertambah atau berkurang sesuai kebutuhan:
import java.util.ArrayList;
ArrayList<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
fruits.add("Cherry");
System.out.println(fruits); // Mencetak: [Apple, Banana, Cherry]
Penanganan File di 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 content = "Hello, Java 11!";
Path filePath = Path.of("example.txt");
Files.writeString(filePath, content);
String readContent = Files.readString(filePath);
System.out.println(readContent); // Mencetak: Hello, Java 11!
Kode ini menulis string ke file dan kemudian membacanya kembali. Metode writeString
dan readString
adalah hal baru di Java 11 dan membuat I/O file menjadi lebih sederhana.
Kesalahan dan Ekscepsi di Java
Kesalahan dan eksepsi adalah seperti lubang dan gores di jalan pemrograman. Java membantu kita menanganinya secara halus:
try {
int result = 10 / 0;
} catch (ArithmeticException e) {
System.out.println("Ups! Anda tidak bisa membagi dengan nol.");
} finally {
System.out.println("Ini selalu berjalan, kesalahan atau tidak.");
}
Kode ini mencoba untuk membagi dengan nol (yang adalah tabu dalam matematika), menangkap eksepsi yang timbul, dan mencetak pesan yang ramah daripada menghancurkan.
Multithreading di Java
Multithreading adalah seperti jongkok - itu memungkinkan program Anda melakukan beberapa hal secara bersamaan. Ini adalah contoh sederhana:
class MyThread extends Thread {
public void run() {
for (int i = 0; i < 5; i++) {
System.out.println(Thread.currentThread().getId() + " Value " + 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 secara bersamaan, masing-masing mencetak ID thread dan nilai.
Sinkronisasi di Java
Ketika beberapa thread mengakses sumber daya bersama, kita perlu mensinkronisasikan mereka untuk menghindari konflik. Itu seperti having lampu lalu lintas di persimpangan:
class Counter {
private int count = 0;
public synchronized void increment() {
count++;
}
public int getCount() {
return count;
}
}
Kata kunci synchronized
memastikan bahwa hanya satu thread yang dapat menjalankan metode increment
pada satu waktu.
Jaringan di Java
Java membuatnya mudah untuk menciptakan aplikasi jaringan. 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 di Java
Koleksi Java adalah seperti jenis kontainer berbeda untuk menyimpan objek. Mari kita lihat beberapa di antaranya:
List
import java.util.*;
List<String> fruits = new ArrayList<>();
fruits.add("Apple");
fruits.add("Banana");
System.out.println(fruits); // Mencetak: [Apple, Banana]
Set
Set<Integer> numbers = new HashSet<>();
numbers.add(1);
numbers.add(2);
numbers.add(1); // Duplikat, tidak akan ditambahkan
System.out.println(numbers); // Mencetak: [1, 2]
Map
Map<String, Integer> ages = new HashMap<>();
ages.put("Alice", 25);
ages.put("Bob", 30);
System.out.println(ages.get("Alice")); // Mencetak: 25
Antarmuka di Java
Antarmuka adalah seperti kontrak yang kelas dapat setuju untuk mengikuti. Ini adalah contoh:
interface Animal {
void makeSound();
}
class Dog implements Animal {
public void makeSound() {
System.out.println("Woof!");
}
}
class Cat implements Animal {
public void makeSound() {
System.out.println("Meow!");
}
}
Kedua Dog
dan Cat
mengimplementasikan antarmuka Animal
, setuju untuk menyediakan metode makeSound
.
Struktur Data di Java
Struktur data adalah cara mengatur 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 add(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 print() {
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.add(1);
list.add(2);
list.add(3);
list.print(); // Mencetak: 1 2 3
}
}
Kode ini mengimplementasikan struktur data linked list.
Algoritma Koleksi di Java
Java menyediakan banyak algoritma yang berguna untuk bekerja dengan koleksi. Ini adalah contoh pengurutan:
import java.util.*;
List<Integer> numbers = new ArrayList<>(Arrays.asList(3, 1, 4, 1, 5, 9, 2, 6, 5));
Collections.sort(numbers);
System.out.println(numbers); // 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 seperti itu adalah ekspresi lambda, yang diperkenalkan di Java 8 dan diperbaiki di Java 11:
List<Integer> numbers = Arrays.asList(1, 2, 3, 4, 5);
numbers.forEach(n -> System.out.println(n * 2));
Kode ini menggunakan ekspresi lambda untuk mengalikan setiap nomor dengan 2 dan mencetaknya.
Java Lain-lain
Java 11 memperkenalkan beberapa fitur lain-lain. Salah satu di antaranya adalah kata kunci var
untuk inferensi tipe variabel lokal:
var message = "Hello, Java 11!";
System.out.println(message);
Kompiler menyimpulkan bahwa message
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 root.
Referensi Kelas di Java
Java memungkinkan Anda mendapatkan referensi ke kelas pada saat 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 menanyakan pertanyaan
Fitur Baru
Java 11 memperkenalkan beberapa fitur baru. Berikut adalah tabel yang menggabungkan beberapa di antaranya:
Fitur | Deskripsi |
---|---|
Sinkronisasi Variabel Lokal | Memungkinkan var dalam ekspresi lambda |
HTTP Client (Standar) | API pelanggan HTTP standar |
Peluncuran Program Single-File | Menjalankan file sumber code 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 untuk mengoding adalah seperti belajar bahasa baru - itu memerlukan latihan, kesabaran, dan kekerasan. Jangan frustasi jika Anda tidak mengerti segala sesuatu segera. Terus coding, terus mencoba, dan terus bersenang-senang! Sebelum Anda tahu, Anda akan menulis aplikasi Java yang kompleks dan bertanya-tanya bagaimana hal itu terlihat sulit pada awalnya. Selamat coding!
Credits: Image by storyset