Hytale Modding
Java Basics

05 - Array

Pelajari cara menyimpan dan mengelola koleksi data menggunakan array.

Array memungkinkanmu menyimpan banyak nilai dengan tipe yang sama dalam satu variabel. Bayangkan array sebagai deretan kotak, di mana setiap kotak menampung satu item.

Membuat Array

Metode 1: Deklarasi dan Inisialisasi Secara Terpisah

int[] numbers;           // Deklarasi
numbers = new int[5];    // Membuat array dengan 5 tempat

Metode 2: Sekaligus

int[] numbers = new int[5];

Metode 3: Dengan Nilai Awal

int[] numbers = {10, 20, 30, 40, 50};
Ukuran Array

Setelah kamu membuat array, ukurannya tetap. Kamu tidak bisa menambah atau menghapus elemen nantinya!

int[] inventory = new int[9];  // Selalu memiliki tepat 9 slot

Mengakses Elemen Array

Array menggunakan nomor indeks yang dimulai dari 0:

String[] players = {"Alice", "Bob", "Charlie"};

System.out.println(players[0]); // "Alice"
System.out.println(players[1]); // "Bob"
System.out.println(players[2]); // "Charlie"

Representasi Visual

Indeks012
Nilai"Alice""Bob""Charlie"

Mengubah Nilai Array

int[] health = {100, 80, 90};

health[1] = 60;  // Ubah nyawa Bob menjadi 60

System.out.println(health[0]); // 100
System.out.println(health[1]); // 60
System.out.println(health[2]); // 90

Panjang Array

Gunakan .length untuk mendapatkan ukuran array:

int[] scores = {45, 67, 89, 92, 55};
System.out.println(scores.length); // 5
Length Bukanlah Sebuah Method

Perhatikan tidak ada tanda kurung! Gunakan array.length, bukan array.length().

Melakukan Loop pada Array

Menggunakan For Loop

String[] items = {"Sword", "Shield", "Potion"};

for (int i = 0; i < items.length; i++) {
    System.out.println(items[i]);
}

Menggunakan Enhanced For Loop (For-Each)

String[] items = {"Sword", "Shield", "Potion"};

for (String item : items) {
    System.out.println(item);
}
Enhanced For Loop

Enhanced for loop lebih sederhana dan aman, tetapi kamu tidak bisa mengubah array atau mengetahui indeks saat ini.

// saat kamu butuh indeksnya
for (int i = 0; i < items.length; i++) {
    System.out.println(i + ": " + items[i]);
}

// saat kamu hanya butuh indeksnya
for (String item : items) {
    System.out.println(item);
}

Array Multidimensi

Array bisa menampung array lain, membuat sebuah grid:

int[][] grid = {
    {1, 2, 3},
    {4, 5, 6},
    {7, 8, 9}
};

System.out.println(grid[0][0]); // 1
System.out.println(grid[1][2]); // 6
System.out.println(grid[2][1]); // 8

Representasi Visual

012
0123
1456
2789

Melakukan Loop pada Array 2D

int[][] grid = {
    {1, 2, 3},
    {4, 5, 6}
};

for (int row = 0; row < grid.length; row++) {
    for (int col = 0; col < grid[row].length; col++) {
        System.out.print(grid[row][col] + " ");
    }
    System.out.println();
}

Contoh Praktis

Sistem Inventaris Pemain

String[] inventory = new String[9]; // 9 slot hotbar

// Tambahkan items
inventory[0] = "Diamond Sword";
inventory[1] = "Shield";
inventory[8] = "Food";

// Tampilkan inventory
for (int i = 0; i < inventory.length; i++) {
    if (inventory[i] != null) {
        System.out.println("Slot " + i + ": " + inventory[i]);
    } else {
        System.out.println("Slot " + i + ": Kosong");
    }
}

Mencari Skor Tertinggi

int[] scores = {45, 92, 67, 88, 55, 71};
int highest = scores[0];

for (int i = 1; i < scores.length; i++) {
    if (scores[i] > highest) {
        highest = scores[i];
    }
}

System.out.println("Skor tertinggi: " + highest);

Menghitung rata-rata

double[] temperatures = {23.5, 25.0, 22.8, 24.3, 26.1};
double sum = 0;

for (double temp : temperatures) {
    sum += temp;
}

double average = sum / temperatures.length;
System.out.println("Suhu rata-rata: " + average);

Grid Blok (Array 2D)

String[][] terrain = new String[5][5];

// Isi dengan rumput
for (int x = 0; x < 5; x++) {
    for (int z = 0; z < 5; z++) {
        terrain[x][z] = "grass";
    }
}

// Taruh beberapa batu
terrain[2][2] = "stone";
terrain[1][3] = "stone";

// Tampilkan grid
for (int x = 0; x < terrain.length; x++) {
    for (int z = 0; z < terrain[x].length; z++) {
        System.out.print(terrain[x][z] + " ");
    }
    System.out.println();
}

Operasi Array Umum

Menyalin Array

int[] original = {1, 2, 3, 4, 5};
int[] copy = original.clone();

// Atay manual
int[] copy2 = new int[original.length];
for (int i = 0; i < original.length; i++) {
    copy2[i] = original[i];
}

Mencari sebuah Nilak

String[] items = {"Sword", "Shield", "Potion", "Bow"};
String target = "Potion";
int foundIndex = -1;

for (int i = 0; i < items.length; i++) {
    if (items[i].equals(target)) {
        foundIndex = i;
        break;
    }
}

if (foundIndex != -1) {
    System.out.println("Ditemukan pada indeks: " + foundIndex);
} else {
    System.out.println("Tidak ketemu");
}

Menghitung kemunculan

String[] blocks = {"stone", "dirt", "stone", "grass", "stone"};
String searchFor = "stone";
int count = 0;

for (String block : blocks) {
    if (block.equals(searchFor)) {
        count++;
    }
}

System.out.println(searchFor + " muncul " + count + " kali");

Batasan Array

Ukuran Tetap

Array tidak bisa membesar atau mengecil. Jika kamu butuh fleksibilitas, kamu akan belajar tentang ArrayList nanti!

int[] numbers = new int[5];
// Tidak bisa menambah elemen ke-6!

// Jika butuh ruang lebih, buat array baru
int[] bigger = new int[10];
for (int i = 0; i < numbers.length; i++) {
    bigger[i] = numbers[i];
}