Wavy Tail

Minggu, 31 Maret 2019

PENDAHULUAN "Array"

Selama  ini  bentuk  variabel  yang  kita  buat  untuk  menyimpan  suatu  value  atau  nilai adalah  berbentuk  tunggal.  Maksudnya,  satu  variabel  hanya  bisa  untuk  menyimpan sebuah value saja. Misalkan sebuah value telah disimpan atau diassign ke dalam sebuah variabel, selanjutnya variabel tersebut akan diassign kembali dengan sebuah value yang lain, maka value yang sebelumnya akan ditimpa oleh value yang baru.
Nah… kira-kira ada tidak ya, variabel yang dapat diassign oleh beberapa value yang lebih dari satu? Oya.. ada, namanya adalah variabel bertipe data array.
Misalkan suatu variabel bernama X bertipe data array, maka X ini dapat Anda bayangkan seperti gambar berikut


Wah… kok ‘X’ nya seperti memiliki beberapa ruang/kamar/bilik  atau apalah terserah namanya ☺ yang jelas jumlah ruangnya adalah berhingga yaitu sejumlah N. Tiap-tiap kamar terdapat semacam nomor ruangan: 0, 1, 2, 3, …, N-1. Nah.. di dalam ruangan- ruangan inilah kita bisa assign beberapa value sekaligus.
Ingat ya… untuk PHP, 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.
Nah.. 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.
<?php
$x = array(10, 12, 3, 44, 50, "hallo"); echo $x[0]; echo $x[5]; // akan menampilkan value pada ruang ke-0, yaitu 10 // akan menampilkan value pada ruang ke-5, yaitu ‘hallo’
$x[2] = -3; echo $x[2];
// mengganti value pada ruang ke-2 dengan value yang baru (-3) // akan menghasilkan -3 (yang tampil bukan 3 karena sudah ditimpa -3)
?>

Kita   juga   bisa   menampilkan   semua   value   array   sekaligus   secara   berturut-turut menggunakan looping
<?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.
<?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 si PHP untuk menghitungkannya. Bayangkan seandainya terdapat 100 lebih ruang dalam suatu array, masa’ kita akan menghitungnya satu-persatu secara manual? Capee deh… ☺
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
<?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.
<?php
$x = array("kamar1" => 10, "kamar2" => 12, "kamar3" => 3, "kamar4" => "hallo");
foreach($x as $ruang => $value) { echo  "Isi dari ruang : ".$ruang. " adalah : ".$value. "<br />"; }
?>
Menambah Elemen Array
Misalkan  kita  sebelumnya  telah  memiliki  array  dengan  value-value  tertentu setiap ruangnya, perhatikan script berikut ini
dalam
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
?>
Nah… bagaimana seandainya jika kita ingin menambahkan sebuah ruang lagi untuk diisi dengan suatu value? Dalam hal ini pada array di atas nomor ruangnya terdiri dari 0, 1, 2, …, 5. Atau dengan kata lain kita akan menambah sebuah ruang lain yaitu ruang nomor 6 untuk diisi dengan suatu value, misalkan 100. OK.. caranya adalah sebagai berikut
Cara pertama, Anda bisa langsung memberikan perintah
$x[6] = 100;
atau
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
$x[6] = 100;
?>
Atau dengan cara kedua menggunakan perintah
$x[] = 6;
Atau
<?php
$x = array(10, 12, 3, 44, 50, "hallo");
$x[] = 100;
?>
Sekarang kita lihat apakah ruangnya benar-benar bertambah.
<?php
$x = array(10, 12, 3, 44, 50, "hallo"); $x[] = 100;
for ($i = 0; $i <= count($x)-1; $i++) { echo "Nilai kamar ke ".$i. " dari array = ".$x[$i]. "<br />"; }
?>
Yes…  benar-benar  bertambah  ruang  arraynya  ☺ Anda melihat  hasilnya  ketika dapat dijalankan di browser.
Contoh Kasus
Sekarang kita akan mencoba membahas beberapa contoh kasus yang menggunakan array.
Kasus 1. Menghitung Rata-rata beberapa bilangan
Misalkan  diberikan  bilangan-bilangan  berikut  ini  9,  2,  10,  3,  7,  5,  2.  Kemudian  kita diminta membuat script untuk mencari rata-rata dari semua bilangan tersebut. Nah.. dalam hal ini, kita bisa menggunakan array untuk menghitungnya. Anda bisa saja sih menggunakan script berikut ini
<?php
$rataRata = (9 + 2 + 10 + 3 + 7 + 5 + 2)/7; echo $rataRata;
?>
Namun…  bagaimana  bila  jumlah  data  bilangannya  sampai  dengan  100  atau  bahkan ribuan? He… 3x Anda bisa bayangkan sendiri alangkah repotnya dalam menulis formulanya.  Nah..  untuk  memudahkan  perhitungan,  kita  akan  menggunakan pendekatan array.
Langkah pertama: kita buat suatu array yang ruangannya diisi oleh bilangan-bilangan tersebut.
<?php
$bil = array(9, 2, 10, 3, 7, 5, 2);
?>
Selanjutnya..  langkah  kedua:  kita  hitung  dulu  hasil  penjumlahan  setiap  value  dalam array  tersebut.  Untuk  menghitungnya,  kita  manfaatkan  looping.  Konsepnya  adalah seperti ini: mula-mula kita asumsikan hasil jumlahnya adalah 0 (karena kita belum mulai menjumlahkan), kemudian kita baca array ke-0, yaitu 9. Value ini kita jumlahkan dengan hasil  penjumlahan   sebelumnya  yaitu  0  atau  0  +  9  =  9.  Dengan  demikian  hasil penjumlahan sekarang adalah 9. Selanjutnya kita baca array ke-1, yaitu 2. Value ini kembali kita jumlahkan dengan hasil penjumlahan sebelumnya yaitu 9 atau 9 + 2 = 11. So.. hasil penjumlahan sekarang menjadi 11. Proses ini terus diulang sampai pada value terakhir dari array. Setelah selesai, maka akan kita peroleh hasil dari penjumlahan total semua value.

<?php
$bil = array(9, 2, 10, 3, 7, 5, 2);
$jumlah = 0; for ($i = 0; $i <= count($bil)-1; $i++) { $jumlah = $jumlah + $bil[$i]; // atau bisa dituliskan $jumlah += $bil[$i]; } ?>

Setelah kita peroleh hasil penjumlahan setiap value dari array, langkah ketiga kita bisa hitung deh rata-rata bilangannya.

<?php
$bil = array(9, 2, 10, 3, 7, 5, 2);
$jumlah = 0; for ($i = 0; $i <= count($bil)-1; $i++) { $jumlah = $jumlah + $bil[$i]; // atau bisa dituliskan $jumlah += $bil[$i]; }
$rataRata = $jumlah/count($bil); echo "Rata-ratanya adalah : ".$rataRata;
?>

Tidak ada komentar:

Posting Komentar