Selamat datang kembali di lanjutan tutorial belajar PHP Dasar. Setelah kita belajar tentang cara memanipulasi string dalam PHP, pada pertemuan kali ini kita akan membahas tentang: bekerja dengan Array di PHP.
Apa itu Array?
Kita pernah mempelajari sekilas tentang array pada pembahasan tipe data dan variabel.
Ia adalah suatu tipe data yang bersifat spesial dalam PHP, ia bisa menyimpan himpunan beberapa nilai dalam satu variabel saja.
Misalkan kita memiliki 3 buah variabel yang menyimpan data nama mahasiswa.
Dari pada kita membuat satu variabel untuk tiap nama mahasiswa seperti ini:
<?php
$mahasiswa1 = "Nurul Huda";
$mahasiswa2 = "Wahid Abdullah";
$mahasiswa3 = "Renza Ilhami";
Lebih baik kita simpan ketiga variabel di atas dalam satu array saja seperti berikut:
<?php
$listMahasiswa = [
"Nurul Huda",
"Wahid Abdullah",
"Renza Ilhami"
];
Untuk menampilkan array, kita bisa menggunakan indeks. Indeks pertama dimulai dari 0 dan seterusnya.
<?php
echo $listMahasiswa[2] . "<br>"; # Renza Ilhami
echo $listMahasiswa[0] . "<br>"; # Nurul Huda
echo $listMahasiswa[1] . "<br>"; # Wahid Abdullah
Atau kita juga bisa menggunakan perulangan semisal foreach atau for untuk menampilkan array tersebut.
<?php
foreach ($listMahasiswa as $mahasiswa) {
echo $mahasiswa . "<br>";
}
Array Terindeks
Di dalam PHP, ada dua jenis array: array terindeks dan array asosiatif. Array terindeks adalah array yang setiap itemnya terbedakan dengan indeks tertentu. Indeks tersebut bertipe data integer
dan selalu dimulai dari angka 0.
Array $listMahasiswa
yang kita buat dalam contoh di atas adalah termasuk jenis array terindeks.
Array jenis ini ada di hampir semua bahasa pemrograman, kalau pun tidak ada, maka itu hanya perbedaan nama saja, akan tetapi fungsi dan bentuknya sama saja.
Array Asosiatif
Jenis kedua dari array dalam bahasa pemrograman PHP adalah: array asosiatif.
Ia adalah suatu array di mana key atau kuncinya bukan berupa indeks integer
yang dimulai dari 0, akan tetapi yang menjadi key-nya adalah suatu teks bertipe data string
. Oleh karena itu ia dinamakan array asosiatif.
Berikut ini adalah contoh dari array asosiatif:
<?php
$mahasiswa = [
'nama' => 'Nurul Huda',
'domisili' => 'Surabaya',
'jenis_kelamin' => 'Laki-laki'
];
Untuk menampilkan item yang berada di dalam array asosiatif, kita bisa melakukannya dengan memanggil key-nya. Hal ini sama persis dengan array terindeks, hanya saja jika pada array terindeks key-nya bertipe data integer
, maka pada array asosisatif, key-nya bertipe data string
.
Perhatikan kode program berikut:
<?php
echo "Nama : {$mahasiswa['nama']}<br>";
echo "Domisili : {$mahasiswa['domisili']}<br>";
echo "Jenis Kelamin : {$mahasiswa['jenis_kelamin']}<br>";
Array Multidimensi
Array multidimensi adalah suatu istilah untuk sebuah array, yang mana ia memiliki item berupa array yang lain. Contohnya seperti ini:
<?php
$histogram = [
[1, 2, 3, 4, 5],
[6, 7, 3, 9, 2],
[3, 5, 1, 0, 5],
[5, 8, 1, 3, 1]
];
Pada contoh di atas, indeks ke-0 dari array $histogram
adalah suatu array. Begitu juga indeks ke-1, ke-2, dan ke-3.
Misal kita ingin menampilkan anga 0
pada array tersebut, maka kita harus memanggil array terluarnya dahulu, baru indeks dari array yang didalam.
Perhatikan kode program berikut:
<?php
echo $histogram[2][3]; // 0
Array multidimensi tidak mengharuskan setiap item dari array adalah suatu array dengan panjang yang sama, bahkan tidak harus semua item dari suatu array bertipe data sama. Hal itu karena array dalam PHP bisa memiliki himpunan nilai dari tipe data yang berbeda-beda.
Perhatikan contoh berikut:
<?php
$arrayMultidimensi = [
"Nurul Huda",
"Lendis Fabri",
[1, 2, 3, 4, 5],
[3.4, 10.93],
true,
false
];
Pada variabel $arrayMultidimensi
di atas, kita saksikan bahwa item dari array tersebut berbeda-beda dari segi tipe data. Ada yang bertipe data string
, ada yang bertipe data boolean
, dan ada yang bertipe data array
. Array dalam array seperti inilah yang dimaksud dengan array multidimensi.
Saya akan beri contoh yang kemungkinan besar akan anda dapati dalam kasus real: yaitu menu bertingkat tak terbatas.
Misalkan saya memiliki menu sebagai berikut:
- Beranda
- Berita
- Olahraga
- Bola
- Bulu Tangkis
- Politik
- Manca Negara
- Olahraga
- Tentang
Saya bisa mendefinisikannya dalam suatu array multidimensi seperti berikut:
<?php
$menu = [
[
"nama" => "Beranda"
],
[
"nama" => "Berita",
"subMenu" => [
[
"nama" => "Olahraga",
"subMenu" => [
[
"nama" => "Bola"
],
[
"nama" => "Bulu Tangkis"
]
]
],
[
"nama" => "Politik"
],
[
"nama" => "Manca Negara"
]
]
],
[
"nama" => "Tentang"
],
[
"nama" => "Kontak"
],
];
Sudah punya gambaran?
Baik, sekarang tinggal satu pertanyaan: bagaimana cara menampilkan variabel $menu
di atas?
Jawabannya adalah menggunakan fungsi rekursif, untuk menampilkan variabel $menu
di atas bisa anda lihat pada pembahasan Fungsi Rekursif: Menampilkan Menu Bertingkat.
Menambahkan Item ke Dalam Array
Dalam banyak kasus, kita butuh menambahkan suatu nilai ke dalam array yang sebelumnya sudah pernah kita buat.
Kasus ini bisa kita selesaikan dengan mudah sekali menggunakan 2 cara:
Menggunakan fungsi array_push
Cara yang pertama adalah dengan menggunakan fungsi array_push()
bawaan PHP. Fungsi ini menerima dua parameter: parameter pertama untuk array target, sedangkan parameter kedua adalah nilai yang akan dimasukkan ke dalam array.
Perhatikan contoh berikut:
<?php
$buah = ['Apel', 'Jeruk'];
array_push($buah, 'Nanas');
# ['Apel', 'Jeruk', 'Nanas']
Oiya, jika anda ingin menambahkan item baru di urutan pertama array, anda bisa menggunakan fungsi array_unshift
sebagai ganti dari array_push
.
Menggunakan sintaks kurung siku
Cara yang kedua adalah dengan menggunakan tanda kurung siku ([]
) ketika menambahkan satu nilai baru ke dalam array.
Perhatikan contoh berikut:
<?php
$buah = ['Apel', 'Jeruk'];
# tambahkan nilai baru ke dalam array
$buah[] = 'Nanas';
$buah[] = 'Anggur'
# ['Apel', 'Jeruk', 'Nanas', 'Anggur']
Menghapus Item dari Array
Terkadang kita butuh untuk menghapus suatu nilai atau suatu item dari variabel array. Kita bisa melakukan hal tersebut dengan fungsi bawaan array yang bernama array_pop
. Fungsi array_pop
akan menghapus item terakhir dari suatu array.
Dari segi parameter, ia hanya menerima satu parameter saja yaitu array target yang akan dihapus item terakhirnya.
Contoh:
<?php
$buah = ['Apel', 'Jeruk', 'Nanas', 'Anggur'];
array_pop($buah);
var_dump($buah); # ['Apel', 'Jeruk', 'Nanas']
echo "<br>";
# ia juga mengembalikan suatu nilai
echo array_pop($buah) . '<br>'; # Nanas
var_dump($buah); # ['Apel', 'Jeruk']
Menggabungkan dua array atau lebih
Misalkan kita memiliki 2 buah array atau lebih. Lalu kita ingin menggabungkannya menjadi 1, kita bisa menggunakan fungsi bawaah PHP bernama array_merge()
.
Perhatikan contoh berikut:
<?php
$warnaTerang = ['Kuning', 'Hijau', 'Pink'];
$warnaGelap = ['Hitam', 'Abu-abu', 'Cokelat'];
# gabungkan dua array tersebut menjadi 1
$gabunganWarna = array_merge($warnaTerang, $warnaGelap);
# fungsi array_merge bisa menerima lebih dari 2 array
$semuaWarna = array_merge(
$warnaTerang,
$warnaGelap,
['Magenta', 'Cyan', 'Hijau Kelabu']
);
Array Unpacking
Array unpacking adalah fitur baru pada versi PHP 7.4. Ia memiliki fungsi yang sama dengan array_merge
yaitu untuk menggabungkan suatu array dalam array lainnya.
Hanya saja kita bisa menempatkan hasil gabungan tersebut pada indeks tertentu dalam array yang lain.
Untuk mengekstrak atau unpacking array, kita bisa menggunakan sintaks ...
lalu diikuti oleh nama array-nya setelah itu.
Perhatikan contoh berikut:
<?php
$listBuahLokal = ['mangga', 'rambutan'];
$listBuah = ['kurma', 'anggur', ...$listBuahLokal, 'kismis'];
// ['kurma', 'anggur', 'mangga', 'rambutan', 'kismis'];
Jika kita perhatikan, sintaks di atas sangat mirip dengan yang kita temukan pada bahasa pemrograman javascript.
Konversi Array Asosiatif ke Array Terindeks
Dalam kasus-kasus tertentu, kita terkadang butuh untuk mengubah array asosiatif ke dalam bentuk array terindeks.
Kita bisa melakukannya dengan perintah array_values()
.
Perhatikan contoh berikut:
<?php
# asosiatif array
$listBuah = [
'0' => 'Anggur',
'1' => 'Jeruk',
'2' => 'Naga',
'3' => 'Duku'
];
var_dump(array_values($listBuah));
// ['Anggur', 'Jeruk', 'Naga', 'Duku']
Fungsi Explode
Kita bisa memecah-mecah string lalu mengubahnya ke dalam array dengan fungsi explode
.
Fungsi explode
menerima 2 paramter:
- delimiter: yaitu sebuah string yang dijadikan pemisah
- string sasaran: yaitu sasaran string yang akan kita pecah menjadi suatu array
Misalkan kita punya string sebagai berikut:
<?php
$mahasiswa = "Andi Budi Deni Edwin Fajar Hendra";
Kita saksikan pada string $mahasiswa
setiap kata merepresentasikan satu nama. Sehingga kita bisa dengan mudah untuk memecah string tersebut dengan menggunakan pemisah karakter spasi (
).
Perhatikan kode program berikut:
<?php
var_dump(explode(" ", $mahasiswa));
// ['Andi', 'Budi', 'Deni', 'Edwin', 'Fajar', 'Hendra']
Kita juga bisa menggunakan delimiter yang tersusun dari lebih satu karakter, seperti contoh berikut:
<?php
$mahasiswa = "Nurul Huda, Lendis Fabri, Wahid Abdulloh";
# delimiter terdiri dari 2 karakter yaitu tanda koma dan spasi
var_dump(explode(", ", $mahasiswa));
// ['Nurul Huda', 'Lendis Fabri', 'Wahid Abdulloh']
Fungsi Implode
Fungsi implode
adalah kebalikan dari fungsi explode
. Tugasnya adalah untuk mengubah array menjadi suatu string tertentu.
Fungsi implode
menerima 2 buah parameter:
- glue: artinya perekat. Ia adalah string yang akan menjadi perekat antar item pada array
- array: array sasaran yang akan diubah menjadi string
Perhatikan contoh berikut:
<?php
$mahasiswa = ['Huda', 'Lendis', 'Elmo'];
echo implode(" ", $mahasiswa) . "<br>"; // Huda Lendis Elmo
echo implode("*", $mahasiswa) . "<br>"; // Huda*Lendis*Elmo
echo implode(",", $mahasiswa) . "<br>"; // Huda,Lendis,Elmo
echo implode(", ", $mahasiswa) . "<br>"; // Huda, Lendis, Elmo
echo implode(" wkwk ", $mahasiswa) . "<br>"; // Huda wkwk Lendis wkwk Elmo
Pencarian Array
Untuk mencari suatu data dari array, kita bisa menggunakan fungsi bawaan PHP yang bernama array_search()
.
Ia menerima 2 parameter wajib dan 1 parameter opsional:
- search: nilai
string
yang berisi keyword pencarian - array: data
array
target - strict: mode pencarian. Jika
true
maka mode strict atau mode ketat akan diaktifkan. Dan jika parameter ini tidak didefinisikan, maka nilai default-nya adalahfalse
.
Fungsi array_search()
mengembalikan nilai false
jika item yang dicari tidak ditemukan. Dan ia akan mengembalikan nilai key jika item tersebut ditemukan. Dan jika item yang ditemukan lebih dari 1, dia akan mengembalikan item pertama.
Contoh:
<?php
$distroLinux = ['Ubuntu', 'Arch Linux', 'Elementary OS'];
var_dump(array_search('Arch Linux', $distroLinux));
// 1
$mahasiswa = [
'nama' => 'Lendis Fabri',
'asal' => 'Lamongan',
'status_pernikahan' => 'Belum menikah',
'kewarganegaraan' => 'Indonesia'
];
var_dump(array_search('Lamongan', $mahasiswa));
// 'asal'
Fungsi array_search()
bisa bekerja sama saja apakah di array terindeks mau pun di array asosiatif. Pada contoh di atas variabel $distroLinux
merupakan array terindeks, sedangkan variabel $mahasiswa
mereupakan array asosiatif.
Filter Array
Bayangkan kita memiliki suatu array. Lalu dari sekian banyak item pada array tersebut, kita hanya ingin mendapatkan beberapa item dengan kondisi tertentu.
Kita bisa melakukan hal tersebut dengan memanggil fungsi bawaan PHP bernama array_filter()
.
Fungsi ini menerima 2 parameter:
- array: sebuah array yang menjadi target sasaran
- callback: sebuah fungsi anonim yang mengembalikan nilai
boolean
Contoh
Misalkan kita memiliki array yang menyimpan nilai ujian setiap siswa. Lalu:
- kita ingin mengambil siapa saja yang nilainya di atas 80
- dan siapa saja yang nilainya 30 kebawah.
Maka penyelesaian bisa dengan cara berikut:
<?php
$nilaiSiswa = [
['nama' => 'Andi', 'nilai' => 80],
['nama' => 'Budi', 'nilai' => 40],
['nama' => 'Candra', 'nilai' => 20],
['nama' => 'Denis', 'nilai' => 70],
['nama' => 'Fabrian', 'nilai' => 100],
['nama' => 'Gunawan', 'nilai' => 90],
['nama' => 'Hendra', 'nilai' => 35],
['nama' => 'Ian', 'nilai' => 75],
];
# nilai yang kurang dari atau sama dengan 30
$nilai30Kebawah = array_filter($nilaiSiswa, function ($item) {
return $item['nilai'] <= 30;
});
# nilai yang lebih dari 80
$nilaiYangLebihDari80 = array_filter($nilaiSiswa, function ($item) {
return $item['nilai'] <= 30;
});
Silakan tampilkan kedua array di atas, array $nilai30Kebawah
dan juga $nilaiYangLebihDari80
untuk memeriksa apakah program kita sudah sesuai dengan yang diharapkan.
Anda juga bisa menggunakan fungsi panah untuk mempersingkat parameter ke-2:
<?php
# kita juga bisa menggunakan fungsi panah
$nilaiDiatas30Dan80Kebawah = array_filter(
$nilaiSiswa,
fn($item) => $item['nilai'] > 30 and $item['nilai'] <= 80
);
Pemetaan Array
Pemetaan array digunakan jika kita ingin memodifikasi semua item pada suatu array. Untuk melakukan hal tersebut kita bisa menggunakan fungsi bawaan PHP bernama array_map()
.
Untuk parameternya sama seperti fungsi array_filter()
. Ia hanya menerima 2 parameter, yaitu:
- array: sebuah array yang menjadi target sasaran
- callback: sebuah fungsi anonim yang mengembalikan nilai
boolean
Contoh
Misalkan anda mempunyai suatu array yang berisi sekumpulan nilai integer. Lalu anda ingin mengkalikan semua item array tersebut dengan angka 100
.
Maka anda bisa melakukan hal tersebut sebagaimana contoh di bawah ini:
<?php
$array = [4, 3, 1, 5, 6];
$ratusan = array_map($array, function ($item) {
return $item * 100;
});
// [400, 300, 100, 500, 600]
Pembahasan Selanjutnya
Kita telah mempelajari banyak hal sejauh ini. Seri tutorial belajar php dasar sudah berada di ujung dan akan segera berakhir.
Masih ada sedikit pembahasan lagi, insyallah beberapa kita akan mengambil beberapa latihan tentang fungsi matematika pada PHP, dan juga tentang fibonacci.
Setelah seri tutorial ini selesai, insyaallah kita akan mulai lagi seri belajar php selanjutnya: yaitu php tingkat menengah, lalu PHP untuk pemrograman web dinamis, pemrograman OOP pada PHP, dan MVC pada PHP.
Terima kasih banyak.
Jika anda merasa tutorial ini bermanfaat, silakan share ke kawan-kawan anda di sosial media!