Tutorial Lengkap PHP Array: Manipulasi Data, JSON, dan Studi Kasus Praktis

PHP Array adalah salah satu struktur data paling penting dalam pemrograman PHP yang memungkinkan Anda menyimpan banyak nilai dalam satu variabel. Artikel ini akan membahas secara mendalam tentang array di PHP, mulai dari konsep dasar hingga penggunaan fungsi-fungsi array yang kompleks.

Dalam panduan ini, Anda akan mempelajari cara membuat, memanipulasi, dan mengoptimalkan penggunaan array dalam aplikasi web PHP Anda.

1. Pengertian Array di PHP

Array adalah sebuah wadah atau kontainer yang dapat menampung beberapa nilai sekaligus dalam satu variabel. Berbeda dengan variabel biasa yang hanya bisa menyimpan satu nilai, array memungkinkan Anda menyimpan data dalam jumlah besar secara terorganisir.

Karakteristik Array di PHP:

  • Tidak Terbatas: Array di PHP dapat menampung jumlah elemen yang tidak terbatas (sesuai kapasitas memori)
  • Tipe Data Campuran: Array PHP dapat menyimpan berbagai tipe data dalam satu array (mixed type)
  • Fungsi Manipulasi: PHP menyediakan banyak fungsi built-in untuk memanipulasi data array
  • Fleksibel: Array dapat dimodifikasi, ditambah, atau dikurangi elemennya secara dinamis

2. Indexed Array (Array Berindeks)

Indexed array adalah jenis array yang menggunakan indeks numerik untuk mengakses elemen-elemennya. Indeks dimulai dari 0 untuk elemen pertama.

2.1. Metode Pembuatan Array

Metode 1: Menggunakan Fungsi array()

<?php // Membuat array menggunakan fungsi array() $cars = array("Mitsubishi", "Honda", "Toyota", "Nissan"); echo("<ol>"); echo("<li>" . $cars[0] . "</li>"); echo("<li>" . $cars[1] . "</li>"); echo("<li>" . $cars[2] . "</li>"); echo("<li>" . $cars[3] . "</li>"); echo("</ol>"); ?>
Output:
1. Mitsubishi
2. Honda
3. Toyota
4. Nissan

Metode 2: Menggunakan Tanda Kurung Siku []

<?php // Membuat array menggunakan [] $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; echo("<ol>"); echo("<li>" . $cars[0] . "</li>"); echo("<li>" . $cars[1] . "</li>"); echo("<li>" . $cars[2] . "</li>"); echo("<li>" . $cars[3] . "</li>"); echo("</ol>"); ?>
💡 Tips: Metode menggunakan [] lebih modern dan direkomendasikan karena lebih ringkas dan mudah dibaca. Ini adalah sintaks yang sama dengan bahasa pemrograman lain seperti JavaScript dan Python.

2.2. Mengubah Elemen dalam Array

<?php $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; // Mengubah elemen pada indeks 1 dan 3 $cars[1] = "Datsun"; $cars[3] = "Suzuki"; print_r($cars); ?>
Output:
Array ( [0] => Mitsubishi [1] => Datsun [2] => Toyota [3] => Suzuki )
📝 Catatan: Fungsi print_r() digunakan untuk mencetak informasi yang dapat dibaca manusia tentang suatu variabel. Sangat berguna untuk debugging array.

2.3. Array dengan Tipe Data Campuran

<?php $items = [1, "Honda", 54.87, "20"]; echo("<ol>"); echo("<li>" . $items[0] . "</li>"); // Integer echo("<li>" . $items[1] . "</li>"); // String echo("<li>" . $items[2] . "</li>"); // Float echo("<li>" . $items[3] . "</li>"); // String echo("</ol>"); ?>
⚠️ Peringatan: Meskipun PHP memungkinkan array dengan tipe data campuran, hindari praktik ini karena dapat menyebabkan kebingungan dan bug yang sulit dilacak. Sebaiknya gunakan satu tipe data yang konsisten dalam satu array.

3. Perulangan pada Array

3.1. Menggunakan For Loop

<?php $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; echo("<ol>"); for ($i = 0; $i < count($cars); $i++) { echo("<li>" . $cars[$i] . "</li>"); } echo("</ol>"); ?>

Optimasi For Loop

Kode di atas memanggil fungsi count() pada setiap iterasi, yang tidak efisien. Berikut adalah versi yang dioptimalkan:

<?php $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; $total_cars = count($cars); // Hitung sekali saja echo("<ol>"); for ($i = 0; $i < $total_cars; $i++) { echo("<li>" . $cars[$i] . "</li>"); } echo("</ol>"); ?>
💡 Tips Optimasi: Simpan hasil count() dalam variabel terpisah untuk menghindari perhitungan berulang. Ini meningkatkan performa, terutama untuk array besar.

3.2. Menggunakan Foreach Loop

Foreach adalah cara paling efisien dan mudah untuk melakukan iterasi pada array:

<?php $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; echo("<ol>"); foreach ($cars as $car) { echo("<li>" . $car . "</li>"); } echo("</ol>"); ?>
📝 Keuntungan Foreach:
  • Lebih ringkas dan mudah dibaca
  • Tidak perlu menghitung panjang array
  • Tidak perlu menggunakan indeks
  • Lebih aman dari kesalahan indeks

3.3. Menambahkan Elemen ke Array

<?php $colors = ["red", "green"]; // Menambahkan satu elemen array_push($colors, "yellow"); // Menambahkan array sebagai elemen array_push($colors, ["pink", "orange"]); print_r($colors); ?>
Output:
Array ( [0] => red [1] => green [2] => yellow [3] => Array ( [0] => pink [1] => orange ) )

4. Associative Array (Array Asosiatif)

Associative array adalah array yang menggunakan key (kunci) bernama sebagai indeks, bukan angka. Ini sangat berguna untuk menyimpan data dengan label yang bermakna.

4.1. Membuat Associative Array

Metode 1: Menggunakan Fungsi array()

<?php $student = array("name" => "Budi", "major" => "CIT", "batch" => 2023); var_dump($student); ?>
Output:
array(3) {
  ["name"]=>
  string(4) "Budi"
  ["major"]=>
  string(3) "CIT"
  ["batch"]=>
  int(2023)
}
📝 Catatan: Fungsi var_dump() menampilkan informasi terstruktur tentang variabel, termasuk tipe data dan panjang nilai. Sangat berguna untuk debugging.

Metode 2: Menggunakan Tanda Kurung Siku []

<?php $student = ["name" => "Budi", "major" => "CIT", "batch" => 2023]; echo("Name: " . $student["name"] . "<br/>"); echo("Major: " . $student["major"] . "<br/>"); echo("Batch: " . $student["batch"] . "<br/>"); ?>
Output:
Name: Budi
Major: CIT
Batch: 2023

4.2. Mengubah Elemen dalam Associative Array

<?php $student = ["name" => "Budi", "major" => "CIT", "batch" => 2023]; // Mengubah nilai $student["major"] = "CIS"; $student["batch"] -= 1; // Mengurangi 1 echo("Name: " . $student["name"] . "<br/>"); echo("Major: " . $student["major"] . "<br/>"); echo("Batch: " . $student["batch"] . "<br/>"); ?>
Output:
Name: Budi
Major: CIS
Batch: 2022

4.3. Perulangan pada Associative Array dengan Foreach

<?php $student = ["name" => "Budi", "major" => "CIT", "batch" => 2023]; foreach ($student as $key => $value) { echo("Key: " . $key . " Value: " . $value . "<br/>"); } ?>
Output:
Key: name Value: Budi
Key: major Value: CIT
Key: batch Value: 2023
💡 Tips: Pada associative array, foreach dengan $key => $value memungkinkan Anda mengakses nama kunci dan nilainya secara bersamaan.

5. Nested Array (Array Bersarang)

Array dapat berisi array lain, menciptakan struktur data multidimensi. Ini sangat berguna untuk menyimpan data kompleks seperti tabel atau data hierarkis.

5.1. Nested Indexed Array

<?php $students = [ ["001", "John Doe", "CIT"], ["002", "Jane Doe", "CIS"], ["003", "Bob Smith", "CIS"], ["004", "Tom Hudson", "CIT"] ]; foreach ($students as $std) { echo("Name: " . $std[1] . " "); echo("ID: " . $std[0] . " "); echo("Major: " . $std[2] . "<br/>"); } ?>
Output:
Name: John Doe ID: 001 Major: CIT
Name: Jane Doe ID: 002 Major: CIS
Name: Bob Smith ID: 003 Major: CIS
Name: Tom Hudson ID: 004 Major: CIT

5.2. Nested Mixed Array (Array Campuran)

<?php $students = [ array("id" => "001", "name" => "John Doe", "major" => "CIT"), array("id" => "002", "name" => "Jane Doe", "major" => "CIS"), array("id" => "003", "name" => "Bob Smith", "major" => "CIS"), array("id" => "004", "name" => "Tom Hudson", "major" => "CIT") ]; foreach ($students as $std) { echo("Name: " . $std["name"] . " "); echo("ID: " . $std["id"] . " "); echo("Major: " . $std["major"] . "<br/>"); } ?>
📝 Catatan: Nested array dengan associative array lebih mudah dibaca karena menggunakan key yang bermakna dibanding indeks numerik.

6. Fungsi-Fungsi Array PHP

PHP menyediakan berbagai fungsi built-in yang sangat berguna untuk memanipulasi array. Berikut adalah fungsi-fungsi yang paling sering digunakan:

6.1. Tabel Fungsi Array

Nama Fungsi Kegunaan
count(array) Menghitung jumlah elemen dalam array
array_push(array, values) Menambahkan satu atau lebih elemen ke akhir array
in_array(item, array) Memeriksa apakah nilai tertentu ada dalam array
sort(array, type) Mengurutkan array secara ascending (indexed array)
rsort(array, type) Mengurutkan array secara descending (indexed array)
asort(array, type) Mengurutkan associative array berdasarkan nilai (ascending)
arsort(array, type) Mengurutkan associative array berdasarkan nilai (descending)
ksort(array, type) Mengurutkan associative array berdasarkan key (ascending)
krsort(array, type) Mengurutkan associative array berdasarkan key (descending)
implode(glue, array) Menggabungkan elemen array menjadi string dengan pemisah
explode(separator, string) Memecah string menjadi array berdasarkan pemisah

6.2. Fungsi range()

Fungsi range() menghasilkan array berisi rentang angka dengan sintaks: range(start, stop, step=1)

<?php // Range dengan step default (1) $number = range(0, 10); print_r($number); ?>
Output:
Array ( [0] => 0 [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 )
<?php // Range dengan step 2 $number = range(0, 10, 2); print_r($number); ?>
Output:
Array ( [0] => 0 [1] => 2 [2] => 4 [3] => 6 [4] => 8 [5] => 10 )

6.3. Fungsi Sorting

sort() dengan SORT_STRING

<?php $numbers = [1, 100, 5, 10, 500, 50]; sort($numbers, SORT_STRING); print_r($numbers); ?>
Output:
Array ( [0] => 1 [1] => 10 [2] => 100 [3] => 5 [4] => 50 [5] => 500 )
📝 Catatan: Dengan SORT_STRING, angka diurutkan secara leksikografis (seperti string), bukan nilai numerik.

sort() dengan SORT_NUMERIC

<?php $numbers = [1, 100, 5, 10, 500, 50]; sort($numbers, SORT_NUMERIC); print_r($numbers); ?>
Output:
Array ( [0] => 1 [1] => 5 [2] => 10 [3] => 50 [4] => 100 [5] => 500 )

asort() - Sorting Associative Array by Value

<?php $student = ["name" => "Budi", "major" => "CIT", "batch" => 2023]; asort($student); print_r($student); ?>
Output:
Array ( [batch] => 2023 [name] => Budi [major] => CIT )

ksort() - Sorting Associative Array by Key

<?php $student = ["name" => "Budi", "major" => "CIT", "batch" => 2023]; ksort($student); print_r($student); ?>
Output:
Array ( [batch] => 2023 [major] => CIT [name] => Budi )

6.4. Fungsi in_array()

<?php $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; if (in_array("Honda", $cars)) { echo("Honda ada dalam array"); } else { echo("Honda tidak ditemukan"); } ?>
Output:
Honda ada dalam array

6.5. Fungsi implode() dan explode()

implode() - Menggabungkan Array menjadi String

<?php $cars = ["Mitsubishi", "Honda", "Toyota", "Nissan"]; $result = implode(", ", $cars); echo($result); ?>
Output:
Mitsubishi, Honda, Toyota, Nissan
📝 Catatan: implode() sangat berguna untuk membuat daftar yang dapat dibaca manusia dari array. Parameter pertama adalah "glue" (perekat) yang menggabungkan elemen.

explode() - Memecah String menjadi Array

<?php $cars = "Mitsubishi, Honda, Toyota, Nissan"; $result = explode(", ", $cars); print_r($result); ?>
Output:
Array ( [0] => Mitsubishi [1] => Honda [2] => Toyota [3] => Nissan )
💡 Penggunaan Praktis: explode() sangat berguna untuk memproses input CSV, memecah URL, atau memproses data yang dipisahkan dengan delimiter tertentu.

7. Array dan JSON di PHP

JSON (JavaScript Object Notation) adalah format pertukaran data yang ringan dan mudah dibaca. PHP menyediakan fungsi untuk mengonversi array ke JSON dan sebaliknya.

7.1. Mengapa JSON Penting?

  • Format standar untuk komunikasi Client-Server
  • Digunakan dalam API dan web services
  • Mudah dibaca oleh manusia dan mesin
  • Didukung oleh hampir semua bahasa pemrograman

7.2. json_encode() - Array ke JSON

<?php $students = array( "name" => "John", "age" => 20, "major" => "CIT" ); echo(json_encode($students)); ?>
Output:
{"name":"John","age":20,"major":"CIT"}

7.3. json_decode() - JSON ke Object

<?php $studentJson = '{"name": "John", "age": 20, "major": "CIT"}'; $student = json_decode($studentJson); echo($student->name . "<br/>"); echo($student->age . "<br/>"); echo($student->major . "<br/>"); ?>
Output:
John
20
CIT
📝 Catatan: Secara default, json_decode() menghasilkan object. Perhatikan penggunaan -> untuk mengakses properti object.

7.4. json_decode() - JSON ke Associative Array

<?php $studentJson = '{"name": "John", "age": 20, "major": "CIT"}'; $student = json_decode($studentJson, true); // Parameter true menghasilkan array echo($student["name"] . "<br/>"); echo($student["age"] . "<br/>"); echo($student["major"] . "<br/>"); ?>
Output:
John
20
CIT
💡 Tips: Gunakan parameter true pada json_decode() jika Anda ingin bekerja dengan associative array daripada object. Ini lebih konsisten dengan cara kerja array di PHP.

Kesimpulan

Array adalah struktur data fundamental dalam PHP yang sangat powerful dan fleksibel. Dalam tutorial ini, kita telah mempelajari:

  • Konsep dasar array dan karakteristiknya di PHP
  • Indexed array dan cara menggunakannya
  • Associative array untuk data yang lebih terstruktur
  • Perulangan array dengan for dan foreach
  • Nested array untuk data multidimensi
  • Fungsi-fungsi array yang penting seperti sort(), implode(), dan explode()
  • Konversi JSON untuk komunikasi data
🎯 Tips untuk Pengembangan Lebih Lanjut:
  • Praktikkan setiap contoh kode yang diberikan
  • Eksplorasi fungsi-fungsi array lainnya di dokumentasi PHP resmi
  • Gunakan array dengan bijak sesuai kebutuhan aplikasi
  • Selalu perhatikan performa saat bekerja dengan array besar
  • Pelajari array_map(), array_filter(), dan array_reduce() untuk manipulasi array yang lebih advanced

Referensi

Komentar