Belajar Web

Belajar Web: September 2012

Archive for September 2012

Looping Pada PHP

Posted by Gora Santika


Sumber Gambar : upload.wikimedia.org

Selamat menikmati akhir pekan. Siang ini saya hendak membahas mengenai perulangan atau biasa disebut Looping pada PHP.

Jika anda bertanya apa itu looping, maka saya punya sedikit gambaran. Ketika anda diperintah untuk membuat program yang menampilkan 2 baris tulisan "Halo Dunia", mungkin sebagian dari anda akan mengambil langkah konvensional yaitu copas (copy-paste). Jika hanya 2 baris, mungkin bukan sebuah masalah. Namun bagaimana jika jumlah baris yang diminta adalah 1000 baris? Apakah anda akan melakukan copy-paste sebanyak itu?

Jika anda mengaku sebagai seorang programer dan anda memilih copy-paste untuk kasus di atas, maka ada 3 kemungkinan:

  1. Anda belum mengerti kegunaan looping
  2. Anda programer kurang kerjaan
  3. Anda programer gila

Bagi anda yang belum mengerti kegunaan looping, silakan lanjutkan membaca. Dan bagi 2 pilihan terakhir, silakan lanjutkan kekurang-kerjaan anda. hehe :P

Oke, secara sederhana looping dalam istilah pemrograman berarti proses mengulang sebuah / sekelompok statement pemrograman sampai tercapainya kondisi yang diinginkan." Dalam kasus tersebut di atas, kondisi yang diinginkan adalah tercetaknya 1000 baris kalimat "Halo Dunia".

Dalam dunia PHP, ada beberapa cara untuk melakukan looping. Dua di antaranya adalah dengan menggunakan perintah For dan While.


FOR

Bentuk umum dari perintah ini adalah:

for(kondisi)
{
 Statement 1
 Statement 2
 ...
}

Jika diterjemahkan dalam bahasa manusia, perintah tersebut berbunyi: "Dengan (kondisi) kerjakan Statement 1, Statement 2, ...".

Cara menentukan kondisi adalah sebagai berikut:

for($i=0; $i < 10; $i++)
{ Statement }

Jika diterjemahkan dalam bahasa manusia, perintah tersebut berbunyi: "Dengan i bernilai 0 dan i kurang dari 10, naikkan nilai i kemudian kerjakan Statement".

Penjelasan:
$i adalah variable iterasi yang berperan dalam penentuan kondisi.
Sedangkan $i < 10 menandakan variable i hanya dapat menampung nilai kurang dari 10 (9, 8, 7, ...).
Kemudian $i++ berfungsi untuk menaikkan nilai i. $i++ sama artinya dengan $i = $i + 1.
Ketika fungsi ini berjalan, variable iterasi akan terus bertambah dari 0 menjadi 1 dan seterusnya. Ketika nilai $i menjadi 9 dan kemudian bertambah menjadi 10, looping berhenti karena 10 sudah berada di luar jangkauan tampung $i. Hasil dari looping di atas, Statement akan di ulang sebanyak 10 kali.

// mencetak "Halo Dunia" 5 kali
for($i=0; $i < 5; $i++)
{
 echo "Halo Dunia";
}

Dengan demikian, pertanyaan untuk membuat 1000 baris kalimat "Halo Dunia" sudah terjawab menggunakan FOR statement.

FOR statement juga dapat menghitung mundur variable iterasi:

// mencetak "Halo Dunia" 5 kali
for($i=5; $i > 0; $i--)
{
 echo "Halo Dunia";
}

Sama seperti sebelumnya, hanya variable iterasi berkurang dari 5 menjadi 4 dan seterusnya. Ketika nilai $i = 1 dan kemudian berkurang menjadi 0, looping berhenti karena 0 sudah berada di luar jangkauan tampung $i. $i-- sama artinya dengan $i = $i - 1;


WHILE

Fungsi perintah ini sama dengan FOR, yang membedakan hanya cara penulisannya.

while(kondisi)
{
 Statement 1
 Statement 2
 ...
}

Penentuan kondisi dapat dilakukan dengan:

// nilai awal variable iterasi
$i = 0;

while($i < 10)
{
 echo "Halo Dunia";
 $i++;
}

Perbedaan While dengan For adalah letak penulisan nilai awal $i dan $i++. Namun tidak hanya berhenti di situ, While dapat menambahkan variable iterasi sesuai keinginan kita.

$i = 1;
while($i < 10)
{
 echo "Halo Dunia";
 $i = $i * 2;
}

Penjelasan:

  1. Pada iterasi pertama, $i bernilai 1. Karena 1 masih berada dalam jangkauan $i (kurang dari 10), maka While mengerjakan statement yang dimilikinya, yaitu mencetak "Halo Dunia" dan mengalikan nilai $i dua kali.
  2. Pada iterasi kedua, nilai $i telah menjadi 2. Karena 2 < 10 maka program mencetak "Halo Dunia" dan mengalikan nilai $i dua kali.
  3. Pada iterasi ketiga, nilai $i telah berlipat ganda menjadi 4. Karena 4 < 10 maka program mencetak "Halo Dunia" dan mengalikan nilai $i dua kali.
  4. Pada iterasi keempat, nilai $i menjadi 8 dan program mencetak "Halo Dunia" dan mengalikan nilai $i dua kali.
  5. Pada iterasi kelima, nilai $i = 16. Maka program berhenti mengulang.
Pada akhirnya "Halo Dunia" tercetak 4 kali.

Satu hal penting dalam penggunaan looping. Perhatikan dengan benar kondisi yang anda berikan. Karena jika tidak, dapat terjadi kemungkinan program melakukan infinite loop.
// CONTOH INFINITE LOOP
$i = 0;
while($i < 10)
{
 echo "Halo Dunia";
 $i = $i * 2;
}

Looping tersebut tidak akan berhenti SELAMANYA. Hal tersebut dikarenakan nilai awal variable iterasi = 0. Kemudian proses penambahan dengan mengalikan $i dua kali tidak akan mengubah nilai $i karena 0 * 2 akan selamanya menghasilkan 0.

[Semoga Bermanfaat]