Optimisasi Perulangan Loop yang Berlebihan dalam PHP
Dalam kode berikut, seorang programmer memeriksa
apakah dalam array terdapat angka 3:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
}
}
var_dump($exists);
?>
Apa yang salah dengan solusinya? Sepertinya tidak ada
operasi berlebihan yang dilakukan dalam loop. Masalahnya,
bagaimanapun, adalah setelah ditentukan
bahwa angka 3 ada dalam array - loop
tetap berlanjut hingga akhir array.
Yang paling tidak rasional adalah jika angka 3
ditemukan di suatu tempat di awal array, sedangkan array itu sendiri
panjangnya, katakanlah, 1000 elemen.
Akibatnya akan ada seribu iterasi loop
yang tidak berguna dan berlebihan!
Tidak optimal.
Mari optimalkan kode dengan menghentikan loop pada saat yang tepat:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$exists = false;
foreach ($arr as $elem) {
if ($elem == 3) {
$exists = true;
break;
}
}
var_dump($exists);
?>
Kode berikut menghitung, berapa banyak
elemen array yang perlu dijumlahkan
agar jumlahnya menjadi lebih dari 10.
Lakukan optimisasi:
<?php
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];
$sum = 0;
$i = 1;
foreach ($arr as $elem) {
$sum += $elem;
if ($sum <= 10) {
$i++;
}
}
echo $i;
?>
Kode berikut mencetak bilangan genap dari rentang yang ditentukan. Lakukan optimisasi:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0) {
echo $i;
}
}
?>
Kode berikut mencetak bilangan
yang habis dibagi 2
dan 3 secara bersamaan. Lakukan optimisasi:
<?php
for ($i = 0; $i <= 100; $i++) {
if ($i % 2 === 0 and $i % 3 === 0) {
echo $i;
}
}
?>