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 tempatMetode 2: Sekaligus
int[] numbers = new int[5];Metode 3: Dengan Nilai Awal
int[] numbers = {10, 20, 30, 40, 50};Setelah kamu membuat array, ukurannya tetap. Kamu tidak bisa menambah atau menghapus elemen nantinya!
int[] inventory = new int[9]; // Selalu memiliki tepat 9 slotMengakses 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
| Indeks | 0 | 1 | 2 |
|---|---|---|---|
| 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]); // 90Panjang Array
Gunakan .length untuk mendapatkan ukuran array:
int[] scores = {45, 67, 89, 92, 55};
System.out.println(scores.length); // 5Perhatikan 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 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]); // 8Representasi Visual
| 0 | 1 | 2 | |
|---|---|---|---|
| 0 | 1 | 2 | 3 |
| 1 | 4 | 5 | 6 |
| 2 | 7 | 8 | 9 |
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
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];
}