Apa Saja yang Baru di Java 11?
Java 11 sudah dirilis pada tanggal 25 September 2018 kemarin.
Banyak ‘pembersihan’ yang terjadi pada versi ini, seperti:
Java EE, CORBA, Java applets, dan Java FX sudah dihapus di dalam JDK (Java Development Kit). 1
Tapi tenang saja, mereka masih bisa di-install dari repositori Mavan.
Lalu, apa saja fitur terbaru pada Java 11? Apa saja yang akan dihapus?
Sebelum kita migrasi atau upgrade ke Java 11, kita harus tahu dua hal ini agar aplikasi yang kita bangun dengan Java, bisa berjalan dengan lancar.
Mari kita bahas.
Download & Install Java 11
Sebelum itu, jika kamu ingin mencoba Java 11, silahkan download JDK-nya:
Saya akan download OpenJDK 11 untuk Linux.
Nanti kita akan mendapatkan sebuah file arsip tar.gz
.
Setelah itu, ekstrak ke tempat yang aman.
Saya akan mengekstraknya ke direktori ~/apps/
.
Apabila di komputermu sudah ada Java, kamu bisa gunakan fitur update-alternatives untuk menentukan versi Java yang akan digunakan.
Atau bisa juga dengan menambahkan path Java ke dalam Environtment Variable.
Saya akan menggunakan Environment Variable, karena lebih mudah.
Caranya:
Tambahkan alamat path Java ke dalam file .bashrc
.
export JAVA_HOME=$HOME/apps/jdk-11
export PATH=$JAVA_HOME/bin:$PATH
Alamat path JAVA_HOME
merupakan lokasi saya menginstal atau meng-ekstrak JDK yang sudah di-download.
Berikutnya, tutup terminal dan buka lagi.
Maka ketika kita cek dengan which
dia akan mengarah ke sana.
Sekarang saya sudah menggunakan Java 11.
Mari kita coba fitur-fitur terbarunya.
1. Eksekusi Langsung Program Java
Ini yang menarik!
Di Java 11, kita bisa eksekusi langsung kode program Java, tanpa harus dikompilasi dengan perintah javac
.
Contoh: ContohProgram.java
package com.petanikode;
public class ContohProgram {
public static void main(String[] args) {
System.out.println("Contoh Program dengan Java 11");
}
}
Untuk menjalankannya, kita cukup ketik perintah:
java ContohProgram.java
Maka hasilnya:
Pada versi Java sebelumnya, kita harus kompilasi dulu souce code Java menjadi bytecode.
Barulah bisa dieksekusi.
Sekarang sudah tidak lagi.
Rasanya seperti menulis kode dengan bahasa Scripting seperti Javascript.
2. Javascript Nashorn engine akan Dihapus
Javascript Nashorn engine merupakan runtime engine—sama seperti V8 Engine pada Nodejs— untuk menjalankan Javascript di atas JVM (Java Virtual Machin).
Akan tetapi, tool ini sudah tidak akan digunakan lagi alias (deprecated).
Ketika kita coba jalankan jjs
, maka akan muncul peringatan "The jjs tool is planned to be removed from a future JDK release"
.
3. Method Baru pada String
Pada rilis Java 11 ini, terdapat beberapa method pada string yang ditambahkan, diantaranya:
Method repeat()
Method ini digunakan untuk mengulang atau membuat perulangan dari sebuah String.
Hampir setiap bahasa pemrograman memiliki method atau fungsi repeat()
. Sedangkan di Java, baru ditambahkan pada Java 11.
Pada Python dan Ruby, kita bisa gunakan operator *
untuk mengulang sebuah string.
print("ha" * 30) # python
puts "ha" * 30 # ruby
Pada PHP, kita bisa gunakan fungsi str_repeat()
.
echo str_repeat("ha", 30);
Nah, pada Java, dia sama seperti Javascript, yaitu menggunakan method repeat()
.
Contoh:
var teks = "ha";
teks.repeat(50);
Percobaan pada jshell
.
Oya, jsehll
(java shell) merupakan console Java. Fitur ini mulai ditambahkan pada Java 9.
Lalu kata kunci var
untuk membuat variabel, baru ditambahkan pada Java 10.
Method strip()
Pernah dengar fungsi atau method trim()
?
Ya, kurang lebih fungsi strip()
sama seperti trim()
. Yaitu: untuk menghapus white space pada String.
Tetapi method strip()
punya dua (method) saudara lagi, yaitu: stripTrailing()
dan stripLeading()
.
stripTrailing()
akan menghapus white space yang ada di belakang;stripLeading()
akan menghapus white space yang ada di depan.strip()
akan menghapus white space yang ada di depan dan belakang.
Percobaan pada jshell
.
Sebenarnya method ini sudah pernah ditanyakan 7 tahun yang lalu di Stack Overflow. 2 Mengapa baru sekarang ditambahkan ya…? 😊
Method isEmpty()
dan isBlank()
Kamu pasti sudah bisa menebak apa fungsi dari method ini.
Yap, keduanya untuk mengecek: apakah string-nya kosong atau tidak.
Apa perbedaan isEmpty()
dan isBlank()
?
Method isEmpty()
hanya akan bernilai true
saat sebuah string diisi dengan ""
. Apabila kita isi dengan spasi seperti ini: " "
, maka method isEmpty()
akan mengembalikan nilai false
.
Sedangkan isBlank()
lebih cerdas. Ia mampu mengetahui, kalau isi string tersebut adalah spasi (white space).
Mari kita coba:
Method lines()
Method ini berfungsi untuk mengekstrak sebuah string menjadi Stream berdasarkan garis baru.
Contoh:
var title = "Saya\nsedang\nbelajar\njava\ndi\nPetanikode";
var tiileStream = title.lines();
Perhatikan simbol \n
yang ada di dalam string variabel title
. Simbol ini berfungsi untuk membuat garis baru.
Saat kita menggunakan method lines()
pada string ini, maka tiap-tiap kata aka menjadi sebuah stream.
4. Method Baru pada Class Files
Kalau tadi method-method yang baru ditambahkan pada Java 11 untuk operasi String. Maka yang ini untuk operasi File.
Ada dua method baru:
readString()
untuk membaca teks string dari File;writeString()
untuk menulis teks string ke File.
Contoh:
Menulis string ke file dengan method writeString()
package com.petanikode;
import java.nio.file.Path;
import java.nio.file.Files;
import java.io.IOException;
public class TulisFile {
public static void main(String[] args) throws IOException {
var words = "Tutorial java untuk pemula\noleh: Petani Kode";
Files.writeString(Path.of("words.txt"), words);
}
}
Hasilnya:
Membaca string dari file dengan method readString()
package com.petanikode;
import java.nio.file.Path;
import java.nio.file.Files;
import java.io.IOException;
public class BacaFile {
public static void main(String[] args) throws IOException {
var fileName = "words.txt";
var data = Files.readString(Path.of("words.txt"));
System.out.println(data);
}
}
Hasilnya:
Kini kita lebih mudah untuk menulis dan membaca file di Java.
Tidak perlu lagi pakai ‘buffer-bufferan’ 😄 seperti ini:
import java.io.*;
public class ReadWriteFile {
public static void main(String args[]) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("input.txt");
out = new FileOutputStream("output.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
}finally {
if (in != null) {
in.close();
}
if (out != null) {
out.close();
}
}
}
}
5. HTTP Client kini Menjadi Library Standar
Pada Java versi sebelumnya, Kita bisa melakukan HTTP Request dengan class HttpURLConnection
.
Akan tetapi, HttpURLConnection
memiliki beberapa masalah:
- Class ini didesain untuk berbagai macam protokol (seperti:
ftp
,gopher
, dll.); HttpURLConnection
Sulit digunakan karena dokumentasinya minim;HttpURLConnection
bekerja pada mode blocking saja (seperti: 1 thread untuk requset/response);HttpURLConnection
sulit di-maintain;
Solusi alternatifnya:
Kita bisa menggunakan library pihak ketiga seperti Unirest, OkHTTP, Apache HTTP Client, Android Asynchronous Http Client, dll.
Kini, kita tidak perlu lagi menggunakan library pihak ketiga. Karena HTTP Client sudah menjadi library standar di Java 11.
Lokasinya ada di package:
java.net.http
Contoh:
package com.petanikode;
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class RequestPetanikode {
public static void main(String[] args) {
var client = HttpClient.newHttpClient();
var request = HttpRequest.newBuilder()
.uri(URI.create("https://www.petanikode.com"))
.build();
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
.thenApply(HttpResponse::body)
.thenAccept(System.out::println)
.join();
}
}
Hasilnya:
Biasanya library ini sering digunakan untuk:
- Mengakses RESTful API atau web service;
- Melakukan Scrape data pada web;
- Membuat Bot;
- dan lain-lain.
Baca juga: Cara Install Netbeans 10 di Linux | Kenapa Bahasa Pemrograman Java Kurang Cocok untuk Pemula? | Cara Menggunakan Banyak JDK di Linux agar tidak Bentrok
Recent Post
-
Software House Indonesia untuk Bisnis Anda
-
5 Alasan Utama Memilih Software House untuk Pengembangan Web App
-
Peran Software House dalam Mendorong Transformasi Digital Perusahaan di Era Modern
-
10 Software House Terpercaya di Indonesia untuk Solusi Digital Bisnis Anda
-
Mengapa Software House Penting untuk Bisnis yang Ingin Go Digital?
-
Keunggulan Software House dalam Pengembangan Website Custom untuk Bisnis
-
Mengenal Software House: Layanan Lengkap untuk Bisnis Digital Anda
-
Mengapa Keamanan Web App Sangat Penting dan Bagaimana Memilih Software House yang Tepat
Tags
Read More
Software House Indonesia untuk Bisnis Anda
Muhamad Dzaky 18/11/2024 0Dalam era digital yang serba cepat, setiap bisnis membutuhkan solusi teknologi yang tepat untuk tetap relevan dan kompetitif. Software house hadir sebagai mitra utama untuk…
5 Alasan Utama Memilih Software House untuk Pengembangan Web App
Muhamad Dzaky 16/11/2024 0Dalam era digital saat ini, kebutuhan akan aplikasi berbasis web (web app) semakin meningkat. Bisnis…
Peran Software House dalam Mendorong Transformasi Digital Perusahaan di Era Modern
Muhamad Dzaky 15/11/2024 0Di era modern yang ditandai dengan perkembangan teknologi yang pesat, transformasi digital menjadi kebutuhan mendesak…
10 Software House Terpercaya di Indonesia untuk Solusi Digital Bisnis Anda
Muhamad Dzaky 14/11/2024 0Di era digital ini, keberadaan software house menjadi penting untuk membantu bisnis beradaptasi dengan perkembangan…
Mengapa Software House Penting untuk Bisnis yang Ingin Go Digital?
Muhamad Dzaky 13/11/2024 0Di era digital seperti sekarang, kehadiran teknologi dalam dunia bisnis tidak bisa diabaikan. Setiap bisnis…