sekarang kita akan membahas looping di dalam subroutine. looping di perl yang akan dibahas disini adalah while, for, dan foreach.
while
while adalah perintah untuk mengeksekusi serangkaian perintah selama condition yang diberikan memenuhi sayarat, dan akan langsung berhenti begitu conditionnya tidak memenuhi syarat. syntax while cukup sederhana, yaitu "while (expression) {"
contoh :
sub belajar {
my $i = 0;
while ($i < 10) {
$i++
}
return $i;
}
atau
sub belajar {
my $i = 0;
while ($i++ < 10) {
}
return $i;
}
sub diatas akan terus menerus menambahkan angka 1 pada variable i hingga $i = 10, dan akan mereturn angka 10.
infinite loop
kita juga bisa membuat loop yang infinite atau tidak berujung dengan langsung mengisi kondisi di while sebagai 1 atau pada boolean berarti true.
contoh :
sub belajar {
my $i = 0;
while (1) {
$i++
}
return $i;
}
sub diatas akan terus menambahkan $i dan tidak akan berhenti melakukannya kecual program kita matikan. karena kondisi selalu true.
jika ingin menghindari infinite kita juga bisa menuliskan kondisi terakir dengan syntax "last if $condition"
contoh :
sub belajar {
my $i = 0;
while (1) {
last if $i == 10;
$i++
}
return $i;
}
sub diatas akan terus menerus menambahkan angka 1 pada variable i hingga $i = 10, dan akan mereturn angka 10.
while dengan hash
kita juga bisa memasukan hash sebagai condition pada while, agar conditionnya terus berubah2 sesuai hash.
contoh :
sub belajar {
my %hash = (1 => "arcbishop",2 => "shura",3 => "runeknight");
while (my $i = each %hash) {
$hash{$i} = $i*10;
}
}
pada sub diatas, nilai %hash akan berubah menjadi (1 => 10,2 => 20,3 => 30)
for
for dapat dikatakan merupakan while yang ringkas, dia melakukan loop namun dengan smua condition dan counter yang dituliskan didalamnya. syntaxnya "for(initialization; test; re-initialization)" dengan initialization merupakan variable awal yang akan dipakai, test adalah kondisi yang akan dicocokan, dan reinitialization adalah perubahan variable yang dilakukan.
contoh :
sub belajar {
for ($i = 10; $i > 0; $i--) {
my $result = $i*10;
}
return $result;
}
sub diatas akan terus menerus mengurangi angka 1 pada variable i hingga $i = 0, dan akan mereturn angka 10.
foreach
foreach adalah loop yang berguna untuk membaca array satu persatu dan mencocokannya. syntaxnya "foreach $var(@array)"
contoh :
sub belajar {
my $min = 999;
my @array = (1, 2, 3, 4, 5)
foreach $num (@array) { *tiap element array akan dimasukan ke variable $num tiap sekali perintah
$min = $num if $min > $num; *$min akan berubah menjadi $num jika $min lebih besar dari $num
}
return $min;
}
sub diatas akan me return angka 1 yang merupakan angka terkecil pada @array.
No comments:
Post a Comment