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