Friday, April 1, 2016

Array Multidimensi dan Array Sebagai Himpunan

Array di PHP adalah tipe variabel spesial, karena dengan array kita dapat mengakses sekumpulan nilai dengan menggunakan satu nama variabel. Mekanisme pengaksesan ini diatur dalam bentuk pemetaan (mapping) dari sekumpulan nilai (values) ke sekumpulan kunci (keys) atau indeks. Sebagai contoh,
Ø Array Multidimensi

Array multi dimensi adalah array yang ada dalam array. Dalam array tersebut dapat berisi beberapa array lagi. Array multi dimensi ini dapat memudahkan membuat program karena dapat membuat beberapa array sekaligus sehingga meringkas beberapa perintah operasi.
Berikut contoh penulisan array multi dimensi dalam sebuah perintah program:
<html>
<head>
<title>Array : Multidimensi</title>
</head>
<body>
<h1>Array : Multidimensi</h1>
<?php
//arraymulti.php
//membuat array multidimensi.
$data=@array(
Array(Judul => "Net Force",
     Pengarang => "Clancy, Tom",
     Rating => "4",
     ),
    
Array(Judul => "Every Dead Thing",
     Pengarang => "Connolly, Jhon",
     Rating => "5",
     ),
    
Array(Judul => "Driven to Extremes",
     Pengarang => "Alen, James",
     Rating=> "4",
     ),

Array(Judul => "Dark Hallow",
     Pengarang => "Connolly, Jhon",
     Rating=> "4",
     ),
    
Array(Judul => "Bombay Ice",
     Pengarang => "Forbes, Leslie",
     Rating=> "5",
     )
);

Foreach($data as $val)
{
   Foreach($val as $key => $data2)
   {
        Echo"$key : $data2";
   }
   Echo"<br>";
}
?>
</body>
</html>
Hasil Script diatas apabila dijalankan pada browser, akan tampak seperti gambar berikut:


Data yang ada pada sebuah array bersifat dinamis, artinya dapat ditambah, digabung dengan array yang lain, dihapus, maupun diurutkan sesuai pola tertentu. Untuk memanipulasi data array, anda dapat menggunakan beberapa fungsi yang akan digunakan dan dijelaskan pada bab ini.
Ø Array Sebagai Himpunan

Array dalam PHP dapat dianggap pula sebagai himpunan sehingga kita dapat memberikan operasi himpunan kepada array PHP.
Operasi Himpunan yang dapat dilakukan :
1.      Penggabungan himpunan – union
2.      Irisan – intersection
3.      Selisih – Difference

1.   Penggabungan Himpunan

Penggabungan array seringkali dibutuhkan untuk memudahkan manipulasi data dari beberapa array, dengan cara menggabungkan data array tersebut menjadi satu kemudian baru dimanipulasi.

Operasi penggabungan dilakukan untuk memudahkan menggabungkan dua array menjadi satu array. Fungsi yang dapat digunakan adalah array_union() atau array_merge().
Berikut contoh Menggabungkan 2 array dengan operasi himpunan.
<html>
<head>
<title>Array : Union</title>
</head>
<body>
<h1>Array : Union</h1>
<?php
$ar_a=array(1,2,5,7,8);
print"Isi Array \$ar_a <br>" ;
print_r($ar_a);
print" <br>" ;
$ar_b=array("abc",5,7,90);
print"Isi Array,ii9 \$ar_b<br>" ;
print_r($ar_b);
print" <br>" ;
$gabung = array_merge($ar_a, $ar_b);
print"Isi Array \$gabung <br>" ;
print_r($gabung);
print" <br>";
?>
</body>
</html>
Print_r() adalah fungsi yang digunakan untuk mencetak isi array secara otomatis (dummping). Hasil dari array_merge() disimpan dalam variabel array $gabung.

Hasil dari Array_Union.php
Pada  array $gabung, maka array $gabung akan memiliki 9 elemen – elemen dari $ar_a disimpan pada bagian awal dan elemen dari $ar__b disimpan pada bagian berikutnya. Pada fungsi diatas maka ada terjadi nilai yang berganda yang berasal dari $ar_a dan $ar_b yang sama tetapi dinyatakan sebagai elemen sendiri – sendiri.
Proses union seharusnya merupakan proses penggabungan array_merge kemudian
Dilakukan array_unique.

Fungsi array_unique() dapat digunakan untuk menghilangkan duplikasi data ini, berikut adalah contoh scriptnya :
<html>
<head>
<title>Array : Intersect</title>
</head>
<body>
<h1>Array : Intersect</h1>
<?php
$ar_a=array(1,2,5,7,8);
print("Isi Array \$ar_a <br>");
print_r($ar_a);
print("<br>");
$ar_b=array("abc",5,7,90);
print("Isi Array \$ar_b<br>");
print_r($ar_b);
print("<br>");
$irisan=array_intersect($ar_a, $ar_b);
print("Isi Array \$irisan <br>");
print_r($irisan);
print("<br>");
?>
</body>
</html>
Hasil dari perintah array_unique():

2.   Irisian
Irisan dari dua buah himpunan digunakan untuk mengetahui isi yang sama dari dua buah himpunan.

Dengan menggunakan operasi dua buah himpunan, maka kita dapat dengan mudah untuk mendapatkan nilai-nilai yang sama yang ada pada dua buah himpunan, tanpa kita harus melakukan penelusuran dan perbandingan isi kedua himpunan ini dengan memrogram sendiri.

Hasil dari operasi ini adalah array yang berisi nilai yang sama dari kedua himpunan yang diiriskan.

Fungsi untuk melakukan irisan dua himpunan dalam PHP adalah array_intersect(). Berikut merupakan script untuk membuat Array_Intersect.php :

<html>
<head>
<title>Array : Intersect</title>
</head>
<body>
<h1>Array : Intersect</h1>
<?php
$ar_a=array(1,2,5,7,8);
print("Isi Array \$ar_a <br>");
print_r($ar_a);
print("<br>");
$ar_b=array("abc",5,7,90);
print("Isi Array \$ar_b<br>");
print_r($ar_b);
print("<br>");
$irisan=array_intersect($ar_a, $ar_b);
print("Isi Array \$irisan <br>");
print_r($irisan);
print("<br>");
?>
</body>
</html>
Tampilan hasil eksekusi : Array_Intersect.php

Contoh diatas memperlihatkan isi dari $irisan adalah 5 dan 7 yag berasal dari elemen $ar_a nomor 2 dan nomor 3.
3.   Selisih
Operasi elisih dalam suatu himpunan adalah untuk mendapatkan isi satu himpunan yang tidak dimiliki oleh himpunan lain yang di selisihkan kepada himpunan pertama, atau secara sederhana adalah mengurangi isi himpunan pertama dengan isi himpunan kedua sehingga isi himpunan pertama tidak ada yang sama dengan isi himpunan kedua, semua isi himpunan yang sama dengan himpunan kedua di buang.

Fungsi untuk melakukan operasi selisih ini adalah dengan Array_diff()
<html>
<head>
<title>Array : Diff</title>
</head>
<body>
<h1>Array : Diff</h1>
<?php
$ar_a=array(1,2,5,7,8);
print("Isi Array \$ar_a <br>");
print_r($ar_a);
print("<br>");
$ar_b=array("abc",5,7,90);
print("Isi Array \$ar_b<br>");
print_r($ar_b);
print("<br>");
$diff=array_diff($ar_a, $ar_b);
print("Isi Array \$diff <br>");
print_r($diff);
print("<br>");
?>
</body>
</html>
Tampilan hasil eksekusi Array_Diff.php

Array_diff() menghasilkan isi $ar_a yang elemenya tidak terdapat juga dalam Array $ar_b.