6.1 DEFINISI ARRAY - Pertemuan 5 (Array)
BAB 6 ARRAY
6.1 DEFINISI ARRAY
Array adalah wadah yang dapat menyimpan sejumlah nilai skalar. Setiap nilai di array diakses melalui indeks yang juga biasa disebut kunci. Umumnya indeks berupa bilangan bulat yang dimulai dengan nol. Namun, indeks berupa string dimungkinkan di PHP. Skema pembentukan Array ditujukkan sebagai berikut: Keterangan: Array di atas mengandung 5 elemen. Setiap elemen diakses dengan menggunakan indeks yang dimulai dengan nol. Array di PHP diimplementasikan melalui konstruk bernama array. Bentuk penciptaan dan sekaligus mengisikan elemen-elemen array dapat dilakukan dengan bentuk berikut: nama_array = array(elemen_1, ..., elemen_N);
Contoh berikut memberikan gambaran tentang pembentukan array dan cara memberikan nilai ke array.
<?php $nama = array("Dian", "Edi", "Citra", "Simon",
“Hardi"); print_r($nama); ?>
Array juga bisa didefinisikan dengan cara semacam berikut: $nama_array[] = “elemen_1”; $nama_array[] = “elemen_2”; $nama_array[] = “elemen_N”;
Contoh pendefinisian array di atas dalam program adalah sebagai berikut:
$nama[] = “Hardi”; print_r($nama); ?>
Selanjutnya bagaimana cara menampilkan nilai-nilai yang tersimpan dalam ruang array, caranya dengan memanggil indeks yang terdapat di dalam array. Perhatikan program berikut:
<?php $nama = array("Dian", "Edi", "Citra", "Simon", "Hardi");
//menampilkan nilai pada indeks ke-0 yaitu Dian
print($nama[0]) . "\t";
//menampilkan nilai pada indeks ke-2 yaitu Citra
print($nama[2]) . "\t";
//mengubah nilai pada indeks ke-4
$nama[4] = "Diana";
//menampilkan nilai pada indeks ke-4 yang telah diubah
print($nama[4]); ?>
Kita juga bisa menampilkan semua nilai array sekaligus secara berturut-turut menggunakan pengulangan seperti for atau menggunakan fungsi count(). Perhatikan program berikut.
<?php
//menampilkan semua nilai array menggunakan for
$buah = array("Jeruk","Melon","Apel","Mangga","Manggis", "Nangka"); for ($i = 0; $i <= 5; $i++){ echo "Nilai indeks ke ".$i."dari array = ".$buah[$i]. "<br>";
} print("<hr>");
//menampilkan semua nilai array menggunakan count()
$buah = array("Jeruk","Melon","Apel","Mangga","Manggis","Nangka"); for ($i = 0; $i < count($buah); $i++){ echo "Nilai indeks ke ".$i. " dari array = ".$buah[$i]. "<br />";
} ?>
Perhatikan output yang dihasilkan oleh kedua fungsi for dan count() di atas.
6.2 ARRAY ASOSIATIF Ruang dari array diberikan nomor ruang sebagai penanda, yaitu mulai dari 0, 1, 2, dst. Apakah penanda setiap ruang ini harus berupa angka? Jawabnya tidak, kita 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 nilai pada suatu ruangnya.
<?php $nilai = array("indeks1" => 10, "indeks2" => 20, "indeks3" => 30, "indeks4" => "40"); echo $nilai['indeks2'] ."<br>"; echo $nilai['indeks4']; ?>
6.3 ARRAY MULTI DIMENSI
<?php $kendaraan['Roda Dua']['Motor'] = "Honda"; $kendaraan['Roda Dua']['Sepeda'] = "Fixie"; $kendaraan['Roda Empat']['Mobil'] = "Toyota"; echo $kendaraan['Roda Dua']['Motor']; ?>
Contoh yang kedua:
<?php $makanan = array("sayuran"=>array("bayam"=>8000,"tomat"=>5000), "buah"=>array("apel"=>17000,"jeruk"=>8000)); echo "Harga Buah Apel Satu Kg : Rp" .$makanan['buah']['apel']; ?>
Banyak cara untuk mendeklarasikan array multi dimensi ini, tergantung kita saja ingin memakai yang mana. Gunakan yang menurut kita mudah saja. Tapi kebanyakan orang lebih suka menggunakan contoh pertama dalam menggunakan array multi dimensi karena mudah dipahami struktur kode nya.
6.4 FOREACH
Perulangan foreach banyak digunakan bersamaan dengan data array, karena mengakses data array akan jauh lebih mudah dan praktis. Struktur foreach adalah sebagai berikut: foreach(array_expression as $value) statement foreach(array_expression as $key => $value) statement
Untuk lebih jelasnya, perhatikan contoh berikut: 1.
Foreach yang hanya menampilkan value
<?php $a = array (1, 2, 3, 17); foreach ($a as $v){ echo "Nilai \$a saat ini adalah: $v.<br>"; } ?> 2.
Foreach yang menampilkan value dengan key
<?php $a = array (1, 2, 3, 17); $i = 0; foreach($a as $v){ echo "\$a[$i] => $v.<br>"; $i++; } ?> 3.
Foreach pada array asosiatif
<?php $a = array ("one" => 1, "two" => 2, "three" => 3, "four" => 17); foreach($a as $k => $v){ echo "\$a[$k] => $v.<br>"; }
6.5 PENGURUTAN ARAY
6.5.1 PENGURUTAN ARRAY BERINDEKS Pengurutan data di array berindeks bilangan bisa menggunakan sort() dan rsort().
1. sort()untuk mengurutkan data secara urut naik (ascending) 2. rsort()untuk mengurutkan data secara urut turun (descending) Perhatikan contoh program berikut.
<?php $nama = array("Dian", "Edi", "Citra", "Simon", "Hardi"); print("Data asli: <br>"); foreach($nama as $kunci => $isi)print(($kunci + 1) . "." . $isi . "<br>"); print("<hr>"); sort($nama); print("Hasil sort(): <br>"); foreach($nama as $kunci => $isi)print(($kunci +1) . "." . $isi . "<br>"); print("<hr>"); rsort($nama); print("Hasil rsort(): <br>"); foreach($nama as $kunci => $isi)print(($kunci +1) . "." . $isi . "<br>"); ?>
6.5.2 PENGURUTAN ARRAY ASOSIATIF Pengurutkan data di array asosiatif menggunakan asort()dan arsort().
1. asort()untuk mengurutkan data secara urut naik (ascending); 2. arsort()untuk mengurutkan data secara urut turun (descending); Perhatikan contoh berikut:
<?php $kamus["kuda"] = "horse"; $kamus["burung"] = "bird"; $kamus["unta"] = "camel"; $kamus["ular"] = "snake"; $kamus["kura-kura"] = "turtle"; $kamus["katak"] = "frog"; print("Data asli: <br>"); foreach($kamus as $kunci => $isi)print($kunci."=>".$isi ."<br>"); print("<hr>"); asort($kamus); print("Hasil asort() : <br>"); foreach($kamus as $kunci => $isi)print($kunci."=>".$isi ."<br>"); print("<hr>"); arsort($kamus); print("Hasil asort() : <br>"); foreach($kamus as $kunci => $isi)print($kunci . "=>" . $isi . "<br>"); ?> Pengurutan data secara alamiah dapat menggunakan natsort(). Contoh:
<?php $data[] = "12 apel"; $data[] = "1 apel"; $data[] = "2 apel"; $data[] = "24 apel"; $data[] = "3 apel"; print("Data asli:<br>"); foreach($data as $kunci => $isi)print($kunci . "=>" . $isi . "<br>"); print("<hr>"); sort($data); print("Hasil sort() : <br>"); foreach($data as $kunci => $isi)print($kunci . "=>" . $isi . "<br>"); print("<hr>"); natsort($data); print("Hasil natsort() : <br>"); foreach($data as $kunci => $isi)print($kunci . "=>" . $isi . "<br>"); ?>
6.6 MENGOLAH ARRAY
Pengolahan array memiliki beberapa fungsi yang digunakan, misalnya kita akan menambahkan elemen ke array kita bisa menggunakan fungsi array_unshift()dan array_push().
1. array_unshift()berguna untuk menambahkan data di awal array 2. array_push()berguna untuk menambahkan data diakhir array Perhatikan contoh berikut:
<?php $a = array("Satu", "Dua", "Tiga"); print("Isi \$a semula: <br>"); print_r($a); print("<br>"); array_unshift($a, "Nol"); print("Isi \$a setelah array_unshift(): <br>"); print_r($a); ?> print("<hr>"); array_push($a, "Empat", "Lima"); print("Isi \$a setelah array_push(): <br>"); print_r($a);
Apabila fungsi di atas berfungsi untuk menambahkan elemen pada array maka
fungsi array_shift()dan array_pop()berguna untuk membuang elemen pada array.1. array_shift()berguna untuk membuang elemen di awal array 2. array_pop()berguna untuk membuang elemen di akhir array Perhatikan contoh berikut: print("<br>"); $elemen = array_shift($a); print("Isi \$a setelah array_shift()"); print_r($a); print("<br>"); print("<hr>"); $elemen = array_pop($a); print("Isi \$a setelah array_pop()"); print_r($a); print("<br>"); ?>
Fungsi untuk mengambil sebagian elemen-elemen array, kita bisa menggunakan
fungsi array_slice(). Bentuk pemakaian fungsi ini adalah sebagai berikut:array_slice(array, indeks_awal [,cacah])
Perhatikan contoh:
<?php $a = array("merah", "jingga", "kuning", "hijau", "biru", "nila","ungu"); print("Isi \$a semula: <br>"); print_r($a); print("<br>"); print("<hr>"); $b=array_slice($a, 2, 3); print("Isi \$a setelah array_slice(\$a, 2, 3) : <br>"); print_r($b); print("<br>"); ?>
Dalam array terdapat fungsi yang berguna untuk menggabungkan array yaitu menggunakan fungsi array_merge(). Bentuk pemakaian sebagai berikut:
array_merge(array1, array2, ...)
Nilai balik berupa gabungan array yang menjadi argumennya. Perhatikan contoh:
<?php $selular = array("Samsung", "Nokia", "Apple"); $operator = array("Indosat", "Telkomsel"); print_r($selular); print("<br>"); print_r($operator); print("<br>"); $gabungan = array_merge($selular, $operator); print_r($gabungan); print("<br>"); ?>
Berikut adalah daftar beberapa fungsi yang belum disebutkan di atas yang berguna
untuk mengolah array yang dapat kita praktikkan sesuai dengan kebutuhan
Fungsi Bentuk Umum Kegunaan array_reverse array_reverse(array) Membalik urutan di array suffle() suffle(array) Mengacak isi array array_rand() array_rand(array, cacah) Mengambil elemen secara random array_unique() array_unique(array) Membuat elemen pada array tidak sama ange() range(nilai_awal, nilai_akhir) Memberikan nilai urut pada array in_array() in_array(elemen_yang_dicari, Mencari keberadaan suatu array) elemen pada array array_key_exist() array_key_exist(kunci, array) Mencari keberadaan suatu kunci pada aray explode() explode(pemisah, string, Mengonversi string menjadi [,batasan]) array implode() implode(perekat, array) Mengonversi array menjadi string array_diff() array_diff(array1, array2) Mencari perbedaan dua array array_intersect() array_intersect(array1, Mencari persamaan dua array2) array
6.7 LATIHAN BAB 6 1.
Praktekkan fungsi-fungsi pengolahan array pada tabel sub bab 5.6.