Repositori pembelajaran mata kuliah pemrograman Java
Java memiliki berbagai fungsi untuk melakukan banyak hal. Fungsi-fungsi ini dibungkus dalam class, dan class ini disimpan dalam bentuk package. Beberapa package bisa langsung digunakan, beberapa memerlukan perintah import
untuk class ini bisa digunakan. Daftar lengkap dari package yang bisa digunakan Anda bisa check di Java Platform SE 8 - All Classes. Dalam bab ini, ita akan coba mempelajari beberapa package standard yang umum dipakai.
Membaca dokumentasi adalah hal penting yang perlu dibiasakan bagi seseorang yang belajar pemrograman. Dokumentasi yang baik memiliki standar penulisan yang konsisten, sehingga memudahkan kita untuk mempelajarinya. Tapi, meskipun demikian perlu latihan dan pembiasaan diri untuk kita bisa membaca dokumentasi secara efektif. Mari kita check dokumentasi package Math, dari sumber resmi developer Java, Java Platform SE 8 - Math.
Contoh tampilan dokumentasi Java:
Pada halaman ini kita bisa menemukan banyak penjelasan, tapi pada bagian ini kita akan fokuskan pada 2 bagian: 1. Field Summary; 2. Method Summary
Pada Field Summary Anda bisa menemukan bahwa package Math menyediakan konstanta pi (π) dan konstanta e (basis bilangan natural).
Pada Method Summary Anda bisa menemukan daftar fungsi yang bisa digunakan. Ketika kita mempelajari bagaimana menggunakan fungsi, Anda bisa mulai dari hal-hal berikut:
abs
memerlukan 1 parameter. Perhatikan juga fungsi abs
bisa dipanggil dengan 4 cara, tergantung dari tipe data dari parameter yang diberikan. Ia bisa dipanggil dengan menggunakan parameter double a
, float a
, int a
, long a
.asin(double a)
, maka output fungsi akan berupa data bertipe double
.Berikut contoh penggunaan fungsi pada Math
public class Test {
public static void main(String[] args) {
int a = 3;
int b = 4;
int c = -5;
double d = -1.75;
System.out.println("Akar dari "+b+" adalah "+Math.sqrt(b));
System.out.println("Akar dari "+a+" adalah "+Math.sqrt(a));
System.out.println("Nilai absolut "+c+" adalah "+Math.abs(c));
System.out.println("Nilai absolut "+d+" adalah "+Math.abs(d));
System.out.println("Nilai PI: "+Math.PI);
}
}
Penjelasan:
Math.PI
, tanpa menggunakan ()
.Di internet Anda akan menemukan banyak website yang menyediakan tutorial dan referensi perintah Java. Tentu tidak semuanya memiliki format penulisan yang sama persis seperti yang kita lihat di situs resmi developer Java dan tidak semua dari website yang Anda temui memberikan cara penulisan yang baik. Website yang baik ditandai dengan cara penulisan yang terstruktur dan konsisten.
Beberapa website berikut Anda bisa pakai untuk menjadi referensi untuk mempelajari tutorial dan referensi perintah Java:
Latihan:
Java menyediakan banyak package yang bisa digunakan. Package Math adalah salah satu package yang secara default di load dalam setiap eksekusi program. Tapi, tidak semua package di load ke memory untuk setiap program yang kita buat.Untuk efisiensi, package yang di-load ke memory hanyalah package yang akan digunakan. Oleh sebab itu, sebagian besar package perlu dipanggil terlebih dahulu menggunakan perintah import
.
Tentu Anda sudah mengenal penggunaan import
ini ketika Anda menggunakan class Scanner
. Memang package Scanner juga adalah salah satu package yang perlu di-import sebelum digunakan. Tapi pada kesempatan kali ini, kita akan menggunakan contoh package Random. Package Random berisi berbagai fungsi untuk menghasilkan bilangan acak. Check dokumentasi package ini di Java Platform SE 8 - Random
Contoh 1:
import java.util.Random;
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
Random rnd = new Random();
Scanner scan = new Scanner(System.in);
int max;
System.out.print("Nilai Max: ");
max = scan.nextInt();
System.out.println("Bilangan acak antara 0-"+max+" --> "+rnd.nextInt(max));
}
}
Penjelasan
Random rnd = new Random()
.rnd
adalah objek yang dibuat dari class Random
. scan
adalah objek yang dibuat dari class Scanner
.Scanner scan = new Scanner(System.in)
. Class Scanner memiliki constructor yang minta 1 parameter. Anda bisa check definisinya di Java Platform SE 8 - Scannerrnd.nextInt(max)
adalah fungsi untuk menghasilkan bilangan acak integer dari 0
sampai max-1
. Pada saat program dijalankan, ketika user input 6
pada pertanyaan Nilai Max, maka rnd.nextInt(max)
akan menghasilkan bilagan acak antara 0
sampai 5
.Latihan:
Java merupakan bahasa pemrograman yang sangat kental dengan penerapan paradigram Object Oriented Programming (OOP). Mustahil menguasai Java tanpa kita mempelajari konsep OOP. Lebih banyak tentang OOP, kita akan pelajari pada bagian khusus (check Ruang Belajar OOP). Untuk kesederhanaan pembahasan bagian ini, sementara kita akan melihat objek sebagai struktur data kompleks/non-tradisional.
Struktur data tradisional adalah struktur data mendasar yang menyimpan nilai sedernaha, seperti: int, float, double, char, boolean. Struktur data kopleks adalah struktur data yang biasanya terdiri dari beberapa elemen. Contohnya: LocalDate (tanggal). Satu data yang berupa LocalDate, akan memiliki elemen tanggal, bulan, tahun. Terkait dengan objek LocalDate, kita terdapat juga menggunakan bisa fungsi untuk mengolah tanggal. Untuk dokumentasi, check Java Platform SE 8 - LocalDate
Perhatikan contoh program berikut.
import java.time.LocalDate;
public class LocalDateExample2 {
public static void main(String[] args) {
LocalDate sekarang = LocalDate.now();
LocalDate tanggal = LocalDate.of(2000, 10, 13);
System.out.println("Tanggal sekarang "+sekarang);
System.out.println("Bulan: "+sekarang.getMonth());
System.out.println("Bulan: "+sekarang.getMonthValue());
System.out.println("Tahun Kabisat: "+sekarang.isLeapYear());
System.out.println();
LocalDate kemarin = sekarang.plusDays(-1);
System.out.println("Kemarin: "+kemarin);
System.out.println("Hari Kemarin: "+kemarin.getDayOfWeek());
System.out.println();
LocalDate lahir = LocalDate.of(2016, 9, 23);
System.out.println("Tanggal Lahir "+lahir);
System.out.println("Hari Lahir: "+lahir.getDayOfWeek());
}
}
Struktur data komplek lain yang cukup umum digunakan dan Anda bisa pelajari untuk belajar: LocalTime, ArrayList, String, Duration, Queue, Stack.