ARRAY

Tipe data yang telah kita pelajari sebelumnya adalah String, Integer, Float atau Double dan boolean, sebenarnya selain keempat tipe data tersebut PHP juga mengenal array. Array dapat digunakan untuk mengelompokkan beberapa data sekaligus pada sebuah variabel. Pada bab Percabangan dan Perulangan sebelumnya kita telah beberapa kali menggunakan array pada subbab perulangan.

Pada bab ini kita akan belajar cara membuat, menambah, meng-edit data pada sebuah array. Di sini kita juga akan kembali mengulang sedikit tentang penggunaan perulangan foreach yang memang sangat sesuai digunakan untuk sebuah array.

Menyimpan Data pada Array

Semua variabel yang telah kita pelajari sebelumnya hanya dapat menampung sebuah nilai. Berbeda dengan array, karena array dapat menampung lebih daru satu nilai. Hal ini sangat berguna untuk menyimpan data yang masih memiliki hubungan, misalnya sekeranjang buah-buahan yang terdiri dari berbagai macam buah.

<?php

//mendefinisikan array

$buah = array(“apel”,”anggur”,”nenas”,”semangka”);

?>

setelah sebuah array dibentuk yang perlu kita ketahui adalah bagaimana cara untuk melihat nilai dari masing-masing elemen array tersebut. Untuk dapat melihat atau meng-akses elemen dari masing-masing array, kita dapat menggunakan indeks. Misalkan kita ingin mengakses ‘anggur’ dari array di atas, maka dapat diakses dengan nama[1], sementara untuk apel dan semangka dapat diakses dengan buah[0] dan buah[3].

Selain array di atas yang sering juga digunakan pada bahasa pemrograman lain, PHP juga mengenal array yang sedikit berbeda. Di mana pada array model ini, indeks akan digantikan oleh sebuah string yang dibuat oleh user atau disebut dengan key. Sehingga kita dapat merubah contoh di atas menjadi seperti berikut

<?php

// define array

$buah = array(

‘a’ => ‘apel’,

‘b’ => ‘anggur’,

‘p’ => ‘nenas’,

‘g’ => ‘semangka’

);

?>

array ini dikenal dengan istilah Assosiative Array. Key yang digunakan pada array ini harus bersifat unique artinya tidak boleh ada dua key bernilai sama. Sebuah key akan berhubungan denga sebuah nilai menggunakan operator =>. Pada contoh di atas untuk mengakses anggur kita menggunakan variabel $buah[b] dari yang sebelumnya kita gunakan $buah[1]. Untuk apel dan semangka dapat diakses dengan $buah[a] dan $buah[d].

Memberikan Nilai ke Array

Aturan untuk penamaan sebuah array adalah sama seperti pana penamaan variabel. Pada sebuah variabel, nama dari variabel tersebut harus dimulai dengan tanda $, begitu juga untuk sebuah nama array. Untuk huruf pertama dari sebuah nama variabel bisa berupa underscore dan huruf, yang selanjutnya boleh diikuti huruf-huruf lainnya, angka atau underscore. Tanda baca seperti koma dan titik adalah tidak diijinkan di dalam penamaan variabel di dalam PHP. Hal lainnya yang tidak diijinkan dalam penamaan sebuah variabel adalah penggunaan spasi. Semua hal ini juga berlaku pada penamaan sebuah Array.

Setelah kita memutuskan nama dari sebuah array, ada dua cara untuk memberikan nilai pada tiap elemen array. Cara yang pertama adalah seperti pada contoh yang sudah kita lihat di atas. Pada metode ini semua nilai dari tiap elemen dimasukkan sekaligus dan untuk tiap elemen dipisahkan oleh tanda koma. Metode ini akan menghasilkan sebuah array berindeks angka. Berikut contoh untuk pemberian nilai pada sebuah array dengan metode ini.

<?php

$jurusan = array(

‘Teknik Elektro’,

‘Teknik Mesin’,

‘Teknik Informatika’,

‘Teknik Sipil’,

‘Teknik arsitektur’

);

?>

Metode kedua adalah dengan memeberikan nilai pada sebuah array dengan cara memberikan indeks pada masing-masing elemen secara langsung. Contoh berikut akan memperlihatkan bagaimana implementasi metode kedua ini pada bahasa pemrograman PHP

<?php

jurusan[0] = ‘Teknik Elektro’;

jurusan[1] = ‘Teknik Mesin’,;

jurusan[2] = ‘Teknik Informatika’;

jurusan[3] = ‘Teknik Sipil’;

jurusan[4] = ‘Teknik arsitektur’;

);

hal lainnya yang perlu diketahui adalah bagaimana memberikan nilai untuk sebuah elemen di dalam array yang indeksnya tidak diketahui. Hal ini dapat dilakukan dengan menghapus indeks pada pemberian nilai seperti pada contoh berikut

<?

$jurusan[] = ‘Teknik Industri’;

$jurusan[] = ‘Teknik Kimia’;

?>

pada pemberian nilai seperti di atas, PHP akan langsung memberikan indeks untuk elemen tersebut pada bagian elemen yang kosong.

Kedua metode di atas dapat juga diimplementasikan pada associative array. Untuk metode yang pertama maka jika digunakan pada associative array yang harus diingat adalah setiap pasangan key dan nilai dengan pasangan key dan nilai lainnya dipisahkan oleh tanda koma seperti pada contoh berikut

<?php

$login = array(

‘username’ => ‘sulth4n’,

‘password’ => ‘rahasia’,

‘url’ => ‘sayed.fl01.info’

);

?>

untuk metode kedua pada associative array dapat dilakukan dengan cara berikut untuk contoh di atas.

<?

login[‘username’] = ‘sulth4n’;

login[‘password’] = ‘rahasia’;

login[‘url’] = ‘sayed.fl01.info’;

?>

untuk mengakses sebuah elemen dari array dapat menggunakan gabungan dari nama array dan indeks atau key.

<?php

$login = array(

‘username’ => ‘sulth4n’,

‘password’ => ‘rahasia’,

‘url’ => ‘sayed.fl01.info’

//mengambil nilai dari password

echo ‘password adalah: ‘ . $login[‘password’];

?>

Mengedit Nilai sebuah Array

Merubah nilai dari sebuah array sebenarnya sangat mudah, sama seperti kita merubah nilai dari sebuah variabel. Cukup masukkan nilai baru ke elemen sebuah array yang digabungkan dengan indeks atau key. Contoh berikut ini akan memperlihatkan cara merubah elemen array dari ‘kopi” menjadi ‘kopi susu’ pada elemen ketiga.

<?

$minuman = array (

‘teh’,

‘sanger’,

‘kopi’,

‘teh setengah panas’,

‘teh tarik’

);

//rubah nilai elemen ketiga dari kopi menjadi kopi susu

minuman[3] = “kopi susu”;

?>

untuk menghapus sebuah elemen dari array gunakan fungsi unset() yang memerlukan argument berupa elemen dari sebuah array. Elemen ini dapat digunakan elemen pada array biasa maupun associative array. Untuk lebih jelasnya dapat kita lihat pada contoh berikut

<?

$minuman = array (

‘teh’,

‘sanger’,

‘kopi’,

‘teh setengah panas’,

‘teh tarik’

);

//hapus sanger dari array minuman

unset(minuman[1] );

?>

fungsi lain yang dapat digunakan untuk menghapus elemen sebuah array adalah array_pop() or array_ push() . Sekarang kita tidak akan membahas kedua fungsi ini.

Mendapatkan Ukuran Array

Penggunaan array di dalam sebuah perulangan umumnya tergantung dengan ukuran dari sebuah array. Hal ini sebenarnya sangat mudah dilakukan dilakukan dengan fungsi count () dari PHP. Fungsi ini menerima argumen yang berupa array dan akan mengembalikan sebuah nilai yang merupakan jumlah elemen dari array tersebut.

<?php

$hariKerja = array(‘Senin’, ‘Selasa’, ‘Rabu’,’Kamis’,’Jumat’,);

// menampilkan ukuran Array

echo ‘Array ini memiliki ‘ . count($hariKerja) . ‘ elemen’;

?>

selain fungsi count() pada PHP juga mengenal fungsi lainnya yang memiliki kegunaan yang sama untuk menghitung jumlah elemen dari sebuah Array, yaitu sizeof().

Array Bersarang

PHP membolehkan kita untuk menggabungkan sebuah array di dalam array lainnya, untuk hal ini di dalam PHP tidak ada batasan berapa dalam sebuah array dapat dimasukkan ke array lainnya. Hal ini akan sangat berguna ketika kita memiliki data yang berstruktur yang diatur secara hirarki. Contoh berikut akan memperlihatkan penggunaan array bersarang ini.

<?php

$phonebook = array(

array(

‘nama’ => ‘Sayed Muchallil,

‘hp’ => ‘8923423’,

’email’ => ‘sayed.muchallil@elektro.usnyiah.ac.id’,

),

array(

‘nama’ => ‘Syarifah Maulizah’,

‘hp’ => ‘60226122’,

’email’ => ‘myemail@gmail.com’,

),

array(

‘nama’ => ‘Henri Yunanto’,

‘hp’ => ‘5942033’,

’email’ => ‘hyunanto@hotmail.com’,

)

);

?>

pada contoh di atas $phonebook adalah sebuah array yang memiliki kedalaman dua level. Level pertama menggunakan indeks angka, di mana setiap elemen adalah representasi dari sebuah records dalam sebuah buku alamat. Setiap elemen dari array ini adalah sebuah associative array yang menampung informasi yang khusus mengenai nama, no telepon dan email dari masing-masing orang yang ada pada buku tamu.

Untuk mengakses elemen pada array bersarang kita harus menggunakan urutan hirarki dari indeks atau keynya untuk mendapatkan nilainya. Berikut adalah sebuah contoh yang akan menampilkan no telepon genggam dari Henri Yunanto.

<?php

$phonebook = array(

array(

‘nama’ => ‘Sayed Muchallil,

‘hp’ => ‘8923423’,

’email’ => ‘sayed.muchallil@elektro.usnyiah.ac.id’,

),

array(

‘nama’ => ‘Syarifah Maulizah’,

‘hp’ => ‘60226122’,

’email’ => ‘myemail@gmail.com’,

),

array(

‘nama’ => ‘Henri Yunanto’,

‘hp’ => ‘5942033’,

’email’ => ‘hyunanto@hotmail.com’,

)

);

// untuk mengakses no HP Henri Yunanto

echo “No HP Henri Yunanto adalah : ” . $phonebook[2][‘hp’];

?>

Memproses Array Menggunakan Perulangan

umumnya dalam sebuah program kita harus memproses sebuah nilai-nilai dari seluruh elemen array. Misalkan saja kita harus melakukan operasi tertentu pada tiap elemen seperti operasi matematis untuk seluruh elemen array. Cara terbaik untuk melakukan hal ini adalah dengan sebuah perulangan dari elemen pertama sampai dengan elemen terakhir. Penggunaan array dalam perulangan sudah pernah kita jumpai pada bab percabangan dan perulangan. Contoh berikut adalah penggunaan perulangan for untuk memberikan nilai pada sebuah array.

<?php

$kota = array(‘Banda Aceh’, ‘Medan’, ‘Palembang, ‘Jambi’, ‘Riau’, ‘Jakarta’);

//tampilkan nilai dari masing-masing elemen pada array $kota

for ($indeks=0; $indeks<count($kota); $indeks++) {

echo $kota[$indeks] . “\r\n”;

}

?>

pada kode di atas, perulangan for akan melakukan iterasi untuk seluruh elemen dari array $kota dan menampilkan nilai dari masing-masing elemen ke browser. Perulangan ini akan memerlukan iterasi sebanyak jumlah elemen dari array $kota. Untuk mendapatkan jumlah elemen dari array $kota kita menggunakan fungsi count()

Penggunaan Perulangan foreach

Pada bab percabangan dan perulangan kita sudah pernah membahas tentang penggunaan perulangan foreach untuk mengakses sebuah array. Perulangan ini pertama sekali dikenalkan pada PHP 4.0 dan merupakan perulangan paling mudah untuk melakukan iterasi terhadap sebuah array. Karena pembuatan array ini pada awalnya memang dimaksudkan untuk memproses array.

Pada perulangan ini, setiap iterasi, elemen yang sedang diakses pada sebuah array akan ditempatkan pada variabel sementara, sehingga bisa langsung diproses seperti menampilkan elemen tersebut, melakukan operasi matematis dengan menggunakan elemen tersebut.

Seperti biasa, cara paling mudah untuk memahami ini adalah dengan melihat contoh berikut ini. Contoh sebelumnya akan kita rubah sedikit sehingga dapat kita gunakan pada perulangan foreach dari yang sebelumnya menggunakan perulangan for.

<?php

$kota = array(‘Banda Aceh’, ‘Medan’, ‘Palembang, ‘Jambi’, ‘Riau’, ‘Jakarta’);

//tampilkan nilai dari masing-masing elemen pada array $kota

foreach ($kota as $namaKota) {

echo “$namaKota \r\n”;

}

?>

perulangan foreach dapat juga digunakan untuk associative array. Namun, pada array dengan tipe ini, perulangan foreach akan membutuhkan dua buah variabel sementara. Untuk lebih jelasnya dapat kita lihat contoh berikut

<?php

$kota = array(

‘aceh’=>’Banda Aceh’,

‘sumut’=>’Medan’,

‘sumsel’=>’Palembang,

‘jambi’=>’Jambi’,

‘kepri’=>’Riau’,

‘dki jaya’=>’Jakarta’

);

//tampilkan nilai dari masing-masing elemen pada array $kota

foreach ($kota as $key=>$nilai) {

echo “$nilai berada pada provinsi $key \r\n”;

?>

Penggunaan Array Iterator

cara lain yang dapat digunakan adalah ArrayIterator yang baru diperkenalkan pada PHP 5.0 yang merupakan fungsi yang berguna untuk melakukan perulangan terhadapa elemen array. Contoh berikut akan memberikan gambaran yang jelas bagaimana penggunaan array Iterator ini.

<?php

$kota = array(

‘aceh’=>’Banda Aceh’,

‘sumut’=>’Medan’,

‘sumsel’=>’Palembang,

‘jambi’=>’Jambi’,

‘kepri’=>’Riau’,

‘dki jaya’=>’Jakarta’

);

// membuat object arrayIterator

$iterator = new ArrayIterator($kota);

// arahkan iterator ke awal array

$iterator->rewind();

// lakukan perulangan untuk array $kota

// tampilkan nilai masing-masing elemen

while($iterator->valid()) {

print $iterator->current() . ” berada di” . $iterator->key() . “. \r\n”;

$iterator->next();

}

?>

Pada kode PHP di atas, object ArrayIterator diisi dengan array $kotad. Dan method rewind() berfungsi untuk mengembalikan internal pointer ke elemen pertama dari array. Perulangan while akan terus dilakukan selama sebuah elemen valid, yang kemudian bisa digunakan untuk melakukan iterasi pada elemen. Sebuah key dari sebuah array dapat diakses dengan memanggil metode key dan nilai dari key tersebut dapat dipanggil dengan metode current(). Metode next() akan merubah posisi internal pointer ke pointer berikutnya.

Latihan

  1. Buka text Editor dan tuliskan kode berikut

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN”

“DTD/xhtml1-transitional.dtd”>

<html xmlns=”http://www.w3.org/1999/xhtml&#8221; xml:lang=”en” lang=”en”>

<head>

<title>Perhitungan nilai rata-rata mahasiswa</title>

</head>

<body>

<h2>Menghitung nilai rata-rata</h2>

<?php

$nilai = array(

25, 64, 23, 87, 56, 38, 78, 57, 98, 95,

81, 67, 75, 76, 74, 82, 36, 39,

54, 43, 49, 65, 69, 69, 78, 17, 91

);

// dapatkan total jumlah mahasiswa

$count = count($nilai);

// iterate over grades

// hitung total

$total = $top = $bottom = 0;

foreach ($nilai as $angka) {

$total += $angka;

if ($angka <= 20) {

$bawah++;

}

if ($angka >= 80) {

$atas++;

}

}

// calculate rata-rata

$rata = round($total / $count);

// print statistics

echo “rata-rata mahasiswa: $rata <br />”;

echo “jumlah mahasiswa yang memiliki nilai 20% ke bawah: $bawah <br />”;

echo “jumlah mahasiswa yang memiliki nilai 80% ke atas : $atas <br />”;

?>

</body>

</html>

  1. simpan file tersebut dengan nama ratamahasiswa.php ke /var/www atau root directori dari web server

  2. Buka browser arahkan ke http://locahost/ratamahasiswa.php