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
X
0
|
1
|
2
|
3
|
4
|
…
|
N-1
|
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 menjad 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 dapat dijalankan di
browser.
Berikut adalah
contoh-contoh program:
1. Mencari
bilangan terbesar
Program
<?php
$bil = array(9, 2, 10, 3, 7,
5, 2);
$max = $bil[0];
for ($i = 0; $i <=
count($bil)-1; $i++) {
if ($bil[$i] > $max)
$max = $bil[$i];
}
echo "Bilangan terbesarnya
adalah : ".$max;
?>
Hasil
2. Mencari
bilangan terkecil
Program
<?php
$bil = array(283, 182, 381,
119, 391, 591, 123, 124, 284, 215, 312);
$min = $bil[0];
for ($i = 0; $i <=
count($bil)-1; $i++) {
if ($bil[$i] < $min)
$min = $bil[$i];
}
echo "Bilangan
terkecilnya adalah : ".$min;
?>
Hasil
3. Mencari
Bilangan terbesar, terkecil, jangkauan
Program
//BanyakData.php
<form method="post" action ="DataArray.php">
Masukan Banyak Bilangan <input
type="text" name="jum">
<input
type="submit" name="submit" value= "submit">
<input
type="reset" name="reset" value=
"reset"><br>
</form>
//DataArray.php
<?php
$data=$_POST["jum"];
echo "<form
method=\"post\" action=\"proses.php\">";
for($i=0; $i<$data;
$i++){
$a=$i+1;
echo " bilangan ke-$a
<input type=\"text\" name=\"nilai$i\">";
}
echo "
<input
type=\"hidden\" name=\"jumdata\" value=$data> <br>
<input
type=\"submit\" name=\"submit\"
value=\"submit\">
<input
type=\"reset\" name=\"reset\"
value=\"reset\"><br>
</form>";
?>
//proses.php
<?php
//urutkan data
$c=$_POST['jumdata'];
for($i=0; $i<$c; $i++){
$a=$i+1;
$nilai[$i]=$_POST["nilai$i"];
echo "bilangan urutan ke
$a adalah $nilai[$i] <br>";
}
// menghitung nilai terbesar
$min= $nilai[0];
for($i=0;
$i<=count($nilai)-1; $i++){
if ($nilai[$i]<$min)
{
$min=$nilai[$i];
}
}
// menghitung nilai terkecil
$max= $nilai[0];
for ($i=0;
$i<=count($nilai)-1; $i++){
if ($nilai[$i]>$max)
{
$max=$nilai[$i];
}
}
// menghitung jangkauan
$jang=$max-$min;
// mencetak semua
echo "bilangan terkecil
adalah $min <br>";
echo "bilangan terbesar
adalah $max <br>";
echo "jangkauan bilangan
adalah $jang";
?>
Hasil
//BanyakData.php
//DataArray
//Proses.php
4. Mencari
bilangan dalam urutan array
Program
<form method="post" action ="">
masukkan bilangan<input
type="text" name="bil"><br>
<input
type="submit" name="submit" value= "cari">
<input
type="reset" name="reset" value= "hapus"><br>
</form>
<?php
$uji=$_POST["bil"];
echo "$uji
<br>";
$y=array(273, 281, 384, 119,
392, 184, 105, 129, 204, 219, 274, 275, 263);
for ($i=0; $i<=count($y)-1;
$i++){
if($y[$i]==$uji){
$test= 1;
$urut=$i+1;
}
}
if($test==1){
echo "bilangan yang
anda cari berada pada urutan ke-$urut";
}
else
echo "maaf bilangan yang
anda cari tidak berada dalam daftar";
?>
Hasil
5. Software
kasir
Program
//jenis.php
<h1> Pembayaran </h1>
<form method="post" action="banyak.php">
Banyak Jenis Barang Yang
Dibeli <input type="text" name="jen"><br>
<input type
="submit" name="submit" value="submit">
<input type
="reset" name="reset" value="reset"><br>
</form>
//banyak.php
<?php
$jenis=$_POST["jen"];
echo "<form method=\"post\"
action=\"total.php\">";
echo
"<table>";
for ($a=0; $a<$jenis;
$a++) {
$b=$a+1;
echo "<tr>
<td>barang ke-".$b."</td>
<td><input type=\"text\" name=\"bar$a\"></td>
<td><input type=\"text\"
name=\"jum$a\"></td>
</tr>";
}
echo "<input
type=\"hidden\" name=\"jenbar\"
value=\"$jenis\">";
echo "<tr>
<td></td>
<td><input type='submit' name='submit' value='Submit'
/><input type =\"reset\" name=\"reset\"
value=\"reset\"></td>
</tr>";
echo
"</table>";
echo "</form>";
?>
//total.php
<h2> Total Belanja</h1>
<?php
$s=$_POST["jenbar"];
for ($a=0; $a<$s; $a++){
$kode[$a]=$_POST["bar$a"];
$jumlah[$a]=$_POST["jum$a"];
}
$kod= array(1001, 1002, 1003,
1004, 1005, 1006, 1007, 1008, 1009, 1010);
$barang= array("Sabun
Lifebuoy", "Permen Blaster", "Pasta Gigi Pepsodent",
"Madu Arbain", "Kecap ABC", "Saus Tomat ABC",
"Gula Gulaku", "Rinso", "Super Pel", "Permen
Tango");
$harga= array(1500, 5600,
4560, 30000, 7250, 6700, 8900, 7100,
6450, 5600);
echo "<table
border=1>";
echo "<tr
align=\"center\">
<td>Kode</td>
<td>Barang</td>
<td>Harga</td>
</tr>";
for ($a=0; $a<$s;
$a++){
for ($i=0;
$i<count($barang)-1; $i++){
if
($kode[$a]==$kod[$i]){
$l=$harga[$i]*$jumlah[$a];
echo
"<tr>
<td>$kode[$a]</td>
<td>$barang[$i]</td>
<td>Rp.$l</td>
</tr>";
$t=$l+$t;
}
}
}
echo "<tr><td
colspan=2>total belanja anda adalah
</td> <td>Rp.$t</td></tr>";
echo
"</table>";
?>
<h3>Terima Kasih Telah
Berbelanja</h3>
Hasil
//jenis.php
//banyak.php
//total.php
Tidak ada komentar:
Posting Komentar