Back to blog
Fundamental

Perbedaan Fungsi Array splice() vs slice() di JavaScript

Dua fungsi array ini namanya mirip, tapi yang satu mengamankan datamu sementara yang satunya lagi merusaknya secara permanen. Jangan salah pakai!

super admin·19 Juni 2026·2 min read
Perbedaan Fungsi Array splice() vs slice() di JavaScript
Article Content

Jebakan Nama yang Membingungkan

Dari puluhan metode Array di JavaScript, ada dua nama yang paling sering membuat *developer* pemula kebingungan (dan sering menjadi soal menjebak saat tes *Interview Kerja*): yaitu slice() dan splice().

Kesalahan memilih di antara keduanya akan memicu *bug* yang sangat susah dilacak, karena yang satu sifatnya Aman (Non-Destructive), sedangkan yang satunya lagi Merusak data asli (Destructive/Mutating).

1. slice() - Pisau Potong yang Aman

Kata slice berarti "mengiris". Fungsi ini mengambil Array milikmu, lalu membuat *fotokopi* baru dari potongan yang kamu inginkan. Array aslinya tidak disentuh atau diubah sama sekali!

  • Rumus: array.slice(indexMulai, indexAkhirSebelum)
  • Contoh Penggunaan:
const buah = ['Apel', 'Jeruk', 'Mangga', 'Pisang'];
// Ambil mulai dari index 1 (Jeruk) sampai sebelum index 3 (Pisang)
const potongan = buah.slice(1, 3);

console.log(potongan); // Hasil: ['Jeruk', 'Mangga']
console.log(buah);     // ASLI TETAP UTUH: ['Apel', 'Jeruk', 'Mangga', 'Pisang']

Catatan React: Selalu gunakan slice() di React.js, karena State di React dilarang keras untuk dimutasi (diubah langsung) secara destruktif.

2. splice() - Pisau Bedah yang Merusak

Kata splice berarti "menyambung/membedah". Fungsi ini adalah pisau bedah nyata. Ia akan merobek Array aslimu, mengeluarkan isinya, dan bahkan bisa memasukkan data baru di tengah-tengah sobekan tersebut.

  • Rumus: array.splice(indexMulai, berapaBanyakDihapus, itemBaru1, itemBaru2...)
  • Contoh Penggunaan:
const mobil = ['Honda', 'Toyota', 'Suzuki', 'Mazda'];
// Mulai dari index 1 (Toyota), hapus 2 buah item, lalu sisipkan 'BMW'
const yangDihapus = mobil.splice(1, 2, 'BMW');

console.log(yangDihapus); // Hasil: ['Toyota', 'Suzuki']
console.log(mobil);       // ARRAY ASLI HANCUR/BERUBAH: ['Honda', 'BMW', 'Mazda']

Aturan Cara Mengingatnya

Agar tidak tertukar lagi saat ujian Live Coding, ingatlah trik ini:

  • sLice (ada huruf L) = Leave it alone (Biarkan saja / Aslinya tetap utuh).
  • sPice (ada huruf P) = Permanently changed (Data aslinya berubah permanen).

Mau langsung pakai template?

Jelajahi template gratis dan premium di TampilKit untuk mempercepat proses development project kamu.

Browse Templates