Pemrograman komputer adalah proses menulis, menguji, dan memelihara kode sumber dari program komputer. Proses ini melibatkan:
Tingkat Rendah (Low Level):
Tingkat Tinggi (High Level):
Platform Independent:
Object-Oriented:
Robust & Secure:
Multithreaded:
Source Code (.java) → Compiler (javac) → Bytecode (.class) → JVM → Machine Codepublic class NamaClass {
public static void main(String[] args) {
// kode program
}
}Class: PascalCase (ContohClass) Method: camelCase (namaMethod) Variable: camelCase (namaVariable) Constant: UPPER_CASE (NAMA_KONSTANTA)
// Komentar satu baris
/* Komentar
multiple baris */
/** Javadoc comment */Integer:
Floating Point:
Lainnya:
int umur; // deklarasi
umur = 25; // inisialisasi
int tinggi = 170; // deklarasi + inisialisasiAritmatika: +, -, *, /, % Assignment: =, +=, -=, *=, /=, %= Comparison: ==, !=, <, >, <=, >= Logical: &&, ||, ! Unary: ++, --, +, -
Implicit (Widening):
int a = 10;
double b = a; // otomatis convertExplicit (Narrowing):
double a = 10.5;
int b = (int) a; // manual castingimport java.util.Scanner;
public class InputExample {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Masukkan nama: ");
String nama = input.nextLine();
System.out.print("Masukkan umur: ");
int umur = input.nextInt();
input.close();
}
}import java.io.*;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();Scanner sc = new Scanner(System.in);
if (sc.hasNextInt()) {
int number = sc.nextInt();
} else {
System.out.println("Input tidak valid");
}If Statement:
if (kondisi) {
// statement
}If-Else:
if (kondisi) {
// statement jika true
} else {
// statement jika false
}If-Else If:
if (kondisi1) {
// statement 1
} else if (kondisi2) {
// statement 2
} else {
// statement default
}Switch Statement:
switch (variable) {
case value1:
// statement
break;
case value2:
// statement
break;
default:
// statement default
}For Loop:
for (int i = 0; i < 10; i++) {
// statement
}Enhanced For Loop:
int[] array = {1, 2, 3, 4, 5};
for (int element : array) {
System.out.println(element);
}While Loop:
while (kondisi) {
// statement
}Do-While Loop:
do {
// statement
} while (kondisi);int[] numbers; // deklarasi
numbers = new int[5]; // inisialisasi
int[] values = {1,2,3,4,5}; // deklarasi + inisialisasiint[] arr = {10, 20, 30, 40, 50};
System.out.println(arr[0]); // output: 10
arr[2] = 35; // mengubah nilaiint[] arr = {1, 2, 3, 4, 5};
int length = arr.length; // mendapatkan panjang arrayint[][] matrix = new int[3][4]; // 3 baris, 4 kolom
int[][] table = {{1,2}, {3,4}, {5,6}};
// Mengakses elemen
matrix[0][1] = 10;Iterasi Array:
int[] arr = {1, 2, 3, 4, 5};
for (int i = 0; i < arr.length; i++) {
System.out.println(arr[i]);
}Array Copy:
int[] source = {1, 2, 3};
int[] dest = new int[source.length];
System.arraycopy(source, 0, dest, 0, source.length);public static void main(String[] args) {
// args adalah array String dari command line
}public class CommandLineExample {
public static void main(String[] args) {
if (args.length > 0) {
System.out.println("Argument pertama: " + args[0]);
}
System.out.println("Total arguments: " + args.length);
for (String arg : args) {
System.out.println("Argument: " + arg);
}
}
}java CommandLineExample arg1 arg2 arg3// Command line arguments selalu String
String strAge = args[0];
int age = Integer.parseInt(strAge); // convert ke int
double salary = Double.parseDouble(args[1]); // convert ke doubleif (args.length < 2) {
System.out.println("Usage: java Program <arg1> <arg2>");
System.exit(1);
}Kumpulan class dan interface yang sudah disediakan Java untuk mempermudah pengembangan aplikasi.
java.lang: otomatis di-import
java.util: collection framework, utilities
java.io: input/output operations
java.net: networking
String str = "Hello World";
int length = str.length(); // panjang string
String upper = str.toUpperCase(); // ke uppercase
String lower = str.toLowerCase(); // ke lowercase
boolean contains = str.contains("World"); // cek substring
String[] parts = str.split(" "); // split stringdouble result = Math.sqrt(16); // akar kuadrat
double power = Math.pow(2, 3); // pangkat
int random = (int)(Math.random() * 100); // random number
double max = Math.max(10, 20); // nilai maksimumimport java.util.ArrayList;
ArrayList<String> list = new ArrayList<>();
list.add("Java"); // menambah elemen
list.add("Python");
String item = list.get(0); // mengambil elemen
list.remove(0); // menghapus elemen
int size = list.size(); // ukuran listInteger intObj = new Integer(10); // deprecated
Integer intObj2 = Integer.valueOf(10); // recommended
int primitive = intObj2.intValue();
// Autoboxing dan Unboxing
Integer autoBox = 10; // autoboxing
int unbox = autoBox; // unboxingpublic class NamaClass {
// Fields (attributes)
private int field1;
private String field2;
// Constructor
public NamaClass() {
// constructor default
}
public NamaClass(int f1, String f2) {
field1 = f1;
field2 = f2;
}
// Methods
public void setField1(int value) {
field1 = value;
}
public int getField1() {
return field1;
}
}Menyembunyikan detail implementasi dan menyediakan interface publik:
public class Student {
private String name; // private field
private int age;
// Public methods untuk akses
public void setName(String name) {
this.name = name;
}
public String getName() {
return name;
}
}public class Person {
private String name;
private int age;
// Default constructor
public Person() {
name = "Unknown";
age = 0;
}
// Parameterized constructor
public Person(String name, int age) {
this.name = name;
this.age = age;
}
}public class Calculator {
public int add(int a, int b) {
return a + b;
}
public double add(double a, double b) {
return a + b;
}
public int add(int a, int b, int c) {
return a + b + c;
}
}public class Counter {
private static int count = 0; // static field
public static void increment() { // static method
count++;
}
public static int getCount() {
return count;
}
}// Parent class
public class Animal {
protected String name;
public void eat() {
System.out.println("Animal is eating");
}
}
// Child class
public class Dog extends Animal {
public void bark() {
System.out.println("Dog is barking");
}
@Override
public void eat() {
System.out.println("Dog is eating");
}
}public class Vehicle {
protected String brand;
public Vehicle(String brand) {
this.brand = brand;
}
}
public class Car extends Vehicle {
private int doors;
public Car(String brand, int doors) {
super(brand); // memanggil constructor parent
this.doors = doors;
}
}Animal animal1 = new Dog(); // upcasting
Animal animal2 = new Cat();
animal1.eat(); // akan memanggil Dog.eat()
animal2.eat(); // akan memanggil Cat.eat()public class Shape {
public void draw() {
System.out.println("Drawing a shape");
}
}
public class Circle extends Shape {
@Override
public void draw() {
System.out.println("Drawing a circle");
}
}public interface Drawable {
void draw(); // abstract method
default void print() { // default method (Java 8+)
System.out.println("Printing...");
}
}
public class Rectangle implements Drawable {
@Override
public void draw() {
System.out.println("Drawing rectangle");
}
}public abstract class Animal {
protected String name;
public abstract void makeSound(); // abstract method
public void sleep() { // concrete method
System.out.println("Sleeping...");
}
}
public class Dog extends Animal {
@Override
public void makeSound() {
System.out.println("Woof!");
}
}Exception adalah event yang terjadi selama eksekusi program yang mengganggu alur normal instruksi.
Throwable
├── Error (system errors)
└── Exception
├── RuntimeException (unchecked)
│ ├── NullPointerException
│ ├── ArrayIndexOutOfBoundsException
│ └── IllegalArgumentException
└── Checked Exceptions
├── IOException
├── SQLException
└── ClassNotFoundExceptiontry {
// kode yang mungkin throw exception
int result = 10 / 0;
} catch (ArithmeticException e) {
// handle exception
System.out.println("Cannot divide by zero");
} catch (Exception e) {
// handle semua exception lainnya
System.out.println("Error: " + e.getMessage());
}try {
// risky code
FileReader file = new FileReader("data.txt");
} catch (FileNotFoundException e) {
System.out.println("File not found");
} finally {
// selalu dieksekusi
System.out.println("Cleanup resources");
}public void validateAge(int age) {
if (age < 0) {
throw new IllegalArgumentException("Age cannot be negative");
}
}public void readFile(String filename) throws IOException {
FileReader file = new FileReader(filename);
// method yang memanggil harus handle IOException
}public class InvalidAgeException extends Exception {
public InvalidAgeException(String message) {
super(message);
}
}
public void setAge(int age) throws InvalidAgeException {
if (age < 0 || age > 150) {
throw new InvalidAgeException("Invalid age: " + age);
}
}try (FileReader file = new FileReader("data.txt")) {
// use file
} catch (IOException e) {
System.out.println("Error reading file");
}
// file otomatis ditutupMateri JENI ini memberikan foundation yang kuat untuk pemrograman Java dan konsep OOP. Dari dasar syntax hingga konsep advanced seperti inheritance, polymorphism, dan exception handling, semua merupakan building blocks penting untuk menjadi programmer Java yang kompeten.
Poin Penting untuk Diingat:
Rangkuman ini disusun untuk membantu pemahaman materi PBO dengan fokus pada konsep-konsep kunci yang perlu dikuasai.