Header Ads

  • Breaking News

    Memahami Konsep Manipulasi Elemen Array Dalam PHP

    Sepriano, M.Kom - 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
    • 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" ], ];

    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

    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']

    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 adalah false.

    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:

    1. array: sebuah array yang menjadi target sasaran
    2. 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]

    Tidak ada komentar

    Post Bottom Ad