Minggu, 31 Maret 2019

Array


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