1
KATA PENGANTAR
2
DAFTAR ISI
3
BAGIAN TEORI
Objektif
4
1. Java ArrayList
Kelas ArrayList adalah array yang dapat diubah ukurannya, yang dapat ditemukan
di paket java.util. Perbedaan antara array built-in dan ArrayList di Java, adalah
bahwa ukuran array tidak dapat diubah (jika Anda ingin menambah atau
menghapus elemen ke / dari array, Anda harus membuat yang baru). Sementara
elemen ArrayList dapat ditambahkan dan dihapus kapan pun. Sintaksnya juga
sedikit berbeda:
Contoh : Buat objek ArrayList bernama mobil yang akan menyimpan string:
Tambahkan Item
Kelas ArrayList memiliki banyak metode yang berguna. Misalnya, untuk
menambahkan elemen ke ArrayList, gunakan metode add():
Contoh
import java.util.ArrayList;
5
Akses Item
Untuk mengakses elemen di ArrayList, gunakan metode get() dan lihat nomor indeks,
Contoh :
cars.get(0);
Ubah Item
Untuk mengubah sebuah elemen, gunakan metode set() dan lihat nomor indeks ,
Contoh :
cars.set(0, "Opel");
Hapus Item
Untuk menghapus elemen, gunakan metode remove() dan merujuk ke nomor indeks,
Contoh :
cars.remove(0);
Untuk menghapus semua elemen di ArrayList, gunakan metode clear(), Contoh :
cars.clear();
Ukuran ArrayList
Untuk mengetahui berapa banyak elemen yang dimiliki ArrayList, gunakan metode
ukuran, Contoh :
cars.size ();
6
cars.add("Ford");
cars.add("Mazda");
for (int i = 0; i <cars.size(); i ++) {
System.out.println (cars.get (i));
}
}
}
Anda juga dapat melakukan loop melalui ArrayList dengan for-each loop, contoh :
Tipe lain
Elemen dalam ArrayList sebenarnya adalah objek. Dalam contoh di atas, kami
membuat elemen (objek) berjenis "String". Ingatlah bahwa String di Java adalah
objek (bukan tipe primitif). Untuk menggunakan tipe lain, seperti int, Anda harus
menentukan kelas wrapper yang setara : Integer. Untuk tipe primitif lainnya,
gunakan: Boolean untuk boolean, Character untuk char, Double untuk double, dll:
Contoh : Buat ArrayList untuk menyimpan angka (tambahkan elemen bertipe
Integer):
import java.util.ArrayList;
7
public class MyClass {
public static void main (String [] args) {
ArrayList<Integer> myNumbers = new ArrayList<Integer>();
myNumbers.add(10);
myNumbers.add(15);
myNumbers.add(20);
myNumbers.add(25);
for (int i: myNumbers) {
System.out.println(i);
}
}
}
Sortir ArrayList
Kelas berguna lainnya dalam paket java.util adalah kelas Koleksi, yang
menyertakan metode sort () untuk menyortir daftar menurut abjad atau numerik ,
contoh : Urutkan ArrayList dari Strings:
import java.util.ArrayList;
import java.util.Collections; // Impor kelas Koleksi
8
contoh : Sortir ArrayList of Integers :
import java.util.ArrayList;
import java.util.Collections; // Impor kelas Koleksi
2 Java LinkedList
9
String run(String str);
}
ArrayList vs LinkedList
Kelas LinkedList adalah kumpulan yang bisa berisi banyak objek dengan tipe yang
sama, seperti ArrayList.
Kelas LinkedList memiliki semua metode yang sama dengan kelas ArrayList
karena keduanya mengimplementasikan antarmuka List. Ini berarti Anda dapat
menambahkan item, mengubah item, menghapus item, dan menghapus daftar
dengan cara yang sama.
Namun, sementara kelas ArrayList dan kelas LinkedList dapat digunakan dengan
cara yang sama, keduanya dibangun dengan sangat berbeda.
10
Bagaimana ArrayList bekerja, Kelas ArrayList memiliki array biasa di dalamnya.
Ketika sebuah elemen ditambahkan, itu ditempatkan ke dalam array. Jika array
tidak cukup besar, array baru yang lebih besar dibuat untuk menggantikan yang
lama dan yang lama dihapus.
Metode LinkedList
Untuk banyak kasus, ArrayList lebih efisien karena biasanya memerlukan akses ke
item acak dalam daftar, tetapi LinkedList menyediakan beberapa metode untuk
melakukan operasi tertentu dengan lebih efisien:
11
Method Description
addFirst() Menambahkan item pada awal list
addLast() Menambahkan item pada akhir list
removeFirst() Membuang item diawal list
removeLast() Membuang item di akhir list
getFirst() Dapatkan item di awal list
getLast() Get the item at the end of the list
3 Java HashMap
Di bab ArrayList, Anda mengetahui bahwa Array menyimpan item sebagai koleksi
yang dipesan, dan Anda harus mengaksesnya dengan nomor indeks (tipe int).
Namun, HashMap, menyimpan item dalam pasangan "kunci / nilai", dan Anda
dapat mengaksesnya dengan indeks jenis lain (mis. String).
Satu objek digunakan sebagai kunci (indeks) ke objek lain (nilai). Ini dapat
menyimpan jenis yang berbeda: Kunci string dan nilai Integer, atau jenis yang
sama, seperti: Kunci string dan nilai String:
Contoh : Buat objek HashMap bernama capitalCities yang akan menyimpan kunci
String dan nilai String :
Tambahkan Item
Kelas HashMap memiliki banyak metode yang berguna. Misalnya, untuk
menambahkan item ke dalamnya, gunakan metode put(), Contoh :
12
// Create a HashMap object called capitalCities
HashMap<String, String> capitalCities = new HashMap<String, String>();
Akses Item
Untuk mengakses nilai di HashMap, gunakan metode get() dan lihat key-nya:
capitalCities.get("England");
Hapus Item
Untuk menghapus item, gunakan metode remove() dan lihat key-nya :
capitalCities.remove("England");
Ukuran HashMap
Untuk mengetahui berapa banyak item yang ada, gunakan metode ukuran:
Contoh
capitalCities.size ();
13
Catatan: Gunakan metode keySet() jika Anda hanya menginginkan key, dan
gunakan metode values() jika Anda hanya menginginkan nilai, Contoh :
// Cetak kunci
for (String i: capitalCities.keySet()) {
System.out.println(i);
}
Contoh
// Cetak nilai
for (String i: capitalCities.values ()) {
System.out.println (i);
}
Contoh
// Cetak kunci dan nilai
for (String i: capitalCities.keySet()) {
System.out.println ("kunci:" + i + "nilai:" + capitalCities.get(i));
}
14
// Buat objek HashMap yang disebut orang
HashMap <String, Integer> people = new HashMap <String, Integer> ();
4 Java HashSet
HashSet adalah kumpulan item yang setiap itemnya unik, dan ditemukan di paket
java.util:
Contoh, Buat objek HashSet yang disebut mobil yang akan menyimpan string :
Tambahkan Item
Kelas HashSet memiliki banyak metode yang berguna. Misalnya, untuk
menambahkan item ke dalamnya, gunakan metode add(), Contoh :
15
public static void main(String[] args) {
HashSet <String> mobil = HashSet baru <String> ();
cars.add("Volvo");
cars.add("BMW");
cars.add("Ford");
cars.add("BMW");
cars.add("Mazda");
System.out.println (mobil);
}
}
Catatan: Dalam contoh di atas, meskipun BMW ditambahkan dua kali, itu hanya
muncul sekali dalam set karena setiap item dalam satu set harus unik.
cars.contains("Mazda");
Hapus Item
Untuk menghapus item, gunakan metode remove() , Contoh :
cars.remove("Volvo");
cars.clear();
Ukuran HashSet
Untuk mengetahui berapa banyak item yang ada, gunakan metode ukuran, Contoh
:
16
cars.size();
import java.util.HashSet;
17
if (numbers.contains (i)) {
System.out.println (i + "ditemukan di set.");
} else {
System.out.println (i + "tidak ditemukan di set.");
}
}
}
}
5 Iterator Java
Iterator adalah objek yang dapat digunakan untuk mengulang koleksi, seperti
ArrayList dan HashSet. Ini disebut "iterator" karena "iterating" adalah istilah teknis
untuk perulangan.
Mendapatkan Iterator
Metode iterator() bisa digunakan untuk mendapatkan Iterator untuk koleksi apa pun
:
Contoh
// Buatlah koleksi
ArrayList<String> cars = new ArrayList<String> ();
cars.add("Volvo");
cars.add("BMW");
18
cars.add("Ford");
cars.add("Mazda");
// Dapatkan iteratornya
Iterator<String> it = cars.iterator ();
while (it.hasNext()) {
System.out.println (it.next());
}
import java.util.ArrayList;
import java.util.Iterator;
19
Iterator<Integer> it = numbers.iterator();
while(it.hasNext()) {
Integer i = it.next();
if (i <10) {
it.remove();
}
}
System.out.println(numbers);
}
}
Mencoba menghapus item menggunakan for-loop atau for-each loop tidak akan
berfungsi dengan benar karena koleksi mengubah ukuran pada saat yang sama saat
kode mencoba mengulang
Tabel di bawah ini menunjukkan tipe primitif dan kelas pembungkus yang setara:
Tipe Data Primitif Kelas Wrapper
byte Byte
short Short
int Integer
long Long
float Float
double Double
boolean Boolean
char Character
20
Terkadang Anda harus menggunakan kelas pembungkus, misalnya saat bekerja
dengan objek Collection, seperti ArrayList, di mana tipe primitif tidak dapat
digunakan (daftar hanya dapat menyimpan objek), contoh :
Karena Anda sekarang bekerja dengan objek, Anda dapat menggunakan metode
tertentu untuk mendapatkan informasi tentang objek tertentu.
Misalnya, metode berikut digunakan untuk mendapatkan nilai yang terkait dengan
objek wrapper yang sesuai: intValue(), byteValue(), shortValue(), longValue(),
floatValue(), doubleValue(), charValue(), booleanValue() .
Contoh ini akan menampilkan hasil yang sama seperti contoh di atas:
21
public static void main(String[] args) {
Integer myInt = 5;
Double myDouble = 5,99;
Karakter myChar = 'A';
System.out.println (myInt.intValue());
System.out.println (myDouble.doubleValue());
System.out.println (myChar.charValue());
}
}
Saat menjalankan kode Java, kesalahan yang berbeda dapat terjadi: kesalahan
pengkodean yang dilakukan oleh programmer, kesalahan karena input yang salah,
atau hal-hal lain yang tidak terduga.
22
Ketika kesalahan terjadi, Java biasanya akan berhenti dan menghasilkan pesan
kesalahan. Istilah teknis untuk ini adalah: Java akan membuat exception (membuat
kesalahan / throw an error).
Pernyataan catch memungkinkan Anda untuk menentukan blok kode yang akan
dieksekusi, jika terjadi kesalahan di blok percobaan.
try {
// Blok kode untuk dicoba
}
catch (Exception e) {
// Blok kode untuk menangani kesalahan
}
23
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 10
di MyClass.main(MyClass.java:4)
Jika terjadi kesalahan, kita dapat menggunakan try ... catch untuk menangkap
kesalahan tersebut dan menjalankan beberapa kode untuk menanganinya :
Outputnya adalah:
Something went wrong.
The 'try catch' is finished.
Pernyataan terakhir memungkinkan Anda mengeksekusi kode, setelah try ... catch,
apa pun hasilnya:
24
}
}
}
Outputnya adalah:
Something went wrong.
The 'try catch' is finished.
Throw Exception jika usia di bawah 18 tahun (cetak "Akses ditolak"). Jika usia 18
tahun atau lebih, cetak "Akses diberikan":
25
Outputnya adalah:
Exception in thread "main" java.lang.ArithmeticException: Access denied - You must be
at least 18 years old.
at MyClass.checkAge(MyClass.java:4)
at MyClass.main(MyClass.java:12)
checkAge(20);
Outputnya adalah:
Akses diberikan - Anda cukup tua!
8 Java RegEx
Regular Expression dapat berupa satu karakter, atau pola yang lebih rumit.
Regular Expression dapat digunakan untuk melakukan semua jenis pencarian teks
dan operasi penggantian teks.
Java tidak memiliki kelas Regular Expression bawaan, tetapi kita dapat mengimpor
paket java.util.regex untuk bekerja dengan Regular Expression. Paket tersebut
mencakup kelas-kelas berikut:
26
PatternSyntaxException Class - Menunjukkan kesalahan sintaks dalam pola
ekspresi reguler
Contoh : Cari tahu apakah ada kemunculan kata "w3schools" dalam sebuah kalimat:
import java.util.regex.Matcher;
import java.util.regex.Pattern;
Contoh Dijelaskan
Dalam contoh ini, Kata "stmi" sedang dicari dalam sebuah kalimat.
27
Metode matcher() digunakan untuk mencari pola dalam sebuah string. Ini
mengembalikan objek Matcher yang berisi informasi tentang pencarian yang
dilakukan.
Metode find() mengembalikan nilai true jika pola ditemukan dalam string dan false
jika tidak ditemukan.
Flag
Tanda dalam metode compile() mengubah cara pencarian dilakukan. Berikut ini
beberapa di antaranya:
9 Threads
Thread Java, Thread memungkinkan program untuk beroperasi lebih efisien dengan
melakukan banyak hal pada waktu yang bersamaan.
Thread dapat digunakan untuk melakukan tugas rumit di latar belakang tanpa
mengganggu program utama.
Membuat Thread
Ada dua cara untuk membuat Thread. Itu bisa dibuat dengan memperluas kelas
Thread dan menimpa metode run():
28
Sintaks lebih lanjut
Menjalankan Thread
Jika kelas memperluas kelas Thread, thread dapat dijalankan dengan membuat
instance kelas dan memanggil metode start():
29
Jika kelas mengimplementasikan antarmuka Runnable, utas dapat dijalankan
dengan meneruskan instance kelas ke konstruktor objek Thread dan kemudian
memanggil metode thread's start():
Menerapkan Contoh
Perbedaan utamanya adalah ketika sebuah kelas memperluas kelas Thread, Anda
tidak dapat memperluas kelas lain, tetapi dengan mengimplementasikan interface
Runnable, dimungkinkan untuk memperluas dari kelas lain juga, seperti: class
MyClass extends OtherClass mengimplementasikan Runnable.
Permasalahan Concurrent
Karena utas berjalan pada waktu yang sama dengan bagian lain dari program, tidak
ada cara untuk mengetahui urutan kode akan dijalankan. Ketika utas dan program
utama membaca dan menulis variabel yang sama, nilainya tidak dapat diprediksi.
Masalah yang dihasilkan dari ini disebut masalah konkurensi, contoh :
30
public class MyClass extends Thread {
public static int amount = 0;
31
// Perbarui jumlah dan cetak nilainya
System.out.println("Utama:" + amount);
amount++;
System.out.println("Utama:" + amount);
}
public void run() {
amount++;
}
}
10 Lambda
Untuk menggunakan lebih dari satu parameter, bungkus dalam tanda kurung:
Ekspresi terbatas. Mereka harus segera mengembalikan nilai, dan tidak boleh berisi
variabel, tugas, atau pernyataan seperti if atau for. Untuk melakukan operasi yang
lebih kompleks, blok kode dapat digunakan dengan tanda kurung kurawal. Jika
ekspresi lambda perlu mengembalikan nilai, maka blok kode harus memiliki
pernyataan return.
32
Menggunakan Lambda Expressions
Ekspresi lambda biasanya diteruskan sebagai parameter ke suatu fungsi:
Contoh : Gunakan ekspresi lamba dalam metode forEach() ArrayList untuk
mencetak setiap item dalam daftar:
import java.util.ArrayList;
Ekspresi lambda dapat disimpan dalam variabel jika jenis variabel adalah interface
yang hanya memiliki satu metode. Ekspresi lambda harus memiliki jumlah
parameter yang sama dan tipe kembalian yang sama dengan metode itu. Java
memiliki banyak jenis interface bawaan, seperti interface Consumer (ditemukan
dalam paket java.util) yang digunakan oleh list. Contoh
import java.util.ArrayList;
import java.util.function.Consumer;
33
ArrayList<Integer> numbers = new ArrayList<Integer> ();
numbers.add(5);
numbers.add(9);
numbers.add(8);
numbers.add(1);
Consumer<Integer> method = (n) -> { System.out.println(n); };
numbers.forEach(method);
}
}
Untuk menggunakan ekspresi lambda dalam sebuah metode, metode tersebut harus
memiliki parameter dengan antarmuka metode tunggal sebagai tipenya. Memanggil
metode interface akan menjalankan ekspresi lambda, Contoh :
interface StringFunction {
String run(String str);
}
34
PRAKTIKUM
Objektif
35
PRAKTEK 1 :
PRAKTEK 2 :
package org.stmi.oop.lab3;
import java.util.ArrayList;
36
import java.util.Collections; // Impor kelas Koleksi
Dengan demikian semua hasil pekerjaan akan tampak sudah dikerjakan, ini adalah
wajib, kelalaian akan mengurangi nilai.
37
TUGAS 1
Ketik ulang semua kode dibagian teori dengan aturan yang telah dicontohkan
pada praktek nomor 2 untuk semua bagian teori.
38
KATA PENTING
39
DAFTAR PUSTAKA
40