Sunday, January 8, 2017

Bab 6. PHP/MySQL Untuk Pemula


Array (Bagian 1)



Menampilkan Array
Pada kasus ini, Anda akan menampilkan isi sebuah array. Anda akan menggunakan fungsi print_r() atau var_dump().

<?php
// mendefinisikan array
$data = array(
    "IND" => array(
        "nama_utuh" => "Indonesia Raya", "matauang" => "Rupiah"),
    "JPN" => array(
        "nama_utuh" => "Japan", "matauang" => "Yen"),
      "SING" => array(
        "nama_utuh" => "Singapore", "matauang" => "Dollar"));

// menampilkan isi array
print_r($data);
var_dump($data);
?>


Menugaskan Nilai Kepada Elemen Array
Setelah Anda menentukan sebuah nama untuk array Anda, Anda memiliki dua opsi dalam penugasan nilai kepada elemen array. Opsi pertama adalah metode dimana setiap nilai diberikan sekaligus, yang dipisahkan dengan koma, sebagai berikut:

<?php
// penugasan_nilai1.php
// mendefinisikan array
$mobil = array(
    'Ferrari',
    'Porsche',
    'Jaguar',
    'Lamborghini',
   'Mercedes'
);

// menampilkan isi array
print_r($mobil);
?>

Cara kedua adalah menciptakan suatu array dengan menetapkan nilai menggunakan notasi indeks, seperti berikut:

<?php
// penugasan_nilai2.php
// mendefinisikan array
$mobil[0] = 'Ferrari';
$mobil[1] = 'Porsche';
$mobil[2] = 'Jaguar';
$mobil[3] = 'Lamborghini';
$mobil[4] = 'Mercedes';

// menampilkan isi array
print_r($mobil);
?>


Menciptakan Array Asosiatif
Di sini, Anda akan menggunakan kedua teknik penugasan nilai terhadap array asosiatif. Untuk melakukannya, Anda memerlukan konektor. Berikut adalah contohnya:

<?php
// array_asosiatif1.php
// mendefinisikan array
$data = array(
    'username' => 'rismon',
    'password' => 'rahasia',
    'host' => '192.168.0.1'
);

// menampilkan isi array
print_r($data);
?>

Anda dapat pula menugaskan setiap nilai kepada kunci satu per satu, seperti pada contoh berikut:

<?php
// array_asosiatif2.php
// mendefinisikan array
$data['username'] = 'rismon';
$data['password'] = 'rahasia';
$data['host'] = '192.168.0.1';

// menampilkan isi array
print_r($data);
?>

Untuk mengakses sebuah nilai dari array dalam skript, Anda hanya perlu menggunakan nama array dan indeks/kunci, seperti berikut:

<?php
// akses_array_asosiatif.php
// mendefinisikan array
$data = array(
'username' => 'rismon',
'password' => 'rahasia',
'host' => '192.168.0.1'
);

// menggunakan nilai array
echo 'Password adalah: ' . $data['password'];
?>


Memodifikasi Array
Pemodifikasian nilai array sama seperti pemodifikasian nilai variabel biasa. Anda hanya perlu menugasakan nilai baru kepada elemen tertentu menggunakan indeks atau kuncinya.

<?php
// modifikasi_array.php
// mendefinisikan array
$daging = array(
'ikan',
'ayam',
'sapi',
'bebek'
);

// mengubah 'ayam' menjadi 'kerbau'
$daging[2] = 'kerbau';

// menampilkan isi array
print_r($daging);
?>


Memproses Array
Pada kasus, Anda secara iteratif memproses elemen-elemen di dalam sebuah array. Anda akan menggunakan loop foreach() dan beberapa variabel temporer.

<?php
// proses_array.php
// mendefinisikan array berindeks
$arrayIndeks = array("Joni", "Jono", "Harto", "Santi", "Monika");

// memproses dan menampilkan elemen-elemen array satu per satu
// hasil: "Joni | Jono | Harto | Santi | Monika | "
foreach ($arrayIndeks as $i) {
    print "$i | ";
}
?>

<?php
// mendefinisikan array asosiatif
$arrayAsosiatif = array("IND" => "Jakarta", "US" => "Washington",
"FR" => "Paris", "UK" => "London");

// memproses dan menampilkan elemen-elemen array satu per satu
// hasil: "IND: Jakarta US: Washington FR: Paris UK: London "
foreach ($arrayAsosiatif as $kunci=>$nilai) {
    print "$kunci: $nilai";
    print "<br />";
}
?>

Cara alternatif, Anda dapat menggunakan Iterator yang tersedia dalam PHP, seperti berikut:

<?php
// iterator_array.php
// mendefinisikan array asosiatif
$arrayAsosiatif = array("IND" => "Jakarta", "US" => "Washington",
"FR" => "Paris", "UK" => "London");

// menciptakan sebuah objek ArrayIterator
$iterator = new ArrayIterator($arrayAsosiatif);

// kembali ke awal array
$iterator->rewind();

// memproses dan menampilkan elemen-elemen array satu per satu
// hasil: "IND: Jakarta US: Washington FR: Paris UK: London "
while($iterator->valid()) {
    print $iterator->key() . ": " . $iterator->current() . "\n";
    $iterator->next();
}
?>


Memproses Array Bersarang
Di sini, Anda akan memproses semua elemen pada suatu rangkaian array-array bersarang. Anda akan menuliskan sebuah fungsi rekursif untuk menjelajah array.

<?php
// array_bersarang.php
// fungsi untuk menjelajah array bersarang secara rekursif
function jelajahArray($arr) {
    // memeriksa apakah masukan adalah array
    if (!is_array($arr)) { die ("Argumen bukanlah sebuah array!"); }

      // beriterasi pada array
    foreach($arr as $nilai) {
        // jika array adalah array bersarang
        // maka jelajahi secara rekursif
        if (is_array($nilai)) {
            jelajahArray($nilai);
        } else {
            // memproses elemen array
            print strtoupper($nilai) . " \n";
        }
    }
}

// mendefinisikan array bersarang
$data = array(
    "Indonesia Raya",
    array("Medan", "Yogyakarta"),
    array("Siantar",
    array ("Mataram", "Bandung")));

    // hasil: "INDONESIA RAYA MEDAN YOGYAKARTA SIANTAR MATARAM BANDUNG"
    jelajahArray($data);
?>

Secara alternatif, Anda dapat pula menggunakan Iterator dalam PHP, sebagai berikut:

<?php
// iterator_array_bersarang.php
// mendefinisikan array bersarang
$data = array(
    "Indonesia Raya",
    array("Medan", "Yogyakarta"),
    array("Siantar",
    array ("Mataram", "Bandung")));

// menginisialisasi sebuah Iterator
// melewatkannya array yang akan diproses
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator ($data));

// beriterasi pada array
// hasil: "INDONESIA RAYA MEDAN YOGYAKARTA SIANTAR MATARAM BANDUNG"
foreach ($iterator as $nilai) {
    print strtoupper($nilai) . " \n";
}
?>


Menghitung Jumlah Elemen Di Dalam Array
Pada kasus ini, Anda akan menghitung berapa banyak elemen yang dimuat oleh suatu array. Anda akan menggunakan fungsi PHP count().

<?php
// hitung_elemen_array.php
// mendefinisikan array berindeks
$binatang = array("kuda", "komodo", "singa", "gajah", "monyet");

// mendapatkan ukuran array (jumlah elemen)
// hasil: 5
echo count($binatang);
?>


Mengkonversi String Menjadi Array
Di sini, Anda akan mendekomposisi sebuah string menjadi elemen-elemen individual dan menyimpannya dalam suatu string atau menggabungkan elemen-elemen suatu array ke dalam sebuah string. Di sini, Anda akan menggunakan fungsi PHP explode().

<?php
// konversi_string_array.php
// mendefinisikan string
$stringAlfabet = "a b c d e f g h i j k";

// memecah string ke dalam array
// menggunakan spasi-putih sebagai pemisah
// hasil: Array ( [0] => a [1] => b [2] => c [3] => d [4] => e [5] =>
//        f [6] => g [7] => h [8] => i [9] => j [10] => k )
print_r(explode(" ", $stringAlfabet));
?>

Selanjutnya, Anda akan menggunakan fungsi PHP implode() untuk menggabungkan elemen-elemen array ke dalam satu string, dengan delimiter opsional.

<?php
// konversi_array_string.php
// mendefinisikan array
$arrayNama = array("Jono", "Joni", "Harto", "Santi", "Monika");

// menggabungkan elemen-elemen array ke dalam string
// menggunakan "dan" sebagai separator
// hasil: "Jono dan Joni dan Harto dan Santi dan Monika"
echo implode(" dan ", $arrayNama);
?>


Menukar Kunci dan Nilai Array
Anda akan saling-menukar kunci-kunci dan nilai-nilai dari sebuah array asosiatif. Anda akan menggunakan fungsi PHP array_flip().

<?php
// tukar_nilai_kunci_array.php
// define associative array
$oposit = array("putih" => "hitam", "siang" => "malam", "buka" => "tutup");

// saling-menukar kunci dan nilai
// hasil Array ( [hitam] => putih [malam] => siang [tutup] => buka )
print_r(array_flip($oposit));
?>


Menambah dan Menghapus Elemen Array
Di sini, Anda akan menambah atau menghapus elemen dari sebuah array. Anda akan menggunakan fungsi array_pop(), array_push(), array_shift(), dan array_unshift().

<?php
// tambah_hapus_array.php
// mendefinisikan array berindeks
$superhero = array("spiderman", "superman");

// menambahkan sebuah elemen ke akhir array
// hasil: ("spiderman", "superman", "superboy")
array_push($superhero, "superboy");
print_r($superhero);

// menghapus sebuah elemen dari awal the array
// hasil: ("superman", "superboy")
array_shift($superhero);
print_r($superhero);

// menambah sebuah elemen di awal array
// hasil: ("hulk", "superman", "superboy")
array_unshift($superhero, "hulk");
print_r($superhero);

// menghapus sebuah elemen dari akhir array
// hasil: ("hulk", "superman")
array_pop($superhero);
print_r($superhero);
?>

Selanjutnya, Anda akan menggunakan fungsi PHP array_splice() untuk menambah atau menghapus elemen dari tengah array.

<?php
// tambah_hapus_tengah_array.php
// mendefinisikan array
$arrayWarna = array("violet", "indigo", "biru", "hijau", "kuning",
                "oranye", "merah", "ungu", "hitam", "putih");

// menghapus 4 elemen tengah
// hasil: Array ( [0] => violet [1] => indigo [2] => biru
//                [3] => ungu [4] => hitam [5] => putih )
array_splice($arrayWarna, 3, 4);
print_r($arrayWarna);

// menambah 2 elemen di antara "hitam" dan "putih"
// hasil: Array ( [0] => violet [1] => indigo [2] => biru
//                [3] => ungu [4] => hitam [5] => perak
//                [6] => coklat [7] => putih )
array_splice($arrayWarna, 5, 0, array("perak", "coklat"));
print_r($arrayWarna);
?>


Mengekstrak Segmen-Segmen Bertetangga Dalam Sebuah Array
Di sini, Anda akan membaca dua atau lebih elemen-elemen bertetangga dari sebuah array. Anda akan menggunakan fungsi PHP array_slice().

<?php
// ekstrak_elemen_bertetangga.php
// mendefinisikan array
$arrayWarna = array("violet", "indigo", "biru", "hijau", "kuning",
                    "oranye", "merah", "ungu", "hitam", "putih");

// mengekstrak 4 elemen tengah
// hasil: Array ( [0] => hijau [1] => kuning [2] => oranye [3] => merah )
$potong = array_slice($arrayWarna, 3, 4);
print_r($potong);
?>

Menhapus Elemen Duplikat Pada Array
Pada kasus ini, Anda akan membuang semua elemen duplikat pada array untuk mendapatkan himpunan elemen yang unik. Anda akan menggunakan fungsi PHP array_unique().

<?php
// hapus_elemen_duplikat.php
// mendefinisikan sebuah array yang memuat elemen-elemen duplikat
$arrayAngka = array(10,20,10,40,35,80,35,50,55,10,55,30,40,70,50,10,35,85,40,90,30);

// menghapus semua elemen unik ke dalam sebuah array baru
// hasil: "10, 20, 40, 35, 80, 50, 55, 30, 70, 85, 90"
echo join(", ", array_unique($arrayAngka));
?>


Mengindeks-Ulang Array
Anda akan mengindeks-ulang array berindeks secara numerik setelah penghapusan elemen-elemen. Anda akan menggunakan fungsi array_values().

<?php
// indeks_ulang_array.php
// mendefinisikan array berindeks
$superhero = array(0 => "spiderman", 1 => "superman",
                     2 => "superboy", 3 => "green lantern");

// menghapus sebuah elemen dari tengah the array
// hasil: (0 => "spiderman", 1 => "superman", 3 => "green lantern")
unset ($superhero[2]);

// menata-ulang elemen-elemen array untuk menghapus gap
// hasil: (0 => "spiderman", 1 => "superman", 2 => "green lantern")
$superhero = array_values($superhero);
print_r($superhero);
?>


Mengacak Array
Anda akan mengacak array atau membaca satu atau lebih elemen dari array secara acak. Anda akan menggunakan fungsi PHP shuffle() dan array_rand().

<?php
// acak_array.php
// mendefinisikan array yang memuat angka dari 1 sampai 5
$arrayAngka = range(1,5);

// mengacak elemen-elemen array secara acak
// hasil: "3, 5, 1, 2, 4" (contoh)
shuffle($arrayAngka);
echo join (", ", $arrayAngka);
?>

<?php
// mendefinisikan array yang memuat angka dari 1 sampai 12
$arrayAngka = range(1,12);

// mengambil 5 kunci acak dari array
$kunciAcak = array_rand($arrayAngka, 5);

// menampilkan elemen-elemen yang terpilih
// hasil: "3, 5, 1, 2, 4" (contoh)
echo join (", ", $kunciAcak);
?>


Membalik Array
Anda akan membalik urutan elemen-elemen di dalam array. Anda akan menggunakan fungsi array_reverse().

<?php
// balik_array.php
// mendefinisikan array angka
$arrayAngka = array("satu", "dua", "tiga", "empat", "lima");

// menghasilkan sebuah array dengan urutan elemen dibalik
// hasil: Array ( [0] => lima [1] => empat [2] => tiga [3] => dua [4] => satu )
print_r(array_reverse($arrayAngka));
?>


Melakukan Pencarian Pada Array
Anda akan melakukan pencarian terhadap suatu kunci atau nilai tertentu pada array. Anda akan menggunakan fungsi PHP array_key_exists() atau in_array().

<?php
// pencarian_array.php
// mendefinisikan array asosiatif
$data = array(
"IND" => "Indonesia Raya",
"US" => "United States of America",
"UK" => "United Kingdom",
"AU" => "Australia");

// melakukan pencarian kunci
// hasil: "Kunci ada"
echo array_key_exists("UK", $data) ? "Kunci ada" : "Kunci tidak ada";

// melakukan pencarian nilai
// hasil: "Nilai ada"
echo in_array("Australia", $data) ? "Nilai ada" : "Nilai tidak ada";
?>

Harus diakui bahwa kapabilitas pencarian di sini primitif; kedua fungsi akan menghasilkan false kecuali jika ditemukan kecocokan. Jika Anda menginginkan kapabilitas pencarian yang lebih tangguh, Anda bisa menuliskan fungsi pencarian sendiri, sebagai berikut:

<?php
// fungsiPencarian.php
// fungsi untuk melakukan pencarian kunci dan nilai pada array
function pencarianArray($cari, $argKedua) {
    // memeriksa apakah masukan sebuah array
    if (!is_array($argKedua)) { die ("Argumen kedua bukan sebuah!"); }

      // beriterasi pada
    foreach ($argKedua as $kunci=>$nilai) {
        // memeriksa kunci dan nilai apakah cocok atau tidak
        // menghasilkan true jika ada kecocokan
        if (preg_match("/$cari/i", $nilai) || preg_match("/$cari/i", $kunci)) {
                return true;
            break;
        }
    }
}

// mendefinisikan array asosiatif
$data = array(
"IND" => "Indonesia Raya",
"US" => "United States of America",
"UK" => "United Kingdom",
"AU" => "Australia");

// melakukan pencarian
// hasil "Ada Kecocokan"
echo pencarianArray("us", $data) ? "Ada Kecocokan" : "No match";

// hasil "Tidak Ada Kecocokan"
echo pencarianArray("xz", $data) ? "Ada Kecocokan" : "Tidak Ada Kecocokan";
?>

Melakukan Pencarian Pada Array Bersarang
Anda akan melakukan pencarian pada array bersarang untuk mencari kunci atau nilai tertentu. Anda juga akan menuliskan sebuah fungsi rekursif untuk menjelajah array bersarang tersebut.

<?php
// pencarian_array_bersarang.php
// fungsi untuk menjelajah array bersarang secara rekursif
// dan melakukan pencarian nilai yang cocok dengan sebuah pola
function pencarianArrayRekursif($cari, $argKedua, $path="") {
    // memeriksa apakah masukan adalah sebuah array
    if (!is_array($argKedua)) { die ("Argumen kedua bukan array!"); }

      // mendeklarasikan variabel untuk menampung kecocokan
    global $cocok;

      // beriterasi pada array
    foreach($argKedua as $kunci=>$nilai) {
        if (preg_match("/$cari/i", $kunci)) {
            $cocok[] = array($path . "$kunci/", "KUNCI: $kunci");
    }

      if (is_array($nilai)) {
        // jika suatu array bersarang
        // maka melakukan pencarian rekursif
        $path .= "$kunci/";
        pencarianArrayRekursif($cari, $nilai, $path);
        unset($path);
    } else {
        // jika bukan sebuah array
        // memeriksa kecocokan
        // menyimpan path jika ada kecocokan
        if (preg_match("/$cari/i", $nilai)) {
            $cocok[] = array($path . "$kunci/", "NILAI: $nilai");
        }
    }
}

// menghasilkan daftar kecocokan
return $cocok;
}

// mendefinisikan array bersarang
$data = array (
    "Indonesia Raya" => array (
        "Jakarta",
        "Yogyakarta",
        "Medan" => array (
            "Pematang Siantar",
            "Balige" => array(
                "Tarabunga"))));
                       
// melakukan pencarian string "an"
// hasil: Array ( [0] => Array ( [0] => Indonesia Raya/Medan/ [1] => KUNCI: Medan )
//               [1] => Array ( [0] => Indonesia Raya/Medan/0/ [1] => NILAI: Pematang Siantar ) )
print_r(pencarianArrayRekursif("an", $data));
?>

Cara alternatif untuk melakukan pencarian rekursif pada sebuah array adalah dengan menggunakan objek RecursiveIteratorIterator dan RecursiveArrayIterator, sebagai berikut:

<?php
// pencarian_array_rekursif.php
// define associative array
// mendefinisikan array bersarang
$data = array (
    "Indonesia Raya" => array (
        "Jakarta",
        "Yogyakarta",
        "Medan" => array (
            "Pematang Siantar",
            "Balige" => array(
                "Tarabunga"))));
                       
// mendefinisikan string pencarian
$cari = "an";
$cocok = array();

// pencarian array secara rekursif
$iterator = new RecursiveIteratorIterator(new RecursiveArrayIterator ($data));

foreach ($iterator as $nilai) {
    if(preg_match("/$cari/i", $nilai)) {
        $cocok[] = $nilai;
    }
}

// menampilkan nilai-nilai yang cocok
// hasil: Array ( [0] => Pematang Siantar )
print_r($cocok);
?>



Memfilter Elemen Array
Anda akan mengeliminasi elemen-elemen sebuah array yang tidak sesuai dengan kriteria tertentu. Anda akan menciptakan sebuah filter menggunakan fungsi array_filter().

<?php
// filter_array.php
// fungsi untuk menguji apakah sebuah angka positif
function apaPositif($nilai) {
    return ($nilai > 0) ? true : false;
}

// mendefinisikan array angka
$runtun = array(-10,21,43,-6,5,1,84,1,-32);

// memfilter nilai-nilai positif
// hasil: Array ( [1] => 21 [2] => 43 [4] => 5 [5] => 1 [6] => 84 [7] => 1 )
print_r(array_filter($runtun, 'apaPositif'));
?>


Mengurutkan Array
Anda akan mengurutkan sebuah array berdasarkan kunci atau nilai tertentu. Anda akan menggunakan fungsi PHP sort() pada array berindeks numerik.

<?php
// urut_array.php
// mendefinisikan array berindeks
$binatang = array("singa", "rusa", "tiger", "gajah", "beruang", "zebra", "harimau");

// mengurutkan berdasarkan nilai
// hasil: Array ( [0] => beruang [1] => gajah [2] => harimau [3] => rusa
//                [4] => singa [5] => tiger [6] => zebra )
sort($binatang);
print_r($binatang);
?>

Kemudian Anda akan menggunakan fungsi asort() atau ksort() untuk melakukan pengurutan pada array berindeks string, sebagai berikut:

<?php
// urut_array_indeks_string.php
// mendefinisikan array asosiatif
$binatang = array("singa" => "aku", "rusa" => "dia",
                 "tiger" => "mereka", "gajah" => "saya", "singa" => "kamu");

// mengurutkan berdasarkan nilai
// hasil: Array ( [rusa] => dia [singa] => kamu [tiger] => mereka [gajah] => saya )
asort($binatang);
print_r($binatang);

// mengurutkan berdasarkan kunci
// hasil: Array ( [gajah] => saya [rusa] => dia [singa] => kamu [tiger] => mereka )
ksort($binatang);
print_r($binatang);
?>


Mengurutkan Array Multidimensi
Di sini, Anda akan mengurutkan sebuah array multidimensi menggunakan beberapa kunci. Anda akan menggunakan fungsi array_multisort().

<?php
// urut_array_multidimensi.php
// menciptakan sebuah array multidimensi
$data = array();
$data[0] = array("judul" => "Net Force", "pengarang" => "Clancy, Tom", "rating" => 4);
$data[1] = array("judul" => "Every Dead Thing", "pengarang" => "Connolly, John", "rating"=> 5);
$data[2] = array("judul" => "Driven To Extremes", "pengarang" => "Allen, James", "rating" => 4);
$data[3] = array("judul" => "Dark Hollow", "pengarang" => "Connolly, John", "rating" => 4);
$data[4] = array("judul" => "Bombay Ice", "pengarang" => "Forbes, Leslie", "rating" => 5);

// memisahkan semua elemen dengan kunci yang sama
// menjadi array-array individual
foreach ($data as $kunci=>$nilai) {
    $pengarang[$kunci] = $nilai['pengarang'];
    $judul[$kunci] = $nilai['judul'];
    $rating[$kunci] = $nilai['rating'];
}

// mengurutkan berdasarkan rating dan kemudian pengarang
array_multisort($rating, $pengarang, $data);
print_r($data);
?>


Mengurutkan Array Menggunakan Fungsi Pengurutan Sendiri
Anda akan mengurutkan sebuah array menggunakan algoritma pengurutan sendiri. Anda akan mendefinisikan algoritma pengurutan Anda sendiri dan kemudian menggunakan fungsi usort() untuk memproses array.

<?php
// fungsi_pengurutan_sendiri.php
// fungsi untuk membandingkan panjang dari dua nilai
function urutPanjang($a, $b) {
    if (is_scalar($a) && is_scalar($b)) {
        if (strlen($a) == strlen($b)) {
            return 0;
        } else {
            return (strlen($a) > strlen($b)) ? 1 : -1;
        }
    }
}

// mendefinisikan array
$data = array("bhinneka", "tunggal", "ika",
              "nusantara", "indonesia");

// mengurutkan array menggunakan fungsi pengurutan sendiri
// hasil: Array ( [0] => ika [1] => tunggal [2] => bhinneka
//                [3] => indonesia [4] => nusantara )
usort($data, 'urutPanjang');
print_r($data);
?>


Mengurutkan Array Bersarang
Anda akan mengurutkan array bersarang. Anda akan menuliskan sebuah fungsi rekursif untuk menjelajah array bersarang dan mengurutkannya.

<?php
// pengurutan_array_bersarang.php
// fungsi untuk membandingkan panjang dari dua nilai
function urutPanjang($a, $b) {
    if (is_scalar($a) && is_scalar($b)) {
        if (strlen($a) == strlen($b)) {
            return 0;
        } else {
            return (strlen($a) > strlen($b)) ? 1 : -1;
        }
    }
}

// fungsi untuk mengurutkan secara rekursif
// pada array bersarang
function urutRekursif(&$arr, $fungsiUrut, $paramFungsiUrut = null) {
    // memeriksa apakah masukan berupa array
    if (!is_array($arr)) { die ("Argumen bukan array!"); }

      // mengurutkan array menggunakan nama fungsi
    $fungsiUrut($arr, $paramFungsiUrut);

      // memeriksa apakah array ada
    // jika ada, lakukan pengurutan secara rekursif if so
    foreach (array_keys($arr) as $k) {
        if (is_array($arr[$k])) {
            urutRekursif($arr[$k], $fungsiUrut, $paramFungsiUrut);
        }
    }
}

// mendefinisikan array bersarang
$data = array (
    "Indonesia" => array (
        "Bandung",
        "Yogyakarta" => array(
            "Bantul", "Sleman"),
            "Wates", "Wonosari", "Kulonproga",
            "Kota Yogyakarta" => array (
            "Malioboro", "Keraton",
                  "Mall Malioboro", "Museum")));

// mengurutkan $data secara rekursif menggunakan asort()
urutRekursif($data, 'asort');
print_r($data);

// mengurutkan $data secara rekursif menggunakan fungsi sendiri
urutRekursif($data, 'usort', 'urutPanjang');
print_r($data);
?>


Menggabungkan Array
Anda akan menggabungkan dua atau lebih array menjadi satu array. Anda akan menggunakan fungsi PHP array_merge() atau array_merge_recursive().

<?php
// gabung_array.php
// mendefinisikan array
$propinsiIndo = array("Aceh", "Sumut", "Riau", "Jambi");
$kabupatenIndo = array("Sleman", "Klaten", "Magelang");

// menggabungkan menjadi satu array
// hasil: ("Maine", "New York", ..., "Tamil Nadu", "Kerala")
$indo = array_merge($propinsiIndo, $kabupatenIndo);
print_r($indo);
?>
<?php

// mendefinisikan array
$ab = array("a" => "apel", "b" => "bunga");
$ac = array("a" => "alamat", "c" => "cinta");
$bcd = array("b" => "bola", "c" => array("can", "cantik"), "d" => "desa");

// menggabungkan secara rekursif menjadi satu array
$abcd = array_merge_recursive($ab, $ac, $bcd);
print_r($abcd);
?>


Membandingkan Array
Anda akan membandingkan dua array untuk mencari elemen-elemen yang sama atau yang berbeda. Anda akan menggunakan fungsi PHP array_intersect() untuk mencari elemen-elemen yang sama dari kedua array.

<?php
// iris_array.php
// mendefinisikan array
$basa = array("sodium", "klorin");
$asam = array("hidrogen", "klorin", "nitrogen");

// mendapatkan semua elemen dari $asam
// yang juga ada di dalam $garam
// hasil: ("klorin")
$irisan = array_intersect($asam, $basa);
print_r($irisan);
?>

Kemudian, Anda akan menggunakan fungsi array_diff() untuk mencari elemen-elemen yang ada di salah satu dari kedua array, tetapi tidak ada di dalam kedua array.

<?php
// selisih_array.php
// mendefinisikan array
$basa = array("sodium", "klorin");
$asam = array("hidrogen", "klorin", "nitrogen");

// mencari elemen-elemen yang ada di salah satu dari
// kedua array, tetapi tidak ada di dalam kedua array.
// hasil: ("hidrogen", "nitrogen", "sodium")
$selisih = array_unique(array_merge(
    array_diff($asam, $basa), array_diff($basa, $asam)
    ));
     
print_r($selisih);
?>

Perhatikan bahwa fungsi array_dif() dan array_intersect() hanya membandingkan nilai-nilai array; kedua fungsi tersebut mengabaikan kunci ketika menghitung irisan atau selisih array. Anda dapat memperbaikinya dengan menyediakan fungsi array_diff_assoc() dan array_intersect_assoc().

<?php
// iris_selisih_array_perbaiki.php
// mendefinisikan array
$a = array("sodium", "klorin", "hidrogen");
$b = array("klorin", "sodium", "hidrogen");

// tak-sensitif terhadap kunci
// hasil: ()
print_r(array_diff($a, $b));

// sensitif terhadap kunci
// hasil: ("sodium", "klorin")
print_r(array_diff_assoc($a, $b));

// tak-sensitif terhadap kunci
// hasil: ("sodium", "klorin", "hidrogen")
print_r(array_intersect($a, $b));

// sensitif terhadap kunci
// hasil: ("hidrogen")
print_r(array_intersect_assoc($a, $b));
?>


Projek: Menghitung Rerata Kelas

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
  <head>
    <title>Projek: Menghitung Rerata</title>
  </head>
  <body>
    <h2>Projek: Menghitung Rerata</h2>
<?php
// mendefinisikan array yang memuat nilai-nilai
// dengan rentang 1 dan 100
$arrayNilai = 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
);

// menghitung banyaknya nilai
$banyak = count($arrayNilai);

// beriterasi pada arrayNilai
// menghitung total dan atas/bawah 20%
$total = $atas = $bawah = 0;
foreach ($arrayNilai as $g) {
    $total += $g;
    if ($g <= 20) {
        $bawah++;
    }
    if ($g >= 80) {
        $atas++;
    }
}

// menghitung rerata
$rerata = round($total / $banyak);

// menampilkan statistik
echo "Rerata kelas: $rerata <br />";
echo "Banyak siswa ada di 20% bawah: $bawah <br />";
echo "Banyak siswa ada di 20% atas: $atas <br />";
?>
  </body>
</html>






No comments:

Post a Comment