Array & Operasinya — Struktur Data

Array adalah struktur data paling dasar — kumpulan elemen yang disimpan secara berurutan di memori. Operasi array dan kompleksitasnya: Operasi Kompleksitas Penj

Array adalah struktur data paling dasar — kumpulan elemen yang disimpan secara berurutan di memori.

Operasi array dan kompleksitasnya:

Operasi Kompleksitas Penjelasan
Akses (index) O(1) Langsung ke posisi — instan
Pencarian O(n) Harus cek satu per satu
Sisip di akhir O(1) Tambah di belakang — cepat
Sisip di tengah O(n) Harus geser elemen setelahnya
Hapus di akhir O(1) Buang elemen terakhir — cepat
Hapus di tengah O(n) Harus geser elemen setelahnya
const arr = [10, 20, 30, 40, 50];

// Akses — O(1)
arr[2]; // 30

// Sisip di akhir — O(1)
arr.push(60); // [10, 20, 30, 40, 50, 60]

// Sisip di tengah — O(n)
arr.splice(2, 0, 25); // [10, 20, 25, 30, 40, 50, 60]

// Hapus di akhir — O(1)
arr.pop(); // [10, 20, 25, 30, 40, 50]

// Hapus di tengah — O(n)
arr.splice(1, 1); // [10, 25, 30, 40, 50]

Kapan pakai Array?

🎭 Analogi sehari-hari: Array = loker olahraga di sekolah. Loker nomor 7? Langsung ke loker nomor 7 (O(1) — instan). Tapi mau nyisip loker baru di antara nomor 3 dan 4? Semua loker dari 4 ke atas harus geser nomor (O(n) — repot). Karena itu push ke ujung cepat, sisip di tengah lambat.

💡 Mengapa akses by index O(1)? Memori komputer = jajaran kotak berurutan. arr[5] = alamat_awal + (5 × ukuran_elemen). Cuma matematika sederhana, langsung ketemu, gak peduli array berisi 10 atau 1 juta elemen.

⚠️ Jebakan umum:

🧪 Tebakan cepat: Loop 1 juta arr.unshift(x) vs 1 juta arr.push(x) — beda berapa kali lipat? Push cuma O(n) total. Unshift O(n²) total. Beda jutaan kali.

TL;DR: Array cepat di ujung & akses by index. Sisip/hapus di tengah lambat. Pakai untuk data berurutan dengan operasi di ujung.

Yang akan kamu pelajari