Perhatikan contoh program tanpa perulangan di bawah ini:
# Nama File: tanpa_perulangan.pl
 
print ("1\n");
print ("2\n");
print ("3\n");
print ("4\n");
print ("5\n");
print ("6\n");
print ("7\n");
print ("8\n");
print ("9\n");
print ("10\n");
Contoh program diatas adalah program untuk menampilkan angka 1 sampai dengan 10 tanpa perulangan. Tanpa menggunakan perulangan, programmer harus menuliskan semua statement diatas sehingga source code menjadi lebih banyak dan tidak efisien. Bayangkan kalau programmer disuruh menampilkan angka 1 sampai dengan 1000000 tanpa menggunakan perulangan, saya jamin programmer akan jatuh pingsan :)
Dengan menggunakan perulangan, source code lebih pendek dan efisien. Perhatikan contoh program untuk mencetak angka 1 sampai dengan 10 dengan menggunakan konsep perulangan di bawah ini.
# Nama File: dengan_perulangan.pl
 
$x = 1;
while($x < 11){
    print($x,"\n");
    $x++;
}
Bandingkan kedua program diatas? Mana yang lebih simple dan efisien?
Ada 6 macam perulangan yang akan kita bahas pada tutorial ini, yaitu:
- while loop
- until loop
- for loop
- foreach loop
- do...while loop
- dan nested loop
Selain membahas keenam jenis perulangan diatas, kita juga akan membahas tentang kontrol perulangan, seperti:
- next statement
- last statement
- continue statement
- redo statement
- dan goto statement
while loop
While Loop akan menjalankan statement selama kondisi terpenuhi (atau bernilai true).
Di bawah ini adalah sintak dasar dari while loop:
while(condition)
{
   statement(s);
}
Contoh Progam
# Nama File: while_loop.pl
 
$x = 5;
# while loop execution
while( $x < 20 ){
   printf "Nilai dari x adalah : $x\n";
   $x = $x + 1;
}
printf "Selesai";
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
Nilai dari x adalah : 5 Nilai dari x adalah : 6 Nilai dari x adalah : 7 Nilai dari x adalah : 8 Nilai dari x adalah : 9 Nilai dari x adalah : 10 Nilai dari x adalah : 11 Nilai dari x adalah : 12 Nilai dari x adalah : 13 Nilai dari x adalah : 14 Nilai dari x adalah : 15 Nilai dari x adalah : 16 Nilai dari x adalah : 17 Nilai dari x adalah : 18 Nilai dari x adalah : 19 Selesai
until loop
Until Loop akan menjalankan statement selama kondisi terpenuhi (atau bernilai true)
Di bawah ini adalah sintak dasar dari until loop:
until(condition)
{
   statement(s);
}
Contoh Progam
# Nama File: until_loop.pl
 
$x = 5;
# while loop execution
until( $x > 20 ){
   printf "Nilai dari x adalah : $x\n";
   $x = $x + 1;
}
printf "Selesai";
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
Nilai dari x adalah : 5 Nilai dari x adalah : 6 Nilai dari x adalah : 7 Nilai dari x adalah : 8 Nilai dari x adalah : 9 Nilai dari x adalah : 10 Nilai dari x adalah : 11 Nilai dari x adalah : 12 Nilai dari x adalah : 13 Nilai dari x adalah : 14 Nilai dari x adalah : 15 Nilai dari x adalah : 16 Nilai dari x adalah : 17 Nilai dari x adalah : 18 Nilai dari x adalah : 19 Nilai dari x adalah : 20 Selesai
for loop
for loop digunakan untuk melakukan perulangan atau iterasi sampai batas atau range yang telah ditentukan.
Di bawah ini adalah sintak dasar dari for loop:
for ( init; condition; increment ){
   statement(s);
}
Contoh Progam
# Nama File: for_loop.pl
 
# for loop execution
for( $x = 5; $x < 20; $x = $x + 1 ){
    print "Nilai dari x adalah : $x\n";
}
printf "Selesai";
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
C:\>perl d:\perl\for_loop.pl Nilai dari x adalah : 5 Nilai dari x adalah : 6 Nilai dari x adalah : 7 Nilai dari x adalah : 8 Nilai dari x adalah : 9 Nilai dari x adalah : 10 Nilai dari x adalah : 11 Nilai dari x adalah : 12 Nilai dari x adalah : 13 Nilai dari x adalah : 14 Nilai dari x adalah : 15 Nilai dari x adalah : 16 Nilai dari x adalah : 17 Nilai dari x adalah : 18 Nilai dari x adalah : 19 Selesai
foreach loop
foreach loop adalah perulangan yang digunakan untuk data yang berupa list.
Di bawah ini adalah sintak dasar dari foreach loop:
foreach var (list) {
statement(s);
}
Contoh Progam
# Nama File: foreach_loop.pl
 
@list = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
# foreach loop execution
foreach $x (@list){
    print "Nilai dari x adalah: $x\n";
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\foreach_loop.pl Nilai dari x adalah: 10 Nilai dari x adalah: 20 Nilai dari x adalah: 30 Nilai dari x adalah: 40 Nilai dari x adalah: 50 Nilai dari x adalah: 60 Nilai dari x adalah: 70 Nilai dari x adalah: 80 Nilai dari x adalah: 90 Nilai dari x adalah: 100
do...while loop
Di bawah ini adalah sintak dasar dari do...while loop:
do
{
   statement(s);
}while( condition );
Contoh Progam# Nama File: dowhile_loop.pl
 
$x = 5;
# do...while loop execution
do{
   printf "Nilai dari x adalah : $x\n";
   $x = $x + 1;
}while( $x < 20 );
printf "Selesai";
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
C:\>perl d:\perl\dowhile_loop.pl Nilai dari x adalah : 5 Nilai dari x adalah : 6 Nilai dari x adalah : 7 Nilai dari x adalah : 8 Nilai dari x adalah : 9 Nilai dari x adalah : 10 Nilai dari x adalah : 11 Nilai dari x adalah : 12 Nilai dari x adalah : 13 Nilai dari x adalah : 14 Nilai dari x adalah : 15 Nilai dari x adalah : 16 Nilai dari x adalah : 17 Nilai dari x adalah : 18 Nilai dari x adalah : 19 Selesai
nested loop
nested loop (perulangan bersarang) adalah perulangan di dalam perulangan.
Di bawah ini adalah sintak dasar dari nested loop:
Sintak dasar #1 nested for loop
for ( init; condition; increment ){
   for ( init; condition; increment ){
      statement(s);
   }
   statement(s);
}
Sintak dasar #2 nested while loop
while(condition){
   while(condition){
      statement(s);
   }
   statement(s);
}
Sintak dasar #3 nested do...while loop
do{
   statement(s);
   do{
      statement(s);
   }while( condition );
}while( condition );
Contoh Progam
# Nama File: nested_loop.pl
   
$a = 0;
$b = 0;
# outer while loop
while($a < 3){
   $b = 0;
   # inner while loop
   while( $b < 3 ){
      print "Nilai dari a = $a, b = $b\n";
      $b = $b + 1;
   }
   $a = $a + 1;
   print "Nilai dari a = $a\n\n";
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
C:\>perl d:\perl\nested_loop.pl Nilai dari a = 0, b = 0 Nilai dari a = 0, b = 1 Nilai dari a = 0, b = 2 Nilai dari a = 1 Nilai dari a = 1, b = 0 Nilai dari a = 1, b = 1 Nilai dari a = 1, b = 2 Nilai dari a = 2 Nilai dari a = 2, b = 0 Nilai dari a = 2, b = 1 Nilai dari a = 2, b = 2 Nilai dari a = 3
next statement
Di bawah ini adalah sintak dari next statement:
next [ LABEL ];
Contoh Program
# Nama File: next_statement.pl
$a = 10;
while( $a < 20 ){
   if( $a == 15)
   {
       # skip the iteration.
       $a = $a + 1;
       next;
   }
   print "Nilai dari a: $a\n";
   $a = $a + 1;
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\next_statement.pl Nilai dari a: 10 Nilai dari a: 11 Nilai dari a: 12 Nilai dari a: 13 Nilai dari a: 14 Nilai dari a: 16 Nilai dari a: 17 Nilai dari a: 18 Nilai dari a: 19
Perhatikan contoh berikutnya, yaitu menggunakan sebuah label.
# Nama File: next_statement2.pl
$a = 0;
OUTER: while( $a < 4 ){
   $b = 0;
   print "Nilai dari a: $a\n";
   INNER:while ( $b < 4){
      if( $a == 2){
          $a = $a + 1;
          # jump to outer loop
          next OUTER;
      }
      $b = $b + 1;
      print "Nilai dari b : $b\n";
   }
   print "\n";
   $a = $a + 1;
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\next_statement2.pl Nilai dari a: 0 Nilai dari b : 1 Nilai dari b : 2 Nilai dari b : 3 Nilai dari b : 4 Nilai dari a: 1 Nilai dari b : 1 Nilai dari b : 2 Nilai dari b : 3 Nilai dari b : 4 Nilai dari a: 2 Nilai dari a: 3 Nilai dari b : 1 Nilai dari b : 2 Nilai dari b : 3 Nilai dari b : 4
last statement
Di bawah ini adalah sintak dasar dari last statement:
last [LABEL];Contoh Program
# Nama File: last_statement.pl
$a = 10;
while( $a < 20 ){
   if( $a == 15)
   {
       # terminate the loop.
       $a = $a + 1;
       last;
   }
   print "Nilai dari a: $a\n";
   $a = $a + 1;
}
Jika program diatas Anda jalankan maka akan menampilkan output berikut ini:C:\>perl d:\perl\last_statement.pl Nilai dari a: 10 Nilai dari a: 11 Nilai dari a: 12 Nilai dari a: 13 Nilai dari a: 14Perhatikan contoh program lainnya:
C:\>perl d:\perl\last_statement2.pl Nilai dari a: 0 Nilai dari b : 1 Nilai dari b : 2 Nilai dari b : 3 Nilai dari b : 4 Nilai dari a: 1 Nilai dari b : 1 Nilai dari b : 2 Nilai dari b : 3 Nilai dari b : 4 Nilai dari a: 2
continue statement
Di bawah ini adalah sintak dasar continue statement:
while(condition){
   statement(s);
}continue{
   statement(s);
}
atau
Contoh Program
# Nama File: continue_statement.pl
   
$a = 0;
while($a < 6){
   print "Nilai dari a = $a\n";
}continue{
   $a = $a + 1;
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\continue_statement.pl Nilai dari a = 0 Nilai dari a = 1 Nilai dari a = 2 Nilai dari a = 3 Nilai dari a = 4 Nilai dari a = 5Contoh lainnya,
# Nama File: continue_statement2.pl
   
@list = (1, 2, 3, 4, 5, 6);
foreach $a (@list){
   print "Nilai dari a = $a\n";
}continue{
   last if $a == 5;
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\continue_statement2.pl Nilai dari a = 1 Nilai dari a = 2 Nilai dari a = 3 Nilai dari a = 4 Nilai dari a = 5
redo statement
Di bawah ini adalah sintak dasar dari redo statement:
redo [LABEL]
Contoh Program
# Nama File: redo_statement.pl
   
$a = 0;
while($a < 10){
   if( $a == 5 ){
      $a = $a + 1;
      redo;
   }
   print "Nilai dari a = $a\n";
}continue{
   $a = $a + 1;
}
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\redo_statement.pl Nilai dari a = 0 Nilai dari a = 1 Nilai dari a = 2 Nilai dari a = 3 Nilai dari a = 4 Nilai dari a = 6 Nilai dari a = 7 Nilai dari a = 8 Nilai dari a = 9
goto statement
Di bawah ini adalah sintak dasar dari goto statement:
goto LABEL or goto EXPR or goto &NAME
Contoh Program
# Nama File: goto_statement.pl
   
$a = 10;
LOOP:do
{
    if( $a == 15){
       # skip the iteration.
       $a = $a + 1;
       # use goto LABEL form
       goto LOOP;
    }
    print "Nilai dari a = $a\n";
    $a = $a + 1;
}while( $a < 20 );
Jika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:C:\>perl d:\perl\goto_statement.pl Nilai dari a = 10 Nilai dari a = 11 Nilai dari a = 12 Nilai dari a = 13 Nilai dari a = 14 Nilai dari a = 16 Nilai dari a = 17 Nilai dari a = 18 Nilai dari a = 19
Sekian tutorial singkat tentang Perulangan Pada Perl. Semoga bermanfaat & Happy Learning Perl Programming,
Salam,
Nursalim
 

EmoticonEmoticon