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.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
@list = (10, 20, 30, 40, 50, 60, 70, 80, 90, 100);
# foreach loop execution
foreach $x (@list){
print "Nilai dari x adalah: $x\n";
}
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:
doContoh Progam
{
statement(s);
}while( condition );
# 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.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
$a = 10;
while( $a < 20 ){
if( $a == 15)
{
# skip the iteration.
$a = $a + 1;
next;
}
print "Nilai dari a: $a\n";
$a = $a + 1;
}
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.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
$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;
}
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.plJika program diatas Anda jalankan maka akan menampilkan output berikut ini:
$a = 10;
while( $a < 20 ){
if( $a == 15)
{
# terminate the loop.
$a = $a + 1;
last;
}
print "Nilai dari a: $a\n";
$a = $a + 1;
}
C:\>perl d:\perl\last_statement.plPerhatikan contoh program lainnya:
Nilai dari a: 10
Nilai dari a: 11
Nilai dari a: 12
Nilai dari a: 13
Nilai dari a: 14
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.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
$a = 0;
while($a < 6){
print "Nilai dari a = $a\n";
}continue{
$a = $a + 1;
}
C:\>perl d:\perl\continue_statement.plContoh lainnya,
Nilai dari a = 0
Nilai dari a = 1
Nilai dari a = 2
Nilai dari a = 3
Nilai dari a = 4
Nilai dari a = 5
# Nama File: continue_statement2.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
@list = (1, 2, 3, 4, 5, 6);
foreach $a (@list){
print "Nilai dari a = $a\n";
}continue{
last if $a == 5;
}
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.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
$a = 0;
while($a < 10){
if( $a == 5 ){
$a = $a + 1;
redo;
}
print "Nilai dari a = $a\n";
}continue{
$a = $a + 1;
}
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.plJika program diatas Anda jalankan, maka akan menampilkan output sebagai berikut:
$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 );
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
Bagikan
Perulangan Pada Perl
4/
5
Oleh
Kris Kimcil