1. Pengenalan Java

Java adalah bahasa pemrograman yang dirilis oleh Sun Microsystems pada tahun 1995. Java terkenal dengan slogan "Write Once, Run Anywhere" (WORA), artinya kode Java dapat dijalankan di berbagai platform tanpa perlu dikompilasi ulang.

Karakteristik Utama Java:

  • Berorientasi objek - Semua kode ditulis dalam class
  • Platform-independent - Berkat Java Virtual Machine (JVM)
  • Automatic memory management - Garbage collection
  • Kaya akan library - Java memiliki ribuan library bawaan
Contoh program pertama: HelloWorld.java
public class HelloWorld {
    public static void main(String[] args) {
        // Menampilkan teks ke console
        System.out.println("Hello, World!");
        System.out.println("Selamat belajar Java!");
    }
}
Catatan: Method main adalah titik masuk (entry point) program Java. Tanpa method ini, program tidak bisa dijalankan.

2. Instalasi & Setup

Langkah-langkah instalasi Java:

  1. 1
    Download JDK (Java Development Kit) dari situs resmi Oracle atau OpenJDK.
  2. 2
    Install JDK dengan mengikuti petunjuk instalasi.
  3. 3
    Set environment variable JAVA_HOME dan tambahkan bin ke PATH.
  4. 4
    Verifikasi instalasi dengan perintah java -version di terminal/CMD.

IDE yang direkomendasikan:

IntelliJ IDEA (Community Edition gratis)
Eclipse
VS Code dengan extension Java
Cek versi Java di terminal
java -version
# Output contoh:
# openjdk version "17.0.2" 2022-01-18
# OpenJDK Runtime Environment (build 17.0.2+8)
# OpenJDK 64-Bit Server VM (build 17.0.2+8, mixed mode)

3. Sintaks Dasar

Aturan dasar penulisan kode Java:

  • Java case-sensitive (huruf besar/kecil berpengaruh)
  • Nama file harus sama persis dengan nama class public
  • Setiap statement diakhiri dengan titik koma (;)
  • Blok kode menggunakan kurung kurawal { }
  • Komentar: // untuk single line, /* */ untuk multi-line
Contoh sintaks dasar
public class SintaksDasar {
    public static void main(String[] args) {
        // Ini komentar single line
        System.out.println("Belajar Java");  // Statement diakhiri ;
        
        /*
            Ini komentar multi-line
            Bisa untuk penjelasan panjang
        */
        System.out.println("Sintaks itu mudah!");
    }
}

4. Variabel & Tipe Data

Tipe data primitif di Java:

Tipe Ukuran Range / Contoh
byte1 byte-128 s/d 127
short2 bytes-32,768 s/d 32,767
int4 bytes-2^31 s/d 2^31-1
long8 bytes-2^63 s/d 2^63-1
float4 bytes3.4e-038 s/d 3.4e+038
double8 bytes1.7e-308 s/d 1.7e+038
char2 bytes'A', 'B', '@'
boolean1 bittrue / false
Tips: Gunakan int untuk bilangan bulat dan double untuk desimal.
Contoh variabel
public class ContohVariabel {
    public static void main(String[] args) {
        // Deklarasi dan inisialisasi
        int umur = 20;
        double tinggi = 175.5;
        char grade = 'A';
        boolean lulus = true;
        String nama = "Budi";  // String bukan primitif, tapi class
        
        System.out.println("Nama: " + nama);
        System.out.println("Umur: " + umur);
        System.out.println("Tinggi: " + tinggi);
        System.out.println("Grade: " + grade);
        System.out.println("Lulus: " + lulus);
    }
}

5. Operator

Jenis-jenis operator:

Aritmatika

+ tambah - kurang * kali / bagi % modulus

Perbandingan

== sama dengan != tidak sama > lebih besar < lebih kecil

Logika

&& AND || OR ! NOT
Contoh operator
public class ContohOperator {
    public static void main(String[] args) {
        int a = 10;
        int b = 5;
        
        // Aritmatika
        System.out.println("a + b = " + (a + b));
        System.out.println("a - b = " + (a - b));
        System.out.println("a * b = " + (a * b));
        System.out.println("a / b = " + (a / b));
        System.out.println("a % b = " + (a % b));
        
        // Perbandingan
        System.out.println("a == b? " + (a == b));
        System.out.println("a > b? " + (a > b));
        
        // Logika
        boolean kondisi1 = (a > 0);
        boolean kondisi2 = (b > 0);
        System.out.println("AND: " + (kondisi1 && kondisi2));
        System.out.println("OR: " + (kondisi1 || kondisi2));
        System.out.println("NOT a: " + !kondisi1);
    }
}

6. Percabangan (if-else, switch)

Struktur if-else:

if (kondisi) {
    // kode jika kondisi true
} else if (kondisi2) {
    // kode jika kondisi2 true
} else {
    // kode jika semua kondisi false
}

Struktur switch-case:

switch (variabel) {
    case nilai1:
        // kode
        break;
    case nilai2:
        // kode
        break;
    default:
        // kode default
}
Contoh if-else dan switch
public class ContohPercabangan {
    public static void main(String[] args) {
        int nilai = 85;
        
        // If-else
        if (nilai >= 90) {
            System.out.println("Grade A");
        } else if (nilai >= 80) {
            System.out.println("Grade B");
        } else if (nilai >= 70) {
            System.out.println("Grade C");
        } else {
            System.out.println("Grade D");
        }
        
        // Switch
        int hari = 3;
        switch (hari) {
            case 1:
                System.out.println("Senin");
                break;
            case 2:
                System.out.println("Selasa");
                break;
            case 3:
                System.out.println("Rabu");
                break;
            default:
                System.out.println("Hari lain");
        }
    }
}

7. Perulangan (Loops)

Jenis perulangan di Java:

  • for - jika jumlah perulangan diketahui
  • while - jika jumlah perulangan tidak diketahui
  • do-while - mirip while, tapi minimal dijalankan sekali
  • for-each - untuk array/collection
Contoh perulangan
public class ContohLoop {
    public static void main(String[] args) {
        // For loop
        System.out.println("For loop:");
        for (int i = 1; i <= 5; i++) {
            System.out.println("Iterasi ke-" + i);
        }
        
        // While loop
        System.out.println("\nWhile loop:");
        int j = 1;
        while (j <= 5) {
            System.out.println("While ke-" + j);
            j++;
        }
        
        // Do-while
        System.out.println("\nDo-while:");
        int k = 1;
        do {
            System.out.println("Do-while ke-" + k);
            k++;
        } while (k <= 5);
        
        // For-each
        System.out.println("\nFor-each:");
        int[] angka = {10, 20, 30, 40};
        for (int nilai : angka) {
            System.out.println("Nilai: " + nilai);
        }
    }
}

8. Array

Array adalah struktur data untuk menyimpan banyak nilai dengan tipe yang sama.

Cara deklarasi array:

tipeData[] namaArray = new tipeData[ukuran];
// atau langsung dengan nilai
tipeData[] namaArray = {nilai1, nilai2, ...};

Indeks array dimulai dari 0.

Contoh array
public class ContohArray {
    public static void main(String[] args) {
        // Cara 1: deklarasi dengan ukuran
        int[] nilai = new int[5];
        nilai[0] = 80;
        nilai[1] = 85;
        nilai[2] = 90;
        nilai[3] = 75;
        nilai[4] = 95;
        
        // Cara 2: inisialisasi langsung
        String[] nama = {"Andi", "Budi", "Citra"};
        
        // Mengakses array
        System.out.println("Nilai pertama: " + nilai[0]);
        System.out.println("Nama kedua: " + nama[1]);
        
        // Looping array
        System.out.println("\nSemua nilai:");
        for (int i = 0; i < nilai.length; i++) {
            System.out.println("Nilai ke-" + i + ": " + nilai[i]);
        }
        
        // Array multi-dimensi
        int[][] matrix = {
            {1, 2, 3},
            {4, 5, 6}
        };
        System.out.println("Matrix[1][2]: " + matrix[1][2]); // 6
    }
}

9. Method / Fungsi

Method adalah blok kode yang bisa dipanggil berulang kali.

Struktur method:

modifier returnType namaMethod(parameter) {
    // body method
    return nilai; // jika returnType bukan void
}
  • modifier: public, private, protected, static
  • returnType: tipe data hasil, atau void jika tidak mengembalikan nilai
  • parameter: input ke method (opsional)
Contoh method
public class ContohMethod {
    // Method tanpa return (void)
    static void sapa(String nama) {
        System.out.println("Halo, " + nama + "!");
    }
    
    // Method dengan return
    static int tambah(int a, int b) {
        return a + b;
    }
    
    // Method overloading
    static double tambah(double a, double b) {
        return a + b;
    }
    
    public static void main(String[] args) {
        sapa("Andi");
        sapa("Budi");
        
        int hasil = tambah(10, 20);
        System.out.println("10 + 20 = " + hasil);
        
        double hasilDouble = tambah(3.5, 2.7);
        System.out.println("3.5 + 2.7 = " + hasilDouble);
    }
}

10. OOP Dasar (Class & Object)

OOP (Object-Oriented Programming) adalah paradigma pemrograman berbasis objek.

Konsep dasar:

  • Class - blueprint / cetakan untuk membuat objek
  • Object - instance dari class
  • Attribute - variabel dalam class (data)
  • Method - fungsi dalam class (perilaku)

4 pilar OOP:

Encapsulation Inheritance Polymorphism Abstraction
Contoh class dan object
// Definisi class
class Mahasiswa {
    // Attributes
    String nama;
    int umur;
    String jurusan;
    
    // Constructor
    Mahasiswa(String nama, int umur, String jurusan) {
        this.nama = nama;
        this.umur = umur;
        this.jurusan = jurusan;
    }
    
    // Methods
    void belajar() {
        System.out.println(nama + " sedang belajar.");
    }
    
    void displayInfo() {
        System.out.println("Nama: " + nama);
        System.out.println("Umur: " + umur);
        System.out.println("Jurusan: " + jurusan);
    }
}

public class ContohOOP {
    public static void main(String[] args) {
        // Membuat object
        Mahasiswa mhs1 = new Mahasiswa("Andi", 20, "Informatika");
        Mahasiswa mhs2 = new Mahasiswa("Budi", 21, "Sistem Informasi");
        
        mhs1.displayInfo();
        mhs1.belajar();
        
        System.out.println();
        mhs2.displayInfo();
        mhs2.belajar();
    }
}
Ini baru dasar OOP. Konsep lanjutan seperti inheritance dan polymorphism akan dibahas di materi terpisah.