Nah… kira-kira ada tidak ya, variabel yang dapat diassign oleh beberapa value yang lebih dari satu? Oya.. ada, namanya adalah variabel bertipe data array.
Misalkan suatu variabel bernama X bertipe data array, maka X ini dapat Anda bayangkan seperti gambar berikut
X
Ingat ya… untuk PHP, nomor ruang array dimulai dari 0, bukan 1.
Dalam PHP, untuk mendeklarasikan suatu variabel (misalkan $x) bertipe data array adalah sebagai berikut:
$x = array();
Selanjutnya bagaimana perintah untuk mengassign suatu value ke dalam ruangan array?
Oya… sebelumnya, saya perlu sampaikan bahwa untuk PHP, variabel bertipe data array ini bisa diassign dengan berbagai tipe data. Maksudnya, untuk setiap ruang yang ada, boleh diassign dengan nilai berbagai tipe data yang berlainan, misalnya untuk ruang nomor 1 akan diisi dengan nilai berupa bilangan bulat (integer), ruang no. 2 diisi dengan real, no. 3 diisi dengan string dsb. Itu bisa dilakukan.
Nah.. berikut ini contoh mengassign ruang variabel yang bertipe data array. Sebagai contoh misalkan kita akan mengassign ruang nomor 3 dengan value bilangan integer 10, dan ruang no. 5 dengan string ‘I love PHP’ perintahnya:
<?php
$x = array(); $x[3] = 10; $x[5] = "I love PHP";
?>
Kita juga bisa mengisi value untuk setiap ruang array sekaligus secara berturut-turut seperti contoh berikut ini:
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
?>
atau cara kedua bisa pula menggunakan seperti berikut ini:
<?php $x = array(0 => 10, 1 => 12, 2 => 3, 3 => 44, 4 => 50, 5 => "hallo"); ?>
Selanjutnya, bagaimana cara kita menampilkan value-value yang tersimpan dalam kamar array tersebut? Ya.. caranya mudah, tinggal panggil saja nomor kamarnya lantas di echo kan.
<?php
$x = array(10, 12, 3, 44, 50, "hallo"); echo $x[0]; echo $x[5]; // akan menampilkan value pada ruang ke-0, yaitu 10 // akan menampilkan value pada ruang ke-5, yaitu ‘hallo’
$x[2] = -3; echo $x[2];
// mengganti value pada ruang ke-2 dengan value yang baru (-3) // akan menghasilkan -3 (yang tampil bukan 3 karena sudah ditimpa -3)
?>
Kita juga bisa menampilkan semua value array sekaligus secara berturut-turut menggunakan looping
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
for ($i = 0; $i <= 5; $i++) { echo "Nilai kamar ke ".$i. " dari array = ".$x[$i]. "<br />"; }
?>
atau cara kedua, kita bisa menggunakan perintah count() untuk menentukan jumlah ruang array yang telah diisi value.
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
for ($i = 0; $i <= count($x)-1; $i++) { echo "Nilai kamar ke ".$i. " dari array = ".$x[$i]. "<br />"; }
?>
Dalam script di atas, perintah count($x) akan menghasilkan 6 karena dalam array $x tersebut terdapat 6 ruang yang terisi value. Penggunaan count() ini akan efektif bila kita malas menghitung jumlah ruang array yang telah diisi value secara manual, ibaratnya kita minta tolong si PHP untuk menghitungkannya. Bayangkan seandainya terdapat 100 lebih ruang dalam suatu array, masa’ kita akan menghitungnya satu-persatu secara manual? Capee deh… ☺
Array Asosiatif
Dari contoh-contoh di atas, kita lihat bahwa ruang atau kamar dari array diberikan nomor ruang sebagai penanda, yaitu mulai dari 0, 1, 2, dst… Nah… yang menjadi pertanyaan, apakah penanda setiap ruang ini harus berupa angka? Jawabnya tidak, Anda juga bisa memberi penanda setiap ruang dengan suatu kata atau karakter. Array yang demikian ini disebut array asosiatif.
Berikut ini contoh membuat array asosiatif dan cara menampilkan value pada suatu ruangnya
<?php
$x = array("kamar1" => 10, "kamar2" => 12, "kamar3" => 3, "kamar4" => "hallo"); echo $x['kamar2']; // akan menampilkan 12 echo $x['kamar4']; // akan menampilkan "hallo"
?>
Sekarang bagaimana cara menampilkan semua value yang tersimpan dalam array asositif tersebut sekaligus? Sama caranya dengan sebelumnya, namun kita khusus akan menggunakan looping foreach. Looping ini khusus untuk array asosiatif.
<?php
$x = array("kamar1" => 10, "kamar2" => 12, "kamar3" => 3, "kamar4" => "hallo");
foreach($x as $ruang => $value) { echo "Isi dari ruang : ".$ruang. " adalah : ".$value. "<br />"; }
?>
Menambah Elemen Array
Misalkan kita sebelumnya telah memiliki array dengan value-value tertentu setiap ruangnya, perhatikan script berikut ini
dalam
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
?>
Nah… bagaimana seandainya jika kita ingin menambahkan sebuah ruang lagi untuk diisi dengan suatu value? Dalam hal ini pada array di atas nomor ruangnya terdiri dari 0, 1, 2, …, 5. Atau dengan kata lain kita akan menambah sebuah ruang lain yaitu ruang nomor 6 untuk diisi dengan suatu value, misalkan 100. OK.. caranya adalah sebagai berikut
Cara pertama, Anda bisa langsung memberikan perintah
$x[6] = 100;
atau
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
$x[6] = 100;
?>
Atau dengan cara kedua menggunakan perintah
$x[] = 6;
Atau
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
$x[] = 100;
?>
Sekarang kita lihat apakah ruangnya benar-benar bertambah.
<?php
$x = array(10, 12, 3, 44, 50, "hallo"); $x[] = 100;
for ($i = 0; $i <= count($x)-1; $i++) { echo "Nilai kamar ke ".$i. " dari array = ".$x[$i]. "<br />"; }
?>
Yes… benar-benar bertambah ruang arraynya ☺ Anda melihat hasilnya ketika dapat dijalankan di browser.
Contoh Kasus
Sekarang kita akan mencoba membahas beberapa contoh kasus yang menggunakan array.
Kasus 1. Menghitung Rata-rata beberapa bilangan
Misalkan diberikan bilangan-bilangan berikut ini 9, 2, 10, 3, 7, 5, 2. Kemudian kita diminta membuat script untuk mencari rata-rata dari semua bilangan tersebut. Nah.. dalam hal ini, kita bisa menggunakan array untuk menghitungnya. Anda bisa saja sih menggunakan script berikut ini
<?php
$rataRata = (9 + 2 + 10 + 3 + 7 + 5 + 2)/7; echo $rataRata;
?>
Namun… bagaimana bila jumlah data bilangannya sampai dengan 100 atau bahkan ribuan? He… 3x Anda bisa bayangkan sendiri alangkah repotnya dalam menulis formulanya. Nah.. untuk memudahkan perhitungan, kita akan menggunakan pendekatan array.
Langkah pertama: kita buat suatu array yang ruangannya diisi oleh bilangan-bilangan tersebut.
<?php
$bil = array(9, 2, 10, 3, 7, 5, 2);
?>
Selanjutnya.. langkah kedua: kita hitung dulu hasil penjumlahan setiap value dalam array tersebut. Untuk menghitungnya, kita manfaatkan looping. Konsepnya adalah seperti ini: mula-mula kita asumsikan hasil jumlahnya adalah 0 (karena kita belum mulai menjumlahkan), kemudian kita baca array ke-0, yaitu 9. Value ini kita jumlahkan dengan hasil penjumlahan sebelumnya yaitu 0 atau 0 + 9 = 9. Dengan demikian hasil penjumlahan sekarang adalah 9. Selanjutnya kita baca array ke-1, yaitu 2. Value ini kembali kita jumlahkan dengan hasil penjumlahan sebelumnya yaitu 9 atau 9 + 2 = 11. So.. hasil penjumlahan sekarang menjadi 11. Proses ini terus diulang sampai pada value terakhir dari array. Setelah selesai, maka akan kita peroleh hasil dari penjumlahan total semua value.
<?php
$bil = array(9, 2, 10, 3, 7, 5, 2);
$jumlah = 0; for ($i = 0; $i <= count($bil)-1; $i++) { $jumlah = $jumlah + $bil[$i]; // atau bisa dituliskan $jumlah += $bil[$i]; } ?>
Setelah kita peroleh hasil penjumlahan setiap value dari array, langkah ketiga kita bisa hitung deh rata-rata bilangannya.
<?php
$bil = array(9, 2, 10, 3, 7, 5, 2);
$jumlah = 0; for ($i = 0; $i <= count($bil)-1; $i++) { $jumlah = $jumlah + $bil[$i]; // atau bisa dituliskan $jumlah += $bil[$i]; }
$rataRata = $jumlah/count($bil); echo "Rata-ratanya adalah : ".$rataRata;
?>