sekarang kita akan membahasa lebih dalam lagi mengenai subroutine. kali ini kita akan membahasa if statement di perl
if statement
pada if statement di perl, hampir sama dengan di macro, namun tanpa embel2 call atau goto. ada beberapa jenis if statement yang bisa digunakan, diantaranya if, unless, elseif.
if
if biasa memiliki syntax "if ($flag) { do_something() }" dengan $flag merupakan variable yang dicocokan.
contoh :
sub belajar {
my $result = 0;
if ($result == 0) {
$result = 1;
}
return $result;
}
sub diatas akan memberikan $result berupa angka 1
unless
unless merupakan kebalikan if, dia hanya akan cocok jika variable yang dicocokan tidak sama dengan $flag. syntaxnya "if (!$flag) { do_something() }" menggunakan tanda seru di awal $flag.
contoh:
sub belajar {
my $result = 0;
if (!$result == 0) {
$result = 1;
}
return $result;
}
sub diatas akan memberikan $result berupa angka 0, karena flag tidak cocok dengan $result maka perintah di dalam if diabaikan
elsif
elseif merupakan if statement yang memiliki banyak flag, dan memiliki else untuk perintah terakir jika tidak ada $flag yang cocok.
contoh :
sub belajar {
my $result = 3;
if ($result == 0) {
$result = 1;
}
elsif ($result == 1) {
$result = 0;
}
else {
$result = 2;
}
return $result;
}
sub diatas akan memberikan $result berupa angka 2, karena flag di if dan di elseif tidak cocok dengan $result maka perintah di dalam if diabaikan dan yang dijalankan adalah perintah di else
evaluation
$flag di dalam if statement tidak saja melulu harus berisi comparing sederhana seperti di contoh. kita dapat mencocokan boolean atau mencocokan apakah variable tersebut kosong atau tidak
contoh :
sub belajar {
my $result = 1;
if ($result) {
$result = 0;
}
return $result;
}
sub diatas akan memberikan $result berupa angka 0. karena jika hanya ditulis $result sebagai flag, maka program akan menganggapnya sebagai boolean matching, atau hanya mencari angka 1 dan 0, dan akan cocok jika $flag bernilai 1.
sub belajar {
my $result;
if ($result) {
$result = 0;
}
else {
$result = 1
}
return $result;
}
sub diatas akan memberikan $result berupa angka 1. karena result kosong sehingga tidak cocok dengan flag, dan langsung mengerjakan perintah di else
sub belajar {
my $result = "one";
if (defined($result)) {
$result = 1;
}
return $result;
}
sub diatas akan memberikan $result berupa angka 1. karena result memilki nilai sehingga cocok dengan flag
selain operasi diatas, flag juga bisa diisi dengan perintah matematika sederhana.
contoh
sub belajar {
my $result = 1;
my $a = 4;
my $b = 5;
if ($a*$b > 10) {
$result = 0;
}
return $result;
}
sub diatas akan memberikan $result berupa angka 0. karena $a dikali $b adalah 20 dan lebih besar dari 10, maka nilainya cocok.
menggunakan tanda && dan || juga diperbolehkan di sini, sama seperti di macro.
if ($a = 1 || $b = 0) {
if ($a = 1 && $b = 0) {
if (($a = 1 || $b = 0) && $c = 1) {
if (($a = 1 || $b = 0) && ($c = 1 || $d = 0)) {
semua statement diatas boleh digunakan di subroutine.
No comments:
Post a Comment