Perulangan Pada Perl

Pada tutorial kali ini, kita akan membahas lebih detail tentang Perulangan Pada Perl. Perulangan pada bahasa pemrograman digunakan untuk menjalankan program berkali-kali.

Perulangan Pada Perl


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: 14

Perhatikan 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 = 5

Contoh 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

Share this

Related Posts

Previous
Next Post »