Struktur Data dan Modular
Tatasusunan (Array)
Tatasusunan ialah struktur data yang menyimpan BANYAK nilai berjenis data SAMA dalam satu pemboleh ubah. Setiap nilai disimpan dalam elemen yang dirujuk menggunakan indeks. PENTING: indeks bermula dari 0, bukan 1!
java
// Pengisytiharan dan pemberian nilai
int[] markah = {78, 85, 62, 90, 55};
// indeks: 0 1 2 3 4
System.out.println(markah[0]); // 78 (elemen pertama)
System.out.println(markah[3]); // 90
System.out.println(markah.length); // 5 (bilangan elemen)
markah[2] = 70; // ubah nilai elemen ketiga🎯 TIP SPM: Tatasusunan 5 elemen mempunyai indeks 0 hingga 4. Mengakses markah[5] menyebabkan RALAT MASA LARIAN (ArrayIndexOutOfBoundsException). Ini soalan kegemaran pemeriksa!
Dua Cara Mengisytihar Tatasusunan
java
// Cara 1: terus dengan nilai awal
int[] markah = {78, 85, 62, 90, 55};
// Cara 2: isytihar saiz dahulu, isi kemudian
int[] nombor = new int[5];
nombor[0] = 78;
nombor[1] = 85;
// String juga boleh
String[] kelas = {"Akas", "Bestari", "Cemerlang"};🎯 TIP SPM (trial Johor): Soalan kerap minta anda TULIS pengisytiharan tatasusunan berserta nilai awal. Pastikan ada simbol [], nama tatasusunan, dan nilai dalam kurawal {} dipisahkan koma.
Memproses Tatasusunan dengan Gelung
java
// Kira jumlah dan purata markah
int[] markah = {78, 85, 62, 90, 55};
int jumlah = 0;
for (int i = 0; i < markah.length; i++) {
jumlah = jumlah + markah[i];
}
double purata = (double) jumlah / markah.length;
System.out.println("Jumlah: " + jumlah); // 370
System.out.println("Purata: " + purata); // 74.0java
// Cari nilai TERBESAR dalam tatasusunan
int terbesar = markah[0];
for (int i = 1; i < markah.length; i++) {
if (markah[i] > terbesar) {
terbesar = markah[i];
}
}
System.out.println("Terbesar: " + terbesar); // 90Pengaturcaraan Modular: Kaedah (Method)
Pengaturcaraan modular memecahkan atur cara besar kepada modul-modul kecil yang dipanggil kaedah (method). Setiap kaedah melaksanakan satu tugas khusus. Kelebihan: kod boleh diguna semula, mudah diuji, mudah diselenggara, dan kerja boleh dibahagikan dalam pasukan.
java
public class ContohModular {
// Kaedah dengan parameter dan nilai pulangan
static int kiraLuas(int panjang, int lebar) {
return panjang * lebar;
}
// Kaedah tanpa nilai pulangan (void)
static void paparSalam(String nama) {
System.out.println("Salam, " + nama + "!");
}
public static void main(String[] args) {
int luas = kiraLuas(5, 3); // panggil kaedah
System.out.println(luas); // 15
paparSalam("Aiman"); // Salam, Aiman!
}
}| Istilah | Maksud |
|---|---|
| Parameter | Pemboleh ubah yang menerima nilai dalam takrifan kaedah (panjang, lebar) |
| Argumen | Nilai sebenar yang dihantar semasa panggilan (5, 3) |
| return | Mengembalikan nilai daripada kaedah kepada pemanggil |
| void | Kaedah yang TIDAK mengembalikan sebarang nilai |
🎯 TIP SPM: Jejak panggilan kaedah dengan teliti — kenal pasti nilai argumen yang dihantar, gantikan ke dalam parameter, dan kira nilai return.
Contoh: Jejak Panggilan Kaedah
java
static int tambah(int a, int b) {
return a + b;
}
// panggilan:
int x = tambah(4, 5); // a=4, b=5 -> return 9
int y = tambah(x, 1); // a=9, b=1 -> return 10