---
title: 'Array'
description: "Operator untuk transformasi, penyaringan, dan agregasi data array."
navigation:
icon: 'i-ph-code-block'
seo:
title: 'Array'
description: "Operator untuk transformasi, penyaringan, dan agregasi data array."
---
## Tinjauan
Operator array memungkinkan Anda memanipulasi koleksi data secara fungsional. Anda dapat melakukan transformasi, penyaringan, dan rangkuman data tanpa perlu menulis perulangan manual (imperative loops). Ini sangat membantu dalam mengolah set data yang besar atau kompleks secara efisien.
### Kasus Penggunaan Umum
- **Transformasi**: Mengubah setiap elemen dalam array menjadi bentuk baru dengan `map`.
- **Penyaringan**: Mengambil elemen yang hanya memenuhi kriteria tertentu dengan `filter`.
- **Agregasi**: Menghitung total, rata-rata, atau nilai tunggal dari sebuah array dengan `reduce`.
- **Validasi**: Memeriksa apakah semua, sebagian, atau tidak ada elemen yang memenuhi syarat dengan `all`, `some`, dan `none`.
- **Penggabungan**: Menyatukan beberapa array menjadi satu dengan `merge`.
### Pola Elemen Saat Ini
Saat menggunakan operator yang melakukan iterasi (seperti `map` atau `filter`), Anda dapat merujuk ke elemen yang sedang diproses menggunakan variabel kosong: `{"var": ""}`.
Khusus untuk `reduce`, Anda dapat menggunakan variabel khusus yaitu `accumulator` (hasil akumulasi sementara) dan `current` (elemen saat ini).
---
## `map` - Transformasi Array
Mengaplikasikan logika tertentu ke setiap elemen dalam array dan mengembalikan array baru berisi hasil transformasinya.
### Sintaks
```json
{"map": [array, logic]}
```
### Contoh
```json
// Melipatgandakan nilai dalam array
{"map": [[1, 2, 3], {"*": [{"var": ""}, 2]}]}
// → [2, 4, 6]
// Mengambil nama dari array objek user
{"map": [{"var": "users"}, {"var": "name"}]}
```
---
## `filter` - Penyaringan Array
Hanya menyisakan elemen yang memenuhi kondisi logika tertentu.
### Sintaks
```json
{"filter": [array, condition]}
```
### Contoh
```json
// Mengambil hanya angka genap
{"filter": [[1, 2, 3, 4], {"==": [{"%": [{"var": ""}, 2]}, 0]}]}
// → [2, 4]
```
---
## `reduce` - Akumulasi Array
Mengecilkan array menjadi satu nilai tunggal berdasarkan logika akumulasi.
### Sintaks
```json
{"reduce": [array, logic, initial_value]}
```
### Contoh
```json
// Menjumlahkan semua angka dalam array
{"reduce": [[1, 2, 3], {"+": [{"var": "accumulator"}, {"var": "current"}]}, 0]}
// → 6
```
---
## Operator Validasi (`all`, `some`, `none`)
- **`all`**: Mengembalikan `true` jika **semua** elemen memenuhi kondisi.
- **`some`**: Mengembalikan `true` jika **setidaknya satu** elemen memenuhi kondisi.
- **`none`**: Mengembalikan `true` jika **tidak ada satu pun** elemen yang memenuhi kondisi.
### Contoh
```json
{"all": [[2, 4, 6], {"==": [{"%": [{"var": ""}, 2]}, 0]}]} // → true
{"some": [[1, 2, 3], {">": [{"var": ""}, 2]}]} // → true
```
---
## `merge` - Penggabungan Array
Menggabungkan beberapa array menjadi satu array yang rata (flat).
### Contoh
```json
{"merge": [[1, 2], [3, 4]]} // → [1, 2, 3, 4]
```
---
## `in` - Cek Keberadaan
Memeriksa apakah suatu nilai ada di dalam array atau string.
### Contoh
```json
{"in": [2, [1, 2, 3]]} // → true
{"in": ["halo", "halo dunia"]} // → true
```
---
## Praktik Terbaik
1. **Gunakan `map` dan `filter` secara berantai** untuk pengolahan data yang bersih dan deklaratif.
2. **Selalu berikan nilai awal (initial value) pada `reduce`** untuk menghindari hasil yang tidak terduga pada array kosong.
3. **Manfaatkan `in`** untuk validasi sederhana daripada melakukan perulangan manual yang kompleks.