Array: shift & unshift
Tujuan Pembelajaran
Section titled “Tujuan Pembelajaran”Setelah halaman ini, kamu dapat menambahkan elemen ke depan array dengan unshift() dan menghapus elemen pertama dengan shift().
Pendahuluan
Section titled “Pendahuluan”Jika push dan pop bekerja di bagian akhir (belakang) array, shift dan unshift bekerja di bagian awal (depan) array.
Penjelasan Materi
Section titled “Penjelasan Materi”unshift() — Menambah ke Depan
Section titled “unshift() — Menambah ke Depan”Method unshift() menambahkan satu atau lebih elemen baru ke bagian awal array. Ini menggeser semua elemen lama ke indeks yang lebih besar:
const angka = [2, 3]angka.unshift(1) // [1, 2, 3] (elemen 2 dan 3 bergeser)shift() — Menghapus dari Depan
Section titled “shift() — Menghapus dari Depan”Method shift() menghapus elemen pertama dari array dan mengembalikan elemen tersebut. Ini menggeser semua elemen tersisa ke indeks yang lebih kecil:
const angka = [1, 2, 3]const pertama = angka.shift() // pertama = 1, angka = [2, 3]Analogi Kehidupan Sehari-hari
Section titled “Analogi Kehidupan Sehari-hari”Antrean Tiket Bioskop
Section titled “Antrean Tiket Bioskop”Bayangkan antrean di loket tiket bioskop:
shift()seperti melayani orang pertama di antrean. Orang tersebut keluar dari antrean, dan semua orang di belakangnya maju satu langkah.unshift()seperti orang yang menyerobot antrean langsung ke paling depan (indeks 0). Semua orang di belakangnya terpaksa bergeser mundur.
Serobot depan (unshift) ──► [ Antrean ] ──► Layani depan (shift)Visual Illustration
Section titled “Visual Illustration”Awal: [2, 3]unshift(1) ──► [1, 2, 3] (indeks 2 & 3 digeser ke kanan)shift() ──► [2, 3] (indeks 1 dihapus, 2 & 3 maju ke kiri)Mari Mencoba
Section titled “Mari Mencoba”Buat src/bab5/shift-unshift.ts:
const antreanSiswa: string[] = ["Budi", "Citra"]console.log("Awal :", antreanSiswa)
// Menambah ke depan antreanantreanSiswa.unshift("Andi")console.log("unshift(1):", antreanSiswa)
// Menghapus dari depan antreanconst dilayani = antreanSiswa.shift()console.log("\ndilayani :", dilayani)console.log("Setelah shift:", antreanSiswa)Jalankan:
tsx src/bab5/shift-unshift.tsOutput
Section titled “Output”Awal : [ 'Budi', 'Citra' ]unshift(1): [ 'Andi', 'Budi', 'Citra' ]
dilayani : AndiSetelah shift: [ 'Budi', 'Citra' ]Perbandingan Kinerja (Performance Note)
Section titled “Perbandingan Kinerja (Performance Note)”Kesalahan yang Sering Terjadi
Section titled “Kesalahan yang Sering Terjadi”const data = [2, 3]const hasil = data.unshift(1)console.log(hasil) // Output: 3 (panjang array baru, bukan array-nya!)Sama seperti push(), unshift() mengembalikan panjang array yang baru, bukan array itu sendiri.
Latihan
Section titled “Latihan”Buat array berisi nama 3 tugas sekolah. Masukkan tugas baru yang mendesak ke paling depan menggunakan unshift(). Hapus tugas pertama menggunakan shift() setelah selesai dikerjakan, dan tampilkan hasilnya.
Ringkasan
Section titled “Ringkasan”unshift()menambah satu/lebih elemen di depan array.shift()menghapus satu elemen pertama dan mengembalikannya.- Kedua method ini memodifikasi (mengubah) array asli.
- Keduanya menggeser nomor indeks seluruh elemen tersisa.