Print Pyramid dengan PHP "Pattern Printing"

PHP

Tulisan ini membahas implementasi "pattern printing" pada PHP.

Dulu waktu saya pertama kuliah di sepester awal diminta membuat looping untuk membuat pola seperti segitiga, dll. Itung-itung refresh materi yang sebenarnya sangat banyak membantu di aktifitas code sehari-hari makanya saya menulis artikel ini.

function piramid($n) 
{ 
    for ($i = 0; $i < $n; $i++) 
    { 
        for($j = 0; $j <= $i; $j++ ) 
        {
            echo "* "; 
        }
        echo "\n"; 
    } 
} 
  
// Tampilkan hasil
$n = 5; 
piramid($n);

contoh diatas kita membuat function dengan nama piramid, yang didalamnya terdapat 2 looping dan mencetak bintang (*). Hasil script diatas jika dieksekusi akan seperti berikut:

* 
* * 
* * * 
* * * * 
* * * * *

Kita modifikasi lagi ya, kita putas 180derajat.

function piramid2($n) 
{ 
    for ($i = 1; $i <= $n; $i++) { 
        for ($j = 1; $j <= $n; $j++) { 
            if($j<=($n-$i)){ 
                echo " "." "; 
                  
            }else { 
                echo "* "; 
            } 
              
        } 
        echo PHP_EOL; 
    }  
} 
  
// Tampilkan hasil
$n = 5; 
piramid2($n); 

contoh 2 kita tambahkan kondisi pada perulangan ke 2, dengan logika "jika nilai $j kurang dari atau sama dengan hasil dari nilai $n dikurang nilai $i maka cetak spasi, jika tidak cetak bintang (*). Output dari script diatas adalah:

        * 
      * * 
    * * * 
  * * * * 
* * * * *

Selanjutnya kita buat segitiga ya. Scriptnya seperti berikut:

function triangle($n) 
{
    $k = 2 * $n - 2;
    for ($i = 0; $i < $n; $i++) 
    {
        for ($j = 0; $j < $k; $j++) 
            echo " "; 
        $k = $k - 1;
        for ($j = 0; $j <= $i; $j++ ) 
        { 
            echo "* "; 
        }
        echo "\n"; 
    } 
} 
  
// Tampilkan hasil 
$n = 5; 
triangle($n); 

hasilnya akan seperti ini:

    * 
   * * 
  * * * 
 * * * * 
* * * * *

Yup itu dulu ya, nanti kita sambung lagi dengan materi yang lain. Semoga bermanfaat


Artikel Terkait

;