Perulangan dengan Increment dan Decrement dalam PHP

Saat kita ingin menampilkan output yang sama berulang-ulang apakah kita perlu mengulang-ulang penulisannya dengan baris sebanyak outputnya? Atau mungkin kita perlu menyimpannya dalam string sebagai tulisan yang sangat panjang? Jawabannya, dalam bahasa pemrograman apapun itu tidak perlu dilakukan karena sudah ada "perulangan".

Dengan perulangan, kita bisa mempersingkat penulisan statement yang berulang-ulang. Perulangan tidak ditujukan untuk mengulang pola yang sama, tetapi perulangan ditujukan untuk "mengulang statement yang sama". Walaupun statement-nya sama, perulangan bisa menampilkan nilai dan data yang berbeda-beda jika kita menampilkan variabel yang nilainya diubah terus menerus saat statement diulang. Untuk lebih jelasnya, perhatikan contoh di bawah ini!

<?PHP
    $i=0;
 
    echo($i."<BR>");
    $i++;
?>

Contoh di atas hanya menampilkan nilai awal dari variabel $i. Selanjutnya, kita akan coba mengulang dua baris terakhir dari scriptnya sebanyak lima kali. Seharusnya, hasilnya bukan mengulang nilai awal dari $i, tapi hasilnya akan menampilkan nilai yang bertambah karena adanya operator decrement(++).

<?PHP
    $i=0;
    
    //mulai ulang di sini
    echo($i."<BR>");
    $i++;
   
    echo($i."<BR>");
    $i++;

    echo($i."<BR>");
    $i++;

    echo($i."<BR>");
    $i++;

    echo($i."<BR>");
    $i++;
?>
Pertanyaannya, apakah hasilnya adalah menampilkan nilai variabel $i secara berulang ulang? Hasilnya memang akan menampilkan nilai $i adalah nilai yang ditampilkan beberapa kali, tapi, setiap kali nilai $i ditampilkan, nilai akan berubah. Operator increment(++) akan menambah nilai variabel dengan satu. Lawan dari operator increment(++) adalah decrement(--). Operator decrement(--) akan mengurangi nilai variabel dengan satu.

<?PHP
    $i=0;
    
    //mulai ulang di sini
    echo($i."<BR>");
    $i--;

    echo($i."<BR>");
    $i--;

    echo($i."<BR>");
    $i--;

    echo($i."<BR>");
    $i--;

    echo($i."<BR>");
    $i--;
?>

Pengulangan seperti pada script di atas, bisa dipersingkat dengan perulangan seperti while, for, dan do while. Seperti percabangan, perulangan umumnya membutuhkan nilai awal, kondisi, dan juga perubahan nilai variabel. Berikut ini adalah contoh perulangan yang menggunakan while dan increment.

<?PHP
    $i=0;
    while($i<5){
        echo($i."<BR>");
        $i++;

    }

?>

Pada contoh script di atas, while menggunakan nilai $i sebagai syarat, dan hanya akan melakukan perulangan saat nilai $i kurang dari 5. Statement-statement yang digunakan dalam perulangan perlu dijadikan compound statement dengan tanda kurung kurawal jika ada lebih dari satu statement dalam perulangan. Perulangan perlu operator untuk mengubah nilai variabel yang dijadikan syarat karena tanpa perubahan nilai, syarat tidak akan pernah terpenuhi sehingga terjadi "infinite loop".

Perulangan dengan while bisa diubah menjadi perulangan dengan for dengan memindah beberapa bagian script sehingga jadi seperti berikut ini.

<?PHP
    for($i=0;$i<5;$i++){
        echo($i."<BR>");

    }
?>

Selain itu, ada juga perulangan dengan do while yang hampir sama dengan while. Bedanya ada di pengecekan kondisinya. Perulangan dengan do while akan selalu mengeksekusi statement di dalamnya minimal sebanyak satu kali. Jika kalian menggunakan while atau for, perulangan tidak akan menampilkan apapun jika syaratnya tidak terpenuhi sejak awal.

<?PHP
    $i=0;
    do{
        echo($i."<BR>");
        $i++;

    }while($i<5);
?>

Sebenarnya ada satu perulangan lagi yaitu foreach, tapi kita tidak akan membahasnya di sini. Kita akan membahasnya saat kita membahas tentang array karena foreach dikhususkan untuk menampilkan isi array.

Selain menggunakan perulangan untuk mengulang satu baris atau menampilkan nilai secara berurutan, kita juga bisa menempatkan perulangan sebagai bagian dari perulangan lainnya. Perulangan yang memiliki perulangan lainnya di dalamnya harus menggunakan variabel yang berbeda dengan perulangan yang berada di dalamnya. Misalnya :

<?PHP
    for($i=0;$i<5;$i++){
        for($j=0;$j<5;$j++)echo($i);

        echo("<BR>");

    }
?>

Coba lihat hasilnya!