Looping & Nestedloop pada PHP - Praktikum ke 12



 Assalamu'alaikum warahmatullahi wabarakatuh.

Halo teman-teman semuanya! Apa kabar? Semoga dalam kondisi dan keadaan yang prima dan baik-baik saja ya, sekarang di Indonesia terutama Jakarta keadaannya lagi sedang kurang baik, anda-anda sekalian jangan sampe ngikutin kaya mereka yah tetap jadi anak baik yang suka ngoding >//< teehee!

Perkenalkan kembali lagi bersama saya Ilham, saya dari kelas XI RPL 2 yang sekarang dalam artikel kali ini, kita akan membahas tentang "Loop & Nestedloop pada PHP",  tanpa berlama-lama lagi mari langsung saja kita ke bahasan materinya!


Loop dan Nestedloop

Sebelum masuk ke program dan codingan, sebaiknya kita harus mengetahui terlebih dahulu apa itu loop dan nestedloop itu agar lebih mudah dalam nanti proses penulisan syntax/codingannya.


Loop (Pengulangan)

Pertama Loop, loop sendiri memiliki pengertian yang berarti pengulangan, dengan memakai konsep loop kita dapat meringkas codingan kita namun dapat memiliki hasil yang sama. 

Loop sendiri dipakai hampir pada semua bahasa pemrograman yang mengandung algorithm

Terdapat bermacam-macam jenis dalam loop, yang akan kita bahas kali ini yakni ada 3, yaitu:
  1. For Loop
  2. While Loop
  3. Studi Kasus
3 hal tersebut memiliki fungsi yang sama yakni pengulangan namun perilaku dan penulisannya itu berbeda. 

Berikut contoh pengimplementasian dan studi kasusnya:

For loop

Untuk bentuk umum dari for-loop:



Source code /codingannya:
 <?php 

for ($i=1; $i <= 10; $i++) { 
	echo "Hello world ke-$i <br>";
}

?>


Catatan: 
Dilakukan dengan cara menentukan variabel iterasi, dimulai dari berapa, batas pengulangan sampai mana, dan menentukan jenisnya (increment++ atau decrement--) serta apa aksi yang dilakukannya.

Studi kasus 1 - Pengimplementasian For Loop

Studi kasus yang berbentuk dengan memasukan jumlah data yang akan dimasukan yang nantinya setelah itu akan muncul baris yang akan diinputkan data.



Source code /codingannya:
<?php $index = 0; ?>
 
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Form Data Input Siswa</title>
</head>
<body><center>
    <h2>Form Data Input Siswa</h2>
 
    <form action="" method="GET">
        <input type="number" name="index">
        <button type="submit" name="kirim">kirim!</button>
    </form> <br> 
 
    <table border="1" cellpadding="5" cellspacing="0">
        <tr>
            <th>NO</th>
            <th>Nama</th>
            <th>NIS</th>
            <th>Alamat</th>
        </tr>
        <tbody>
            <?php if ( isset($_GET['kirim']) ) : ?>
                <?php  $index = $_GET["index"]; ?>
            <?php endif ?>
            
            <?php $baris = 0; ?>
            <?php if( $index > 0 ) : ?>
                <?php for ( $i = 0; $i < $index ; $i++ ) : ?>
                    <?php  $baris += 1; ?>  
                        
                        <tr>
                            <td style="text-align: center;"><?= $baris ?></td>
                            <td></td>
                            <td></td>
                            <td></td>
                        </tr>
                        
                <?php endfor ?>
                
            <?php endif ?>
        </tbody>
    </center></table>
</body>
</html>

Studi kasus 2 - Pengimplementasian For Loop

Studi kasus yang berbentuk dengan memasukan jumlah data yang akan dimasukan yang nantinya setelah itu akan muncul baris yang akan diinputkan data.



Source code /codingannya:
<!DOCTYPE html>
<html>
<head>
	<title>Daftar Jurusan Siswa</title>
</head>
<body><center>
	<h1>Daftar Jurusan Siswa</h1>
	<form action="" method="post">
		<label for="jumlah">Masukan jumlah siswa: </label>
		<input type="text" name="jumlah" id="jumlah" required="">
		<button type="submit" name="kirim">Kirim!</button>
		<br><br>
	</form>
	<?php if ( isset( $_POST['jumlah'] )): ?>		
		<?php $jumlah = $_POST['jumlah']; ?>
			<?php for($i = 1; $i <= $jumlah; $i++) : ?>

				<label for='nama'>Nama : </label>
				<input type='text' name='nama' id='nama'>
				
				<label for='<?= 'jurusan$i' ?>'>Jurusan : </label>
				<input type='radio' name='jurusan<?= $i ?>' id='rpl' value='rpl'>
				<label for='rpl'>RPL</label>

				<input type='radio' name='jurusan<?= $i ?>' id='tkj' value='tkj'>
				<label for='tkj'>TKJ</label>

				<input type='radio' name='jurusan<?= $i ?>' id='mm' value='mm'>
				<label for='mm'>MM</label>

				<input type='radio' name='jurusan<?= $i ?>' id='av' value='av'>
				<label for='av'>AV</label>

				<input type='radio' name='jurusan<?= $i ?>' id='titl' value='titl'>
				<label for='titl'>TITL</label>

				<input type='radio' name='jurusan<?= $i ?>' id='toi' value='toi'>
				<label for='toi'>TOI</label> <br>				


			<?php endfor ?>
		<?php endif ?>

</center></body>
</html>

While loop

Untuk bentuk umum dari while:



Source code /codingannya:
<?php  

$i = 1;
while ($i <= 10) {
	echo "Hello world ke-$i <br>";
	$i++;
}

?>

Catatan:
Dilakukan dengan cara menentukan terlebih dahulu variabel iterasi diluar scope while, menentukan batas pengulangan pada kurung dalam while, dan menentukan jenisnya (increment++ atau decrement--) serta apa aksi yang dilakukannya.

Studi kasus 3 - Pengimplementasian While Loop

Studi kasus yang berbentuk dengan menerima input dari user dan terdapat opsi pilihan huruf vokal yang bertujuan untuk mencari dan menghitung jumlah huruf vokal (x) yang terkandung dalam data yang diinputkan.



Source code /codingannya:
<!DOCTYPE html>
<html>
<head>
	<title>Menghitung Jumlah Kata</title>
</head>
<body><center><form action="" method="post">
	<h1>Hitung Jumlah Huruf</h1>
	<label for="kalimat">Masukan Kalimat : </label>
	<input type="text" name="kalimat" id="kalimat">

	<input type="radio" name="huruf" id="a" value="a">
	<label for="a">a</label>

	<input type="radio" name="huruf" id="i" value="i">
	<label for="i">i</label>

	<input type="radio" name="huruf" id="u" value="u">
	<label for="u">u</label>

	<input type="radio" name="huruf" id="e" value="e">
	<label for="e">e</label>

	<input type="radio" name="huruf" id="o" value="o">
	<label for="o">o</label>

	<button type="submit" name="hitung">Hitung!</button> <br><br>

	<?php $jumlah = 0; ?>
	<?php if ( isset($_POST['hitung']) ) : ?>
		<?php $kalimat = $_POST['kalimat']; ?>
		<?php $huruf = $_POST['huruf']; ?>
		<?php $kata = str_split($kalimat); ?>
		<?php $panjang = strlen($kalimat); ?>
		<?php $w = 0; ?>
		<?php while ( $w <= $panjang - 1 ) : ?>
			<?php  if ( $kata[$w] == $huruf ) : ?>
				<?php $jumlah += 1; ?>
			<?php endif ?>
			<?php $w++; ?>
		<?php endwhile ?>
		<?= "kalimat: '$kalimat' memiliki panjang text: $panjang <br>"?>
		<?= "kalimat: '$kalimat' mengandung huruf '$huruf' sebanyak: $jumlah"?>
	<?php endif ?>

</form></center></body>
</html>

Nestedloop (Pengulangan bersarang)

Kedua Nestedloop, nestedloop merupakan pengembangan dari loop yang telah kita bahas diatas. 

Nestedloop memiliki arti yakni loop bercabang, yang artinya kita disini memiliki loop didalam loop, yang bertujuan meringkas juga meringkas konsep loop yang dipakai dan juga untuk tujuan-tujuan lainnya.

Pola yang menggambarkan kerangka dari Nestedloop:


Penjelasan: Loop 1 membungkus Loop 2, dan Loop 2 membungkus Loop ke-n

Agar lebih paham mari langsung saja ke pengimplementasian beserta studi kasus yang ada! Let's Go!

Berikut contoh sederhana dari Nestedlooping:


Source code/codingannya:
<?php  

for ($i=0; $i <= 5; $i++) { 
	for ($j=0; $j <= $i ; $j++) { 
		echo "X  _";
	}
	echo "<br>";
}

?>

Studi kasus 1 - Pengimplementasian Nestedloop

Studi kasus yang berbentuk dengan menerima input dari user untuk jumlah balok dan terdapat opsi pilihan warna balok yang bertujuan untuk menyusun balok  berbentuk segitiga sesuai data yang diinputkan.




Source code /codingannya:
<!DOCTYPE html>
<html>
<head>
	<title>Tangga Berwarna</title>
	<style>
		.container { margin: 20px auto; width: 700px; }
		.title { text-align: center; margin-bottom: 40px; }
		.labmain { 
			width: 170px; 
			margin-left: 70px;
			margin-right: 5px;
			text-align: left;
			display: inline-block;
		 }

		 input[type="number"] { width: 250px;  }

		 button {
		 	margin: 15px 300px 2px;
		 	width: 100px;
		 	display: inline-block;
		 }

		 .result {
		 	width: 700px; margin: 5px 450px;
		 }

		 .kotak {
		 	width: 40px; height: 40px; background-color: lightskyblue; display: inline-block; margin: 5px;
		 	border: 1px solid black;
		 }

		 label { margin-bottom: 10px; }
	</style>
</head>
<body>
	<div class="container">
		<h1 class="title">Tangga Berwarna</h1>
	<form action="" method="post"> 
		<label class="labmain" for="jumlah">Jumlah Anak Tangga </label>
		<input type="number" name="jumlah" id="jumlah"> <br>

		<label class="labmain" for="warna">Warna </label>

		<input type="radio" name="warna" id="lightgreen" value="lightgreen">
		<label for="lightgreen">Hijau</label>

		<input type="radio" name="warna" id="violet" value="violet">
		<label for="violet">Ungu</label>

		<input type="radio" name="warna" id="yellow" value="yellow">
		<label for="yellow">Kuning</label>

		<input type="radio" name="warna" id="lightskyblue" value="lightskyblue">
		<label for="lightskyblue">Biru</label>

		<input type="radio" name="warna" id="red" value="red">
		<label for="red">Merah</label> <br>

		<button type="submit" name="submit">Buat Tangga!</button>

	</form>
	</div>

	<div class="result">
		<?php if ( isset($_POST['submit'] )) : ?>
			<?php $jumlah = $_POST['jumlah']; ?>
			<?php $warna = $_POST['warna']; ?>
			<?php for ($i = 1; $i <= $jumlah; $i++) : ?>
				<?php for ($j = 1; $j <= $i; $j++) : ?>
					<div class="kotak" style="background-color: <?= $warna ?>;"></div>
				<?php endfor ?>
				<?= "<br>" ?>
			<?php endfor ?>
		<?php endif ?>
	</div>
	
</body>
</html>

Array

Array (atau larik dalam bahasa indonesia) bukanlah tipe data dasar seperti integer atau boolenArray adalah sebuah tipe data bentukan yang terdiri dari kumpulan tipe data lainnya. Menggunakan array akan memudahkan dalam membuat kelompok data, serta menghemat penulisan dan penggunaan variabel.

Array sendiri terbagi menjadi 2 jenis dalam bentuknya dan isinya yakni ada array yang ditulis sebagai array 1 dimensi dan juga ada array 2 dimensi.

Berikut merupakan penjelasan lebih lanjutnya mengenai kedua itu

Array 1 Dimensi

Array 1 dimensi merupakan array dengan ruang elemen atau box hanya terdapat satu jadi untuk pengambilan atau pengaksesan nilai elemen itu dapat dilkaukan dengan menuliskan setiap index yang ada dalam array yang biasanya memiliki rentang dari index 0..n.

Berikut merupakan contoh dari penulisan dan pengimplementasian array 1 dimensi:



Source code/codingannya:
<?php  

$caraLama = array('DataZero', 'DataOne', 'DataTwo', 'DataThree', 'DataFour');
// Cara memanggilnya nilai dari tiap elemen adalah sama
echo "Besar dari array caraLama: ". count($caraLama) . '<br> <br>';

echo 'Merupakan data index ke-0 : ' . $caraLama[0] . '<br>';
echo 'Merupakan data index ke-1 : ' . $caraLama[1] . '<br>';
echo 'Merupakan data index ke-2 : ' . $caraLama[2] . '<br>';
echo 'Merupakan data index ke-3 : ' . $caraLama[3] . '<br>';
echo 'Merupakan data index ke-4 : ' . $caraLama[4] . '<br>';

echo "<br> <hr> <br>";
?>
<?php  

$caraBaru = ['DataZero', 'DataOne', 'DataTwo', 'DataThree', 'DataFour'];
// Cara memanggilnya nilai dari tiap elemen adalah sama
echo "Besar dari array caraBaru: ". count($caraBaru) . '<br> <br>';

echo 'Merupakan data index ke-0 : ' . $caraBaru[0] . '<br>';
echo 'Merupakan data index ke-1 : ' . $caraBaru[1] . '<br>';
echo 'Merupakan data index ke-2 : ' . $caraBaru[2] . '<br>';
echo 'Merupakan data index ke-3 : ' . $caraBaru[3] . '<br>';
echo 'Merupakan data index ke-4 : ' . $caraBaru[4] . '<br>';

?>

Array 2 Dimensi

Array 2 dimensi merupakan array dengan ruang elemen atau box berlebih dibanding array 1 dimensi sebelumnya, box atau kurung siku dalam array ini dapat memiliki 2 atau lebih atau bisa juga disebut dengan array didalam array, metode/cara pengaksesannya juga dapat dilakukan dengan menyebutkan index box pertama dan box seterusnya.

Berikut merupakan contoh dari penulisan dan pengimplementasian array 1 dimensi:


Source code/codingannya
<?php 

$caraLama = array(array('Data ke-[0][0]', 'Data ke-[0][1]'), array('Data ke-[1][0]', 'Data ke-[1][1]'), array('Data ke-[2][0]', 'Data ke-[2][1]'));

// Cara memanggilnya juga sama
echo "Besar dari array caraLama: ". count($caraLama) . '<br> <br>';

echo 'Merupakan data index ke-[0][0] : ' . $caraLama[0][0] . '<br>';
echo 'Merupakan data index ke-[0][1] : ' . $caraLama[0][1] . '<br> <br>';

echo 'Merupakan data index ke-[1][0] : ' . $caraLama[1][0] . '<br>';
echo 'Merupakan data index ke-[1][1] : ' . $caraLama[1][1] . '<br> <br>';

echo 'Merupakan data index ke-[2][0] : ' . $caraLama[2][0] . '<br>';
echo 'Merupakan data index ke-[2][1] : ' . $caraLama[2][1] . '<br>';

echo "<br> <hr> <br>";

?>
<?php 

$caraBaru = [ 

			['Data ke-[0][0]', 'Data ke-[0][1]'], 
			['Data ke-[1][0]', 'Data ke-[1][1]'], 
			['Data ke-[2][0]', 'Data ke-[2][1]']

];

// Cara memanggilnya juga sama
echo "Besar dari array caraBaru: ". count($caraBaru) . '<br> <br>';

echo 'Merupakan data index ke-[0][0] : ' . $caraBaru[0][0] . '<br>';
echo 'Merupakan data index ke-[0][1] : ' . $caraBaru[0][1] . '<br> <br>';

echo 'Merupakan data index ke-[1][0] : ' . $caraBaru[1][0] . '<br>';
echo 'Merupakan data index ke-[1][1] : ' . $caraBaru[1][1] . '<br> <br>';

echo 'Merupakan data index ke-[2][0] : ' . $caraBaru[2][0] . '<br>';
echo 'Merupakan data index ke-[2][1] : ' . $caraBaru[2][1] . '<br> <br>';

?>

Studi Kasus Array

Merupakan studi kasus yakni program untuk menampilkan berbagai macam kotak bernomor dan memiliki warna dengan memanfaatkan perulangan yang telah kita pelajari sebelumnya dan juga array

Berikut merupakan contoh dari penulisan dan pengimplementasian dari studi kasusnya:


Source code/codingannya
<?php 

$numbers = [ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 ];

?>

<!DOCTYPE html>
<html>
<head>
	<title>Studi Kasus Array</title>
	<style>
		.kotak {
			width: 70px; height: 70px;
			background-color: lightblue;
			font-size: 25px; text-align: center; line-height: 70px;
			margin: 5px; float: left;
		}	

		.foreach { background-color: lightgreen; }

		.clear { clear: both; }
	</style>
</head>
<body>
	<!-- Pengulangan forloop biasa -->
	<?php for ( $i = 0; $i < count($numbers); $i++ ) : ?>
		<div class="kotak"><?= $numbers[$i]; ?></div>
	<?php endfor ?>

	<div class="clear"></div>
	<!-- Versi foreach (Pengulangan khusus array) -->
	<?php  foreach ( $numbers as $number ) : ?>
		<div class="kotak foreach"><?= $number ?></div>
	<?php endforeach ?>
</body>
</html>

Mungkin cukup sekian materi pengelolaan struktur kontrol dan percabangan pada PHP-nya. Cukup singkat materinya dimulai dari pengenalan hingga pengimplementasiannya. Semoga sobat-sobat codingers paham, mengerti dan menguasainya. 

Mohon maaf jika terdapat tutur kata yang tidak berkenan dihati anda. Mohon maaf atas semua kesalahan yang telah saya perbuat, tolong berikan koreksi mengenai bagian mana yang salah/kurang pas dalam postingan ini, untuk pengembangan lebih baik kedepannya.

Sekian, saya ucapkan terimakasih banyak atas waktu yang telah diluangkan, saya ucapkan kembali mohon maaf atas segalanya kesalahan. 

Wabilahiltaufik walhidayah,
Wassalamu'alaikum warahmatullahi wabarakatuh
Keep Coding Stay Awesome

0 Response to "Looping & Nestedloop pada PHP - Praktikum ke 12"

Post a Comment

Postingan Terbaru

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel