arrayfungsiMenengah3 mnt baca

Fungsi Array Dasar

Fungsi array yang paling sering dipakai: count, in_array, array_push, array_merge, array_keys.

Kenapa Fungsi Array Ada?

Array tanpa fungsi bawaan seperti lemari arsip tanpa alat bantu: mau menghitung isi harus hitung manual satu per satu. PHP menyediakan puluhan fungsi array siap pakai sehingga kamu tidak perlu menulis loop untuk operasi umum. Prinsipnya: kalau operasinya umum (hitung, gabung, cek isi), hampir pasti sudah ada fungsinya.

php
<?php
// Contoh 1: fungsi yang paling sering dipakai sehari-hari
$buah = ["apel", "mangga", "jeruk", "apel"];

echo count($buah);              // 4: jumlah isi
var_dump(in_array("mangga", $buah));  // bool(true): apakah ada?
var_dump(array_key_exists("nama", ["nama" => "Sinta"]));  // bool(true): apakah kunci ada?

$angka = [3, 1, 4, 1, 5];
echo array_sum($angka);         // 14: jumlahkan semua
echo max($angka);               // 5: nilai terbesar
echo min($angka);               // 1: nilai terkecil

count(), in_array(), array_sum(), max(), min() adalah lima serangkai yang muncul di hampir semua program. Hafalkan mereka seperti menghafal perkalian.

php
<?php
// Contoh 2: menambah, menghapus, dan menggabungkan
$antri = ["Andi", "Budi"];
array_push($antri, "Citra");    // tambah ke akhir: ["Andi", "Budi", "Citra"]
$terakhir = array_pop($antri);  // ambil dari akhir: "Citra", sisa ["Andi", "Budi"]
$pertama = array_shift($antri); // ambil dari awal: "Andi", sisa ["Budi"]

$a = ["apel", "mangga"];
$b = ["jeruk"];
$semua = array_merge($a, $b);   // ["apel", "mangga", "jeruk"]: gabung dua array

Perhatikan pola nama: array_push/array_pop bekerja di akhir array (seperti tumpukan piring), array_shift di awal (seperti antrean). array_merge menggabungkan dua array menjadi satu.

Jebakan yang Sering Terjadi

Fungsi yang mengubah langsung vs mengembalikan baru. array_push($antri, "Citra") mengubah $antri secara langsung (tidak perlu assignment). Sebaliknya array_merge($a, $b) tidak mengubah $a atau $b, ia mengembalikan array baru. Kalau kamu menulis array_merge($a, $b); tanpa menampung hasilnya, gabungannya hilang begitu saja. Aturan: cek dokumentasi apakah fungsi "memodifikasi" atau "mengembalikan".

in_array longgar secara default. in_array(0, ["apel", "mangga"]) menghasilkan true karena juggling (0 == "apel"). Untuk pencarian aman, pakai mode ketat: in_array("mangga", $buah, true).

Kombinasi Mematikan

Fungsi array bersinar saat dirangkai:

php
<?php
$nilai = [85, 0, 92, 78, 0, 88];

// Rata-rata tanpa menghitung nol (data kosong)
$valid = array_filter($nilai, fn($n) => $n > 0);
$rata = array_sum($valid) / count($valid);
echo "Rata-rata: $rata\n";   // 85.75

// Daftar unik yang diurut
$buah = ["mangga", "apel", "mangga", "jeruk", "apel"];
$unik = array_values(array_unique($buah));
sort($unik);
print_r($unik);   // ["apel", "jeruk", "mangga"]

// Cek kelengkapan: apakah semua syarat terpenuhi?
$syarat = ["nama" => "Sinta", "email" => "", "umur" => 17];
$lengkap = !in_array("", array_values($syarat), true);
var_dump($lengkap);   // false: email kosong

Pola "filter -> agregat" (contoh pertama) adalah pipeline data mini yang muncul di laporan, dashboard, dan rekap nilai.

Catatan teknis: Hampir semua fungsi array diawali array_, jadi mudah ditebak. Butuh sesuatu? Coba tebak namanya dulu (array_reverse, array_unique, array_slice), lalu cek di php.net. Sembilan dari sepuluh tebakanmu benar.

Tantangan

Cek stok barang

Array $stok = ["beras" => 10, "minyak" => 0, "gula" => 5]. Tampilkan jumlah jenis barang dengan count(), lalu dengan in_array/array_key_exists cek apakah "kopi" ada di stok. Tampilkan barang yang stoknya 0.