☕ Java
"Write once, run anywhere". Bahasa OOP paling populer buat Android, backend, dan enterprise.
Pengenalan Java
Java adalah bahasa pemrograman berorientasi objek yang jalan di JVM - Java Virtual Machine. Makanya bisa jalan di Windows, Mac, Linux tanpa ubah kode.
File Java berekstensi .java harus di-compile jadi .class pake javac, baru dijalanin pake java.
// File: Halo.java
public class Halo {
public static void main(String[] args) {
// Ini komentar satu baris
/*
* Ini komentar
* multi-baris
*/
System.out.println("Halo Dunia!");
}
}
javac Halo.java java HaloStruktur Dasar
Setiap program Java harus ada di dalam class. Nama file harus sama persis dengan nama class + .java
- public class NamaClass — wadah utama program
- public static void main(String[] args) — titik awal program jalan
- System.out.println() — buat nampilin output
- ; — setiap statement wajib diakhiri semicolon
public class Main {
public static void main(String[] args) {
System.out.println("Program Java pertamaku");
System.out.print("Ini tanpa enter");
System.out.println(" - ini nyambung");
}
}
Variabel & Tipe Data
Java itu strongly typed. Tipe data harus dideklarasi dan gak bisa gonta-ganti.
- int — bilangan bulat: 100, -25
- double — desimal: 3.14, -0.5
- char — satu karakter: 'A', '7'
- String — teks: "Halo Java"
- boolean — true / false
public class Variabel {
public static void main(String[] args) {
int umur = 21;
double ipk = 3.75;
char golongan = 'A';
String nama = "Siti";
boolean aktif = true;
System.out.println("Nama: " + nama);
System.out.println("Umur: " + umur + " tahun");
System.out.println("IPK: " + ipk);
}
}
Kode di bawah ini error saat di-compile. Baca pesan errornya, lalu ketik ulang perbaikannya langsung di kotak edit (kode tidak bisa di-copy-paste dari luar — coba benerin pakai pemahamanmu sendiri).
Input & Output
Buat input pake Scanner. Import dulu dari java.util.Scanner
import java.util.Scanner;
public class InputOutput {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan nama: ");
String nama = input.nextLine(); // input string
System.out.print("Masukkan umur: ");
int umur = input.nextInt(); // input angka
System.out.println("Halo " + nama + ", umur " + umur + " tahun");
input.close(); // tutup scanner
}
}
Operator
Sama kayak C++: aritmatika, perbandingan, logika.
public class Operator {
public static void main(String[] args) {
int a = 15, b = 4;
System.out.println("a + b = " + (a + b)); // 19
System.out.println("a / b = " + (a / b)); // 3, bukan 3.75
System.out.println("a % b = " + (a % b)); // 3
System.out.println("a > b: " + (a > b)); // true
boolean hasil = (a > 10) && (b < 10);
System.out.println("a>10 AND b<10: " + hasil); // true
}
}
Percabangan
if-else dan switch cara pakenya sama kayak bahasa lain.
import java.util.Scanner;
public class Percabangan {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Nilai: ");
int nilai = input.nextInt();
if (nilai >= 85) {
System.out.println("Grade A");
} else if (nilai >= 70) {
System.out.println("Grade B");
} else {
System.out.println("Grade C");
}
// Switch
int hari = 2;
switch(hari) {
case 1: System.out.println("Senin"); break;
case 2: System.out.println("Selasa"); break;
default: System.out.println("Hari lain");
}
input.close();
}
}
Perulangan
for, while, do-while. Ada juga for-each buat array.
public class Perulangan {
public static void main(String[] args) {
// For
System.out.print("For: ");
for (int i = 1; i <= 5; i++) {
System.out.print(i + " ");
}
// While
System.out.print("\nWhile: ");
int j = 1;
while (j <= 5) {
System.out.print(j + " ");
j++;
}
// For-each
int[] angka = {10, 20, 30};
System.out.print("\nFor-each: ");
for (int n : angka) {
System.out.print(n + " ");
}
}
}
Method
Di Java namanya method, bukan fungsi. Harus ada di dalam class. Kalo mau dipanggil tanpa bikin objek, pake static.
public class Method {
// Method static, bisa dipanggil langsung
static void sapa(String nama) {
System.out.println("Halo, " + nama);
}
// Method dengan return
static int kuadrat(int x) {
return x * x;
}
public static void main(String[] args) {
sapa("Budi");
int hasil = kuadrat(5);
System.out.println("5 kuadrat = " + hasil);
}
}
Array
Ukuran array di Java fixed. Index mulai dari 0. Pake .length buat tau ukurannya.
public class Array {
public static void main(String[] args) {
// Cara 1: langsung isi
int[] nilai = {85, 90, 78, 92};
// Cara 2: deklarasi ukuran dulu
String[] nama = new String[3];
nama[0] = "Andi";
nama[1] = "Budi";
nama[2] = "Citra";
System.out.println("Jumlah data: " + nilai.length);
System.out.println("Nilai pertama: " + nilai[0]);
System.out.print("Semua nama: ");
for (String n : nama) {
System.out.print(n + " ");
}
}
}
Program di bawah crash saat dijalankan (bukan error compile). Baca pesan errornya, lalu ketik ulang perbaikannya di kotak edit (tidak bisa copy-paste).
OOP Dasar
Java itu OOP. Semua kode ada di dalam class. Class = blueprint, Object = hasil jadi dari blueprint.
// Class Mahasiswa
class Mahasiswa {
String nama;
int nim;
// Constructor
Mahasiswa(String nama, int nim) {
this.nama = nama;
this.nim = nim;
}
// Method
void perkenalan() {
System.out.println("Halo, saya " + nama + " NIM " + nim);
}
}
public class Main {
public static void main(String[] args) {
// Bikin object
Mahasiswa mhs1 = new Mahasiswa("Dewi", 12345);
mhs1.perkenalan();
}
}
🚀 Mini Project: Sistem Nilai Mahasiswa
Gabungkan array, method, percabangan, dan OOP jadi satu program kecil yang menghitung nilai akhir beberapa mahasiswa sekaligus.
class Mahasiswa {
String nama;
int[] nilaiTugas;
Mahasiswa(String nama, int[] nilaiTugas) {
this.nama = nama;
this.nilaiTugas = nilaiTugas;
}
double rataRata() {
int total = 0;
for (int n : nilaiTugas) {
total += n;
}
return (double) total / nilaiTugas.length;
}
String grade() {
double rata = rataRata();
if (rata >= 85) return "A";
else if (rata >= 70) return "B";
else return "C";
}
}
public class SistemNilai {
public static void main(String[] args) {
Mahasiswa[] daftar = {
new Mahasiswa("Andi", new int[]{80, 90, 85}),
new Mahasiswa("Budi", new int[]{60, 65, 70}),
};
for (Mahasiswa m : daftar) {
System.out.printf("%s: rata-rata %.1f, grade %s%n",
m.nama, m.rataRata(), m.grade());
}
}
}
✦ Coba Sendiri
Tulis kode Java di bawah, klik Run buat compile & jalanin. Support input via terminal.