Sulhi.id

Catatan Kecil Seputar Blogging dan Koding

Data Array dalam PHP

Tuesday, October 29th, 2019     Programming

Array (atau larik dalam bahasa indonesia) bukanlah tipe data dasar seperti integer atau boolenArray adalah salah satu struktur data yang berisi sekumpulan data dan memiliki indeks. Indeks digunakan untuk mengakses nilai array, dimana indeks array selalu dimulai dari nol (0). Menggunakan array akan memudahkan dalam membuat kelompok data, serta menghemat penulisan dan penggunaan variabel.

Misalkan suatu variabel bernama X bertipe data array, maka X ini dapat Anda bayangkan seperti gambar berikut:

X
0 1 2 3 N-1

 

Data Array seperti memiliki beberapa ruang/kamar/bilik yang jumlah ruangnya adalah berhingga yaitu sejumlah N. Tiap-tiap kamar terdapat semacam nomor ruangan: 0, 1, 2, 3, …, N-1. Dalam ruangan-ruangan inilah kita bisa assign beberapa value sekaligus.  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.

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.

File: array_1.php

<?php
$x = array(10, 12, 3, 44, 50, "hallo");
echo $x[0]; // akan menampilkan value pada ruang ke-0, yaitu 10
echo "<br/>";
echo $x[5]; // akan menampilkan value pada ruang ke-5, yaitu ‘hallo’
echo "<br/>";
$x[2] = 20; //mengganti value pada ruang ke-2 dengan value yang baru 20)
echo $x[2]; // akan menghasilkan 20 bukan angka 3.
?>

Kita juga bisa menampilkan semua value array sekaligus secara berturut-turut menggunakan looping.

File: array_2.php

<?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.

File: array_3.php

<?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  PHP untuk menghitungkannya. Bayangkan seandainya terdapat 100 lebih ruang dalam suatu array, masa’ kita akan menghitungnya satu-persatu secara manual?

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.

File: array_4.php

<?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.

File: array_5.php

<?php
$x = array("kamar1" => 10, "kamar2" => 12, "kamar3" => 3, "kamar4" => "hallo");
foreach($x as $ruang => $value)
{
echo "Isi dari ruang : ".$ruang. " adalah : ".$value. "<br />";
}
?>

Untuk perulangan selain data array asosiatif, bisa menggunakan perulangan for dan while, dengan mengkombinasikan fungsi count()untuk menghitung banyaknya isi array.

Contoh:

<?php
// membuat array
$barang = ["Buku Tulis", "Penghapus", "Spidol"];

// menampilkan isi array dengan perulangan for
for($i=0; $i < count($barang); $i++){
    echo $barang[$i]."<br>";
}

Pada contoh di atas isi array sebanyak 3, maka perulangan akan dilakukan sebanyak 3x.

Hasilnya:

Array Multi Dimensi

Array multi dimensi adalah array yang memiliki dimensi lebih dari satu. Biasanya digunakan untuk membuat matrik, graph, dan stuktur data rumit lainnya.

Contoh:

<?php
// ini adalah array dua dimensi
$matrik = [
    [2,3,4],
    [7,5,0],
    [4,3,8],
];

// cara mengakses isinya
echo $matrik[1][0]; //-> output: 7

Contoh lain:

<?php
// membuat array 2 dimensi yang berisi array asosiatif
$artikel = [
    [
        "judul" => "Belajar PHP & MySQL untuk Pemula",
        "penulis" => "petanikode"
    ],
    [
        "judul" => "Tutorial PHP dari Nol hingga Mahir",
        "penulis" => "petanikode"
    ],
    [
        "judul" => "Membuat Aplikasi Web dengan PHP",
        "penulis" => "petanikode"
    ]
];

// menampilkan array
foreach($artikel as $post){
    echo "<h2>".$post["judul"]."</h2>";
    echo "<p>".$post["penulis"]."<p>";
    echo "<hr>";
}

Hasilnya: