www.geocities.com/raja_pangalengge/PEd



                                 Tuntunan PERL script

                         ...
www.geocities.com/raja_pangalengge/PEd




Pada kesempatan kali ini, interpreter yang digunakan adalah PERL            5 d...
www.geocities.com/raja_pangalengge/PEd



Script pertama Anda!
Misalkan akan ditampilkan sebuah string:” Selamat Datang di...
www.geocities.com/raja_pangalengge/PEd



Namun, perintah ‘n’ tidak dapat diterjemahkan oleh interpreter Sambar Server
v4....
www.geocities.com/raja_pangalengge/PEd




aljabar.pl
$a=-8;
$b=-2;
$c=12;
$d=6;
$e=2;
$m=($a+$b+$c+$d/$e) / 5;
print quot...
www.geocities.com/raja_pangalengge/PEd




    # Convert HTML stuff as necessary.
    $value =~ s/<([^>]|n)*>//g;

    $FO...
www.geocities.com/raja_pangalengge/PEd




exit;

sub missing_name
{
   print quot;<HTML><HEAD><TITLE>Missing Name</TITLE>...
www.geocities.com/raja_pangalengge/PEd




Komentar
Komentar dalam suatu bahasa pemrograman digunakan untuk menjelaskan ma...
www.geocities.com/raja_pangalengge/PEd



$Z=$a+$b;
$a=-9;
$b=7;
print $a ,quot; + quot;, $b ,quot; = quot;, $Z;



Operat...
www.geocities.com/raja_pangalengge/PEd



•   Pembagian Bersisa (Modulus)
    Misalkan:
    Z ← a mod b;
    Jika a=-69, d...
www.geocities.com/raja_pangalengge/PEd



    $cosinus45=cos($b);
    $tgt30=($sinus30)/($cosinus30);
    $tgt45=($sinus45...
www.geocities.com/raja_pangalengge/PEd



    Misalkan: Akan ditampilkan pesan “Apakabar?” jika a dan b masing-masing
    ...
www.geocities.com/raja_pangalengge/PEd



    Keterbatasan PERL, dibandingkan dengan JavaScript dan C/C++ dalam
    operas...
www.geocities.com/raja_pangalengge/PEd



Operator Unary
Yang dimaksud dengan operator unary adalah operator              ...
www.geocities.com/raja_pangalengge/PEd




Operator    Penugasan    (assignment                 digunakan     untuk
      ...
www.geocities.com/raja_pangalengge/PEd



$a%=$b;
print quot;Isi variabel a = quot;, $a;

jika:
    $a&=b;
maka
   $a=4
as...
www.geocities.com/raja_pangalengge/PEd



print <berkas>;
close (berkas);

Tampilan jalannya script:




                 ...
www.geocities.com/raja_pangalengge/PEd



        14         E
        15         F
        16        10
        17       ...
www.geocities.com/raja_pangalengge/PEd



Mekanisme konversi suatu karakter ke bilangan
Sintaks-nya:
    ord($kara);
kar2n...
www.geocities.com/raja_pangalengge/PEd



tanya.pl
print quot;Berapa umur Anda?: quot;;
$umur = <>;
print quot;WOW! Umur A...
www.geocities.com/raja_pangalengge/PEd



Contoh: Analog dengan script ascii6575.pl, namun batas bawah=65, dan
batas atas=...
www.geocities.com/raja_pangalengge/PEd



Struktur Kendali
Dengan adanya control structure memungkinkan pemrogram menspesi...
www.geocities.com/raja_pangalengge/PEd



Do..while statement
Bentuk Umum:
Do
{
       kerjakan statement ini;
    while( ...
www.geocities.com/raja_pangalengge/PEd



   fori00.pl
   for($i=0;$i<3;$i++) {
    for($j=0;$j<3;$j++) {
      if($i+$j!=...
www.geocities.com/raja_pangalengge/PEd




  Gambar Klasifikasi Utama Struktur Kontrol Program pada Bahasa Pemrograman


C...
www.geocities.com/raja_pangalengge/PEd



$a=5;
$hasil=1;
if($a==0||$a==1) {
 print $a ,quot;! = quot;, $hasil;
} else {
 ...
www.geocities.com/raja_pangalengge/PEd




                                                                          Algor...
www.geocities.com/raja_pangalengge/PEd




Operasi Larik (Array)
Larik (array) adalah sejumlah data yang bertipe sama, dim...
www.geocities.com/raja_pangalengge/PEd



Tipe Data Numerik:
1bilangan.pl
@bil=(7,56,-5,-11.2,90,0.6);
print quot;Isi elem...
www.geocities.com/raja_pangalengge/PEd



}
print quot;Selesai...quot;;




MATRIKS
Penggunaan larik banyak dimanfaatkan u...
www.geocities.com/raja_pangalengge/PEd




                − 2 2 1                      − 10 10 5 
Jika : A2 x 3 =   ...
www.geocities.com/raja_pangalengge/PEd




Script matrik.pl bisa juga dituliskan kembali sebagai berikut, dimana hasil
per...
www.geocities.com/raja_pangalengge/PEd



}
print quot;Dituliskan secara lengkap:nquot;;
for($i=0;$i<2;$i++) {
 for($j=0;$...
www.geocities.com/raja_pangalengge/PEd



for($i=0;$i<2;$i++) {
 for($j=0;$j<3;$j++) {
   print quot;A[quot;, $i+1 ,quot;]...
www.geocities.com/raja_pangalengge/PEd



 for($j=0;$j<8-$i-1;$j++) {
   if($data[$j]>$data[$j+1]) {
    $temp=$data[$j];
...
www.geocities.com/raja_pangalengge/PEd



Numerik=(-11,22,-3,94,25,36,17);
Diurutkan menjadi:
Numerik=( 94,36,25,22,17,-3,...
www.geocities.com/raja_pangalengge/PEd




Tampilan jalannya script max2min1.pl:




Manipulasi String terhadap Larik
 Men...
www.geocities.com/raja_pangalengge/PEd


 kalimat=quot;Segera-saksikan-siaran       langsung   basket    di   stasiun   Sa...
www.geocities.com/raja_pangalengge/PEd



push1.pl
@Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaq...
www.geocities.com/raja_pangalengge/PEd



$aa=@Data;
print quot;nquot;, $aa;



Contoh: larik siswa berisi elemen-elemen s...
www.geocities.com/raja_pangalengge/PEd



Tabel Fungsi Larik:
         Function                       Definisi
 push(@arra...
www.geocities.com/raja_pangalengge/PEd



Tampilan jalannya script meanmodus.pl:




Kelemahan script meanmodus.pl ini ada...
www.geocities.com/raja_pangalengge/PEd



 }
}
  print quot;nModus=quot;, $x ,quot; sebanyak quot;, $hasil+1;

Terlihat pa...
www.geocities.com/raja_pangalengge/PEd




Penggunaan Fungsi (Function)
Function (fungsi) dalam sebuah bahasa pemrograman ...
www.geocities.com/raja_pangalengge/PEd



print quot;=============nquot;;
for($x=1;$x<=7;$x++) {
 print $x ,quot;tquot;, i...
www.geocities.com/raja_pangalengge/PEd




Kdkk




Kdkd
Kdkd
Kdkd
Dkdkd
Kdkd
Kdkd
Kdkdk
Kdkdk
kdkdk




                 ...
www.geocities.com/raja_pangalengge/PEd




                                   47
Upcoming SlideShare
Loading in …5
×

About PERL script

4,588 views

Published on

How to code the web-script the PERL, and I think it's a simple script.. :)

Published in: Technology
0 Comments
3 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
4,588
On SlideShare
0
From Embeds
0
Number of Embeds
7
Actions
Shares
0
Downloads
68
Comments
0
Likes
3
Embeds 0
No embeds

No notes for slide

About PERL script

  1. 1. www.geocities.com/raja_pangalengge/PEd Tuntunan PERL script Ir. Naek, MT. Kepala Laboratorium Pemrograman Jaringan Divisi Pelatihan & Pengembangan Bandung – 2007 Reference: www.itknowledge.com/tpj www.jmarshall.com/easy/cgi/ www.perl.com/CSPAN/scripts/index.html Ir. SNMP Simamora, MT., “Pengantar Bahasa Pemrograman dalam Pendekatan Praktis (Ulasan dalam Bahasa C++, Bahasa BASIC, dan JavaScript)”, Pangalengge Educations, 2006. PERL, Practical Extraction and Report Language, adalah bahasa pemrograman berbasis web (script) yang diterjemahkan di sisi server (server based), setiap kali akan dijalankan; sehingga PERL script tergolong kepada bahasa pemrograman yang diterjemahkan oleh interpreter seperti halnya: BASIC, JavaScript, PROLOG, VBScript, ASP, PHP. Namun, berbeda dengan script seperti PHP, ASP, dan JavaScript, PERL dapat dijalankan juga tanpa tergantung kepada web-browser (platform HTML), karena PERL menggunakan metode CGI (Common Gateway Interface) agar dapat berinteraksi dengan web-server dan disamping juga PERL merupakan bahasa pemrograman standar yang digunakan pada lingkungan sistem operasi UNIX. Jadi bisa disimpulkan bahwa PERL identik dengan BASIC pada lingkungan sistem operai DOS. Seperti ditunjukkan pada tampilan berikut ini: Setelah menentukan jalinan letak interpreter PERL pada direktori disk, tuliskan jalinan jalur sinkronisasi penerjemahan pada lingkungan command DOS sebagai berikut: C:set path=c:Program Filessambar41perl 1
  2. 2. www.geocities.com/raja_pangalengge/PEd Pada kesempatan kali ini, interpreter yang digunakan adalah PERL 5 dengan menggunakan Sambar Server v4.1, seperti terlihat berikut ini: Tampilan default welcome page server ini adalah sebagai berikut: 2
  3. 3. www.geocities.com/raja_pangalengge/PEd Script pertama Anda! Misalkan akan ditampilkan sebuah string:” Selamat Datang di kota Dolok Sanggul.” ke layar komputer. hallo.pl print quot;Selamat Datang di kota Dolok Sanggul.quot;; Dijalankan menggunakan lingkungan interpreter konvensional (platform DOS, dengan metode command-line), yakni sebagai berikut Dijalankan menggunakan platform Sambar Server v4.1, sebagai berikut: Latihan berikutnya, mengadopsi dari contoh sebelumnya, akan ditambahkan satu baris setelah kalimat pertama:”Pesan dari Pangalengge Educations.”. hallo1.pl print quot;Selamat Datang di kota Dolok Sanggul.nquot;; print quot;Pesan dari Pangalengge Educations.quot;; Harus diperhatikan bahwa perintah ‘n’ (ganti baris baru) diletakkan di akhir baris script; berbeda pada Bahasa Pemrograman C/C++, yang dapat diletakkan di awal baris sintaks. 3
  4. 4. www.geocities.com/raja_pangalengge/PEd Namun, perintah ‘n’ tidak dapat diterjemahkan oleh interpreter Sambar Server v4.1, sehingga digantikan dengan tags ‘<br>’. Berikutnya sebuah perhitungan arithmatika disajikan sebagai berikut: hasil (a * (c – b)) MOD c; dimana, nilai masing-masing variabel diisikan sebagai berikut: a5 ; b -3 ;c 2 Sintaksnya sebagai berikut: ngitung.pl $a=5; $b=-3; $c=2; $hasil=($a*($c-$b))%$c; print quot;Hasil = quot;, $hasil; Hasil perhitungan ini sama dengan 1, diperoleh dari: hasil (5 * (2 – -3)) MOD 2; hasil (5 * 5) MOD 2; hasil 25 MOD 2; hasil 1; Hitunglah aljabar berikut ini: (a + b + c + d ÷ e ) M= 5 dimana: a = -8 b = -2 c = 12 d=6 e=2 Aljabar ini dalam PERL script dituliskan: M = (a+b+c+d÷e)/5; Dan M=1. 4
  5. 5. www.geocities.com/raja_pangalengge/PEd aljabar.pl $a=-8; $b=-2; $c=12; $d=6; $e=2; $m=($a+$b+$c+$d/$e) / 5; print quot;Hasil = quot;, $m; Lalu bagaimana bila masukan suatu nilai diinginkan dari user, bukan langsung terdeklarasikan pada badan program? Persoalan ini dapat diselesaikan menggunakan bantuan tags HTML, sebagai berikut: bukutamu.htm <HTML> <HEAD><TITLE>.:Catatan Kunjungan:.</TITLE></HEAD> <BODY bgcolor=white text=black link=black vlink=black alink=black> <CENTER> <FONT SIZE=5 COLOR=#996633><B>Silahkan isi Buku Tmu:</B></FONT> </CENTER> <BR> <BR> <FORM METHOD=POST ACTION=quot;/cgi-bin/bukutamu.plquot;> <TABLE border=0 cellpadding=5> <TR> <TD>Nama (<I>diisi</I>)</TD> <TD><INPUT TYPE=text NAME=name size=40></TD></TR> <TR> <TD>e-mail</TD> <TD><INPUT TYPE=text NAME=email size=40></TD></TR> <TR><TD>Pesan (<I>diisi</I>)</TD> <TD><TEXTAREA NAME=msg COLS=60 ROWS=4></TEXTAREA></TD> </TR> <TR> <TD></TD> <TD><INPUT TYPE=submit VALUE=quot;Okequot;></TD> </TR> </TABLE> </FORM> </BODY> </HTML> bukutamu.pl read(STDIN, $data, $ENV{'CONTENT_LENGTH'}); @pairs = split(/&/, $data); foreach $pair (@pairs) { ($name, $value) = split(/=/, $pair); # Convert the HTML encoding $value =~ tr/+/ /; $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack(quot;Cquot;, hex($1))/eg; $value =~ s/<!--(.|n)*-->//g; 5
  6. 6. www.geocities.com/raja_pangalengge/PEd # Convert HTML stuff as necessary. $value =~ s/<([^>]|n)*>//g; $FORM{$name} = $value; } &missing_name unless $FORM{'name'}; &missing_msg unless $FORM{'msg'}; open (FILE, quot;$bookfilequot;) || die quot;Can't open $bookfile: $!nquot;; @LINES=<FILE>; close(FILE); $SIZE=@LINES; open (FILE, quot;>$bookfilequot;) || die quot;Can't open $bookfile: $!nquot;; for ($i = 0; $i <= $SIZE; $i++) { $_=$LINES[$i]; if (/<!--top-->/) { print FILE quot;<!--top-->nquot;; print FILE quot;<b>$FORM{'msg'}</b><br>nquot;; print FILE quot;$FORM{'name'}quot;; if ($FORM{'email'}) { print FILE quot; &lt;<A HREF=quot;mailto:$FORM{'email'}quot;>quot;; print FILE quot;$FORM{'email'}</A>&gt;quot;; } print FILE quot;<HR>nquot;; } else { print FILE $_; } } close (FILE); print quot;<HTML><HEAD><TITLE>.:Selesai:.</TITLE></HEAD><BODY bgcolor=white>nquot;; print quot;<FONT SIZE=5 COLOR=#996633><B>Terima kasih Atas Kunjungannya</B></FONT>nquot;; print quot;<BR><BR>Data Anda berikut telah terseimpan di Buku Tamu kami::<HR>nquot;; print quot;<b>$FORM{'msg'}</b><br>nquot;; print quot;$FORM{'name'}quot;; if ($FORM{'email'}) { print quot; &lt;<A HREF=quot;mailto:$FORM{'email'}quot;>quot;; print quot;$FORM{'email'}</A>&gt;quot;; } print quot;<P><HR>nquot;; print quot;<A HREF=quot;/latihan/bukutamu.htmquot;>Isian Buku Tamu.</A>nquot;; print quot;</BODY></HTML>nquot;; 6
  7. 7. www.geocities.com/raja_pangalengge/PEd exit; sub missing_name { print quot;<HTML><HEAD><TITLE>Missing Name</TITLE></HEAD><BODY>nquot;; print quot;<FONT SIZE=5 COLOR=#996633><B>Name field is blank...</B></FONT>nquot;; print quot;<BR><BR>Please repost the name section of the guestbook.<P>nquot;; print quot;Return to the <a href=quot;/samples/book.htmquot;>Guest Book</a>.nquot;; print quot;</BODY></HTML>nquot;; exit; } sub missing_msg { print quot;<HTML><HEAD><TITLE>Missing Comments</TITLE></HEAD>nquot;; print quot;<FONT SIZE=5 COLOR=#996633><B>Comment field is blank...</B></FONT>nquot;; print quot;<BR><BR>Please repost the comment section of the guestbook.<P>nquot;; print quot;Return to the <a href=quot;/samples/book.htmquot;>Guest Book</a>.nquot;; print quot;</BODY></HTML>nquot;; exit; } Untuk menjalankannya digunakan interpreter Sambar Server v4.1 dengan metode CGI, seperti ditunjukkan pada tampilan berikut ini: 7
  8. 8. www.geocities.com/raja_pangalengge/PEd Komentar Komentar dalam suatu bahasa pemrograman digunakan untuk menjelaskan maksud deklarasi suatu baris program (yang disebut dengan statement). Contoh: komentar.pl #Baris ini tidak dieksekusi oleh interpreter print quot;Baris ini dieksekusi oleh interpreterquot;; konstanta1.pl $a=35; #a diisikan 5 $a/=5; #hasil pembagian a thd. 5 diisikan ke a print $a; #tampilkan isi a yang baru Artinya, dalam menuliskan komentar pada badan program, setiap bahasa pemrograman, termasuk PERL menggunakan karakter khusus ‘#’ untuk mengawali statement komentar, seperti juga pada bahasa pemrograman/script yang lain seperti: C/C++ menggunakan karakter ‘//’ dan ‘/*’ untuk mengawali dan ‘*/’ untuk mengakhiri. JAVA dan JavaScript menggunakan karakter ‘//’ di awal komentar BASIC menggunakan karakter ’ di awal komentar Disamping itu, karakter komentar ini juga biasa digunakan oleh pemrogram untuk memeriksa suatu statement program jika ditemukan bugs (kesalahan) saat script/sintaks diterjemahkan oleh translator. Deklarasi suatu variabel terlebih dahulu dituliskan lalu diikuti/dilanjutkan dengan penulisan statement penugasan. Misalkan script berikut akan memberikan nilai Z=0: hindari.pl 8
  9. 9. www.geocities.com/raja_pangalengge/PEd $Z=$a+$b; $a=-9; $b=7; print $a ,quot; + quot;, $b ,quot; = quot;, $Z; Operator Operator digunakan untuk mengerjakan isi operand berdasar jenis instruksi yang ditentukan pada badan program. Misalkan: z ← a+b maka, a dan b disebut dengan operand, dikerjakan menggunakan operator ‘+” dimana hasil pengerjaannya dimasukkan ke z oleh operator assignment ‘=’ (dalam pseudocode, ‘=’ dituliskan ‘←’) maka z disebut hasil operasi. Operator yang dikenal script PERL antara lain: Operator Arithmatika • Penjumlahan Misalkan: Z ← a + b; jumlah.pl $a=-9; $b=7; $Z=$a+$b; print $a ,quot; + quot;, $b ,quot; = quot;, $Z; • Pengurangan Misalkan: Z ← a – b; kurangkan.pl $a=-9; $b=7; $Z=$a-$b; print $a ,quot; - quot;, $b ,quot; = quot;, $Z; • Perkalian Misalkan: Z ← a x b; kali.pl $a=-9; $b=7; $Z=$a*$b; print $a ,quot; x quot;, $b ,quot; = quot;, $Z; • Pembagian Misalkan: Z ← a ÷ b; bagikan.pl $a=-63; $b=7; $Z=$a/$b; print $a ,quot; / quot;, $b ,quot; = quot;, $Z; 9
  10. 10. www.geocities.com/raja_pangalengge/PEd • Pembagian Bersisa (Modulus) Misalkan: Z ← a mod b; Jika a=-69, dan b=7, maka Z=-6; namun karena keterbatasan interpreter PERL, hasilnya = 1. Untuk itu, pada script digunakan penanganan khusus pengerjaan operator modulus untuk operand yang dibagi bernilai negatip. bagisisa.pl $a=-69; $b=7; $Z=(($a*-1)%$b)/-1; print $a ,quot; % quot;, $b ,quot; = quot;, $Z; Bedakan dengan script berikut: bagisisa1.pl $a=69; $b=7; $Z=$a%$b; print $a ,quot; % quot;, $b ,quot; = quot;, $Z; • Trigonometri: Sine Ingat! 3600 = 2π radian 10 = (2π ÷ 3600) radian = (1 ÷ 57.2958) radian Sin 300 = 0.5 Sin 900 = 1 sine.pl $sin30=sin(30/57.2958); $sin90=sin(90/57.2958); print quot;Sin 30 = quot;, $sin30 ,quot;nquot;; print quot;Sin 90 = quot;, $sin90; • Trigonometri: Cosine Analog dengan kasus sine sebelumnya: Cos 300 = 0.866025 Cos 900 = 0 cosine.pl $cos30=cos(30/57.2958); $cos90=cos(90/57.2958); print quot;Cos 30 = quot;, $cos30 ,quot;nquot;; print quot;Cos 90 = quot;, $cos90; • Trigonometri: Tangent Analog dengan kasus sine sebelumnya: Tan 300 = 0.577349 Tan 450 = 1 tangent.pl $a=(30/57.2958); $sinus30=sin($a); $cosinus30=cos($a); $b=(45/57.2958); $sinus45=sin($b); 10
  11. 11. www.geocities.com/raja_pangalengge/PEd $cosinus45=cos($b); $tgt30=($sinus30)/($cosinus30); $tgt45=($sinus45)/($cosinus45); print quot;Tan 30 = quot;, $tgt30 ,quot;nquot;; print quot;Tan 45 = quot;, $tgt45; • Bilangan Acak acakkan.pl $acak=rand(); print quot;Bilangan yang muncul: quot;, $acak; • Nilai Absolut Misalkan: a = -0.45, maka nilai absolut(a) = 0.45 absolut.pl $a=-0.45; $Z=abs($a); print quot;Nilai absolut quot;, $a ,quot; = quot;, $Z; • Operator Logika, digunakan untuk menyatakan gerbang logika AND dan OR: AND, disimbolkan dengan ‘&&’, menyatakan bahwa keluaran bernilai 1 (TRUE) jika dan hanya jika kedua masukan bernilai 1 (TRUE). lAnd.pl $ini='r'; $itu='R'; $bil=7; if($bil<7 && $ini=='s') { print quot;Isi variabel ini adalah karakter squot;; } if(($bil>=7 && $itu=='R')||$ini=='s') { print quot;Isi variabel bil adalah 7quot;; } OR, disimbolkan dengan ‘||’, menyatakan bahwa keluaran bernilai 1 (TRUE) jika dan hanya jika salah satu masukan bernilai 1 (TRUE). lOr.pl $ini=quot;Aquot;; $itu=quot;aquot;; $bil=7; if(($bil<=7 && $itu==quot;aquot;)||$ini==quot;aquot;) { print quot;Isi variabel itu adalah karakter aquot;; } if($bil>7 || $itu==quot;Aquot;) { print quot;nIsi variabel bil adalah 7quot;; } Karena ‘n’ tidak dapat diterjemahkan oleh Sambar Server v4.1, maka diganti dengan tags ‘<br>’. • Operator ‘==’ ≠ ‘=’ Operator ‘==’ (disebut operator equality) digunakan untuk pembanding isi antara dua variabel pada logika AND dan OR. 11
  12. 12. www.geocities.com/raja_pangalengge/PEd Misalkan: Akan ditampilkan pesan “Apakabar?” jika a dan b masing-masing diisi nilai 23 dan 32, selain nilai itu akan ditampilkan pesan “Mau ke mana?”. opequal.pl $a=32; $b=23; if($a==23&&$b==32) { print quot;Apakabar?quot;; } else { print quot;Mau ke mana?quot;; } Sedangkan operator ‘=’ (disebut operator assignment) digunakan sebagai penugas untuk memindahkan hasil suatu pengerjaan operasi arithmatika ke sebuah operator lain. Misalkan: a=23 ; b=32 jika hasil a+b disimpankan ke c, maka didapatkan c=55 opassign.pl $a=32; $b=23; $c=$a+$b; print quot;Isi c = quot;, $c; • Operator Akar Pangkat 2 Misalkan: 4 = 2 akarpkt.pl $a=4; $hasil=sqrt($a); print quot;Akar quot;, $a ,quot; = quot;, $hasil; • Bilangan Natural (e = ) Misalkan mencari nilai eksponensial suatu bilangan: e2 = 7.39 eksponensial.pl $bil=2; print quot;Nilai e pangkat quot;, $bil ,quot; = quot;, exp($bil); e = 2.7183 ekspo.pl $bil=exp(1); print quot;Bilangan e = quot;, $bil; • Logaritma Natural (Log-N) Misalkan : log(s), artinya → mendapatkan nilai logaritma natural dari s (bilangan dasar e). log(2.718282) = 1.0 log(7.389056) = 2.0 logN.pl $bil=2.718282; $hasil=log($bil); print quot;Log-Natural(quot;, $bil ,quot;) = quot;, $hasil; • Logaritma 10 (menggunakan bilangan dasar 10) 12
  13. 13. www.geocities.com/raja_pangalengge/PEd Keterbatasan PERL, dibandingkan dengan JavaScript dan C/C++ dalam operasi logaritma, adalah tidak disediakannya fungsi log10() untuk menghitung nilai logaritma dalam bilangan dasar 10; dimana yang disediakan adalah fungsi log() yang digunakan untuk menghitung nilai logaritma alam/logaritma natural (ln) dengan bilangan dasar e. Sehingga untuk menghitung nilai logaritma bilangan dasar 10, dalam JavaScript dan C/C++ dituliskan log10(), digunakan rumus: ln( x) log( x) = ln(10) Dalam bidang Teori Matematika Dasar nilai kedua fungsi logaritma ini dicari menggunakan sebuah tabel. Bila x adalah sebuah bilangan bulat (integer), carilah nilai log-nya dan ln-nya untuk x=1000. Ingat! log b c ⇔ a c = b a log10.pl $bil=1000; $hasil=(log($bil))/(log(10)); print quot;ln(quot;, $bil ,quot;) = quot;, log($bil) ,quot;nquot;; print quot;Log(quot;, $bil ,quot;) = quot;, $hasil; • eX-clusive-OR (disimbolkan ‘⊕’), dalam script PERL dituliskan ‘^’ Aloritma Gerbang Logika XOR menyebutkan: keluaran bernilai 1, jika dan hanya jika jumlah bit masukan kelipatan ganjil; sebaliknya bernilai 0 jika bit masukan kelipatan genap. Simbol dalam rangkaian logika: Tabel Kebenaran Logika X-OR +B A B A 0 0 0 0 1 1 1 0 1 1 1 0 Misalkan: DEC2 ⊕ DEC3 = DEC1 Karena interpreter PERL dijalankan dalam platform 16-bit (DOS), maka 1byte=16bit, sehingga: DEC2 = 0000 0000 0000 0010 DEC3 = 0000 0000 0000 0011 Maka: 0000 0000 0000 0010 0000 0000 0000 0011 ⊕ 0000 0000 0000 0001 ⇒ DEC1 exor.pl $a=2; $b=3; $hasil=($a)^($b); print quot;Hasil = quot;, $hasil; 13
  14. 14. www.geocities.com/raja_pangalengge/PEd Operator Unary Yang dimaksud dengan operator unary adalah operator yang hanya menggunakan sebuah operand saja. Misalkan: 2 + 1 adalah dua operand yang nilainya bernilai sama dengan 3; dalam operator unary, dapat dinyatakan menjadi: 2++. Operator unary biasanya digunakan untuk pengerjaan pencacahan (menambah/mengurangkan suatu bilangan dengan nilai 1). Pre-increment: tambahkan isi $a dengan 1, hasilnya masukkan ke $a preincre.pl $a=3; $hasil=++$a; print quot;Nilai: quot;, $hasil; Hasil = 4. Post-increment: masukkan isi $b, lalu tambahkan 1 ke isi $b postincre.php $b=3; $hasil=$b++; print quot;Nilai: quot;, $hasil; Hasil = 3. Pre-decrement: kurangkan isi $c dengan 1, hasilnya masukkan ke $c predecre.php $c=3; $hasil=--$c; print quot;Nilai: quot;, $hasil; Hasil = 2. Post-decrement: masukkan isi $d, lalu kurangkan isi $b dengan 1 postdecre.php $d=3; $hasil=$d--; print quot;Nilai: quot;, $hasil; Hasil = 3. Eksklusifitas script PERL terletak dalam penanganan string jika dioperasikan menggunakan arithmatika maupun logika. Misalkan: $a, dan $b masing-masing tipe data string yang diisikan dengan nilai: 17 dan 2; maka: Jika ditetapkan statement berikut: $hasil1=$b+$a; + = dijumlahkan $hasil2=$a+$b; + = di-OR-kan maka didapatkan: Isi variabel hasil1 = 19, dan Isi variabel hasil2 = 19 DEC17 = 0000 0000 0001 0001 + DEC 2 = 0000 0000 0000 0010 DEC19 = 0000 0000 0001 0011 concate.pl $a=quot;17quot;; $b=quot;2quot;; $hasil1=$b+$a; $hasil2=$a|$b; print quot;Isi variabel hasil1 = quot;, $hasil1; print quot;nIsi variabel hasil2 = quot;, $hasil2; 14
  15. 15. www.geocities.com/raja_pangalengge/PEd Operator Penugasan (assignment digunakan untuk operator), mengalihkan/memindahkan hasil operasi arithmatika atau logika ke sebuah variabel. Misalkan: $a=6; $b=4; jika: $a+=b; maka $a=10 assignment1.pl $a=6; $b=4; $a+=$b; print quot;Isi variabel a = quot;, $a; jika: $a-=b; maka $a=2 assignment2.pl $a=6; $b=4; $a-=$b; print quot;Isi variabel a = quot;, $a; jika: $a*=b; maka $a=24 assignment3.pl $a=6; $b=4; $a*=$b; print quot;Isi variabel a = quot;, $a; jika: $a/=b; maka $a=1.5 assignment4.pl $a=6; $b=4; $a/=$b; print quot;Isi variabel a = quot;, $a; jika: $a*=b; maka $a=2 assignment5.pl $a=6; $b=4; 15
  16. 16. www.geocities.com/raja_pangalengge/PEd $a%=$b; print quot;Isi variabel a = quot;, $a; jika: $a&=b; maka $a=4 assignment6.pl $a=6; $b=4; $a&=$b; print quot;Isi variabel a = quot;, $a; jika: $a*=b; maka $a=6 assignment7.pl $a=6; $b=4; $a|=$b; print quot;Isi variabel a = quot;, $a; jika: $a⊕=b; maka $a=2 assignment8.pl $a=6; $b=4; $a^=$b; print quot;Isi variabel a = quot;, $a; Mekanisme untuk membuka dan menampilkan isi sebuah file teks Misalkan, dibuat sebuah file teks dengan nama: oke.txt dan isi-nya dituliskan sebagai berikut: oke.txt #!/usr/bin/perl # Testdatei cgi-test.pl use CGI qw(:standard); use CGI::Carp qw(fatalsToBrowser); print header(), start_html(quot;Hello CGIquot;), p(quot;Hello CGIquot;), end_html(); Lalu disimpankan ke folder contoh, dengan struktur direktori source code script berada dalam direktori yang sama dengan folder contoh, maka cara untuk menampilkan isi oke.txt dituliskan dalam script sebagai berikut: bukafile1.pl $berkas=quot;contoh/oke.txtquot;; open (berkas) || die quot;Tidak dapat membuka filenquot;; 16
  17. 17. www.geocities.com/raja_pangalengge/PEd print <berkas>; close (berkas); Tampilan jalannya script: Akhir baris dari isi file oke.txt diberikan ‘new-line’ (ditekan ENTER) Konversi Bilangan Desimal ke Basis Bilangan Lain • DEC ke HEX Misalkan: 3510 = (...)16 Algoritma-nya: 35 ÷ 16 = 2 sisa 3 2 ÷ 16 = 0 sisa 2 Dituliskan: 23h atau 2316 Jika dibalikkan, 23h = DEC…?, maka: 23h = (2x161)+(3x160) = 32+3 = 3510 Bilangan Heksadesimal dituliskan dengan prefix:’0x’. Tabel Konversi DEC-HEX (0 s.d 17): DEC HEX 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 17
  18. 18. www.geocities.com/raja_pangalengge/PEd 14 E 15 F 16 10 17 11 hex2dec.pl $a=23; print quot;0xquot;, $a ,quot; dalam desimal = quot;, hex($a); • DEC ke OCT Misalkan: 3510 = (...)8 Algoritma-nya: 35 ÷ 8 = 4 sisa 3 4 ÷ 8 = 0 sisa 4 Dituliskan: 0438 atau 438 Jika dibalikkan, 438 = DEC…?, maka: 438 = (4x81)+(3x80) = 32+3 = 3510 Bilangan Oktal dituliskan dengan prefix:’0’. Tabel Konversi DEC-OCT (0 s.d 17): DEC HEX 0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 10 9 11 10 12 11 13 12 14 13 15 14 16 15 17 16 20 17 21 oct2dec.pl $b=43; print quot;0quot;, $b ,quot; dalam desimal = quot;, oct($b); Komputer senantiasa menampilkan dalam bilangan Desimal 18
  19. 19. www.geocities.com/raja_pangalengge/PEd Mekanisme konversi suatu karakter ke bilangan Sintaks-nya: ord($kara); kar2num.pl $a1='A'; $a2='a'; print quot;Karakter quot;, $a1 ,quot; dikodekan DECquot;, ord($a1); print quot;nKarakter quot;, $a2 ,quot; dikodekan DECquot;, ord($a2); Mekanisme konversi suatu bilangan ke karakter Sintaks-nya: chr($bil); num2char.pl $a1=65; $a2=95; print quot;DEC quot;, $a1 ,quot; direpresentasikankan menjadi karakter quot;, chr($a1); print quot;nDEC quot;, $a2 ,quot; direpresentasikankan menjadi karakter quot;, chr($a2); Contoh: Menampilkan Tabel ASCII 8-bit dari DEC65 s.d DEC75. ascii6575.pl print quot;Tabel ASCIInquot;; print quot;==============nquot;; for($i=65;$i<=75;$i++) { print $i ,quot;tquot;, chr($i) ,quot;nquot;; } #’t’ artinya tabulasi (tab) Tampilan jalannya script ascii6575.pl: Mekanisme menerima input dari user Dalam script PERL dilakukan dengan dua mekanisme, yaitu ‘<STDIN>’ atau cukup dengan ‘<>’, dan fungsi chomp(). Misalkan terlihat pada contoh berikut: - User diajukan sebuah pertanyaan tentan berapa umurnya sekarang dan sekolah dimana. 19
  20. 20. www.geocities.com/raja_pangalengge/PEd tanya.pl print quot;Berapa umur Anda?: quot;; $umur = <>; print quot;WOW! Umur Anda ternyata quot;, $umur ,quot; tahun!quot;; print quot;nSekarang sekolah di mana?: quot;; $sekolah=<stdin>; print quot;Anda sekolah di quot;, $sekolah ,quot; ya....quot;; Hasil jalannya script tanya.pl: Terlihat, saat user-input akan ditampilkan memberi keadaan baris baru terhadap kata yang mengikutinya selanjutnya (ada ‘ENTER’). Untuk meniadakan keadaan ini, digunakan fungsi chomp() seperti berikut ini: tanya1.pl print quot;Berapa umur Anda?: quot;; chomp($umur=<>); print quot;WOW! Umur Anda ternyata quot;, $umur ,quot; tahun!quot;; print quot;nSekarang sekolah di mana?: quot;; chomp($sekolah=<stdin>); print quot;Anda sekolah di quot;, $sekolah ,quot; ya....quot;; Tampilan jalannya script tanya1.pl: 20
  21. 21. www.geocities.com/raja_pangalengge/PEd Contoh: Analog dengan script ascii6575.pl, namun batas bawah=65, dan batas atas=75 didapatkan dari user-input: asciit.pl print quot;Kode dimulai dari?: quot;; $bawah=<>; print quot;Kode diakhiri pada?: quot;; $atas=<>; print quot;nquot;; print quot;Tabel ASCIInquot;; print quot;==============nquot;; for($i=$bawah;$i<=$atas;$i++) { print $i ,quot;tquot;, chr($i) ,quot;nquot;; } Hasil jalannya script asciit.pl sebagai berikut: Dari contoh ini bisa disimpulkan bahwa <STDIN> digunakan jika user-input tidak perlu ditampilkan ke layar komputer; sedangkan jika harus ditampilkan digunakan fungsi chomp(). Contoh: - Meminta user-input nilai jari-jari sebuah lingkaran, lalu selanjutnya akan dihitung berapa diamater, keliling, dan luas lingkaran. lingkaran.pl print quot;Tentukan jari-jari lingkaran?(cm): quot;; chomp ($r = <>); $diameter = (2 * $r); $luas = (3.14 * ($r ** 2)); $K = ($diameter * 3.14); print quot;Jika sebuah lingkaran dengan jari-jari = quot;, $r ,quot;cm maka:nquot;; print quot;Diameter = quot;, $diameter ,quot;cmnquot;; print quot;Keliling = quot;, $K ,quot;cmnquot;; print quot;Luas = quot;, $luas ,quot;cm^2quot;; 21
  22. 22. www.geocities.com/raja_pangalengge/PEd Struktur Kendali Dengan adanya control structure memungkinkan pemrogram menspesifikasikan logika pemrograman (programs) maupun kontrol aliran jalannya penerjemahan script yang dikehendaki. Dengan demikian, script yang dijalankan interpreter akan menerapkan segala urutan kondisi logika dimana jika memberi hasil true akan menjalankan step script selanjutnya; di lain hal akan menolak mengerjakannya. Ini bertujuan agar translator dapat memahami maksud dan tujuan dari pemrogram dalam aplikasi yang dibangun. Klasifikasi struktur kendali umumnya terbagi atas: If-then else statement Bentuk Umum: if( ) kondisi ini bernilai true { kerjakan statement ini; } else { kerjakan statement ini; } Contoh: ifthenelse.pl $a=4; if($a<=5) { print quot;Isi variabel a di bawah nilai 5.quot;; } else { print quot;Isi variabel a di atas nilai 5.quot;; } Contoh: ifthenelse1.pl print quot;Masukkan bilangan 0 s.d 9: quot;; $a=<>; if($a<0||$a>9) { print quot;Maaf, di luar range!quot;; } else { print quot;Anda telah benar memasukkan bilangannya.nquot;; print quot;Terima kasih, dan semoga permohonan Anda selama ini terkabulkan...quot;; } Tampilan jalannya script ifthenelse1.pl: 22
  23. 23. www.geocities.com/raja_pangalengge/PEd Do..while statement Bentuk Umum: Do { kerjakan statement ini; while( ) kondisi ini bernilai true } Contoh: dowhile.pl $a=5; do { $a-=1; print $a ,quot;nquot;; } while ($a>0); While statement Bentuk Umum: while( ) kondisi ini bernilai true { kerjakan statement ini; } Contoh: while.pl $a=5; while ($a>0) { $a-=1; print $a ,quot;nquot;; } For … i statement Bentuk Umum: for( ) kondisi ini bernilai true { kerjakan statement ini; } Contoh: fori.pl for($a=5;$a>0;--$a) { print $a ,quot;nquot;; } Contoh: - dengan menggunakan statement kendali for..i, buatlah tampilan seperti berikut ini: i=0; j=0 i=0; j=1 i=0; j=2 i=1; j=0 i=1; j=1 i=2; j=0 i=2; j=2 23
  24. 24. www.geocities.com/raja_pangalengge/PEd fori00.pl for($i=0;$i<3;$i++) { for($j=0;$j<3;$j++) { if($i+$j!=3) { print quot;i=quot;, $i ,quot;; j=quot;, $j ,quot;nquot;; } } } Tidak seperti pada bahasa pemrograman lain, switch statement tidak dikenal dalam script PERL, namun serangkaian statement logika lain dapat dikombinasikan dalam urutan sebuah blok program. Seperti misalkan statement logika if dalam blok statement logika while. Bentuk Umum: while( ) kondisi ini bernilai true { kerjakan statement ini; if( kondisi ini bernilai true ) { kerjakan statement ini; } } Contoh: kombinasi.pl $a=7; while($a>0){ $hasil=$a--; print $hasil ,quot;nquot;; } if($a=1) { print quot;Selesai...nquot;; } Blok-blok struktur kendali program dapat dideskripsikan dalam suatu algoritma pemrograman dengan dua cara, yakni melalui pseudocode, dan blok program.flow- chart. Berikut adalah simbol flow-chart berdasar American National Standard Institute (ANSI) 24
  25. 25. www.geocities.com/raja_pangalengge/PEd Gambar Klasifikasi Utama Struktur Kontrol Program pada Bahasa Pemrograman Contoh: User harus memasukkan nilai=1 agar keluar dari proses looping (berulang). cobat.pl print quot;Jangan masukkan nilai selain bilangan 1: quot;; $bil=<>; if($bil!=1) { do { print quot;Ketikkan password: quot;; $bil=<>; } while($bil!=1); print quot;Terima kasih, ya...quot;; } else { print quot;Terima kasih, semoga permohonan Anda selama ini terkabulkan...quot;; } Kasus Menghitung Nilai Faktorial Bilangan Misalkan: Hitung 5! maka, 5! = 5x4x3x2x1 = 120 Harus diperhatikan, bahwa 0! = 1! = 1 Bisa dituliskan script PERL-nya sebagai berikut: faktorial.pl 25
  26. 26. www.geocities.com/raja_pangalengge/PEd $a=5; $hasil=1; if($a==0||$a==1) { print $a ,quot;! = quot;, $hasil; } else { for($i=$a;$i>1;$i--) { $hasil*=$i; } print $a ,quot;! = quot;, $hasil; } Bila menggunakan metode user-input, bisa dituliskan sebagai berikut: 5faktorial.pl print quot;Mencari nilai faktorial bilangan (2 s.d 9)nquot;; print quot;Ketikkan bilangan?: quot;; chomp($a=<>); if($a<0||$a>9) { print quot;Maaf, di luar range...quot;; } else { $hasil=1; if($a==0||$a==1) { print $a ,quot;! = quot;, $hasil; } else { for($i=$a;$i>1;$i--) { $hasil*=$i; } print $a ,quot;! = quot;, $hasil; } } Karena translator yang digunakan tergolong interpeter, maka range bilangan dibatasi maksimal sampai dengan 9; kelemahan interpeter pada pengerjaan bilangan dengan hasil rentang bilangan yang lebar, dihindari terjadinya over-flow. Cara pengerjaan yang lain, bisa juga menggunakan Algoritma Mangabing sebagai berikut: 5! tak lain bisa disebutkan: pengerjaan ke-1: 5-0 x … pengerjaan ke-2: 5-1 x … pengerjaan ke-3: 5-2 x … pengerjaan ke-4: 5-3 x … pengerjaan ke-5: 5-4 x … ⇒ kesimpulan: ada 5 kali perulangan untuk mengerjakan perhitungan 5! Script PERL-nya bisa dituliskan sebagai berikut: faktorial1.pl $a=5; $hasil=1; if($a==0||$a==1) { print $a ,quot;! = quot;, $hasil; } else { for($i=0;$i<$a;$i++) { $hasil*=($a-$i); } print $a ,quot;! = quot;, $hasil; } 26
  27. 27. www.geocities.com/raja_pangalengge/PEd Algoritma Bila menggunakan metode dengan menggunakan user-input Mangabing: 5faktorial1.pl print quot;Mencari nilai faktorial bilangan (2 s.d 9)nquot;; print quot;Ketikkan bilangan?: quot;; chomp($a=<>); if($a<0||$a>9) { print quot;Maaf, di luar range...quot;; } else { $hasil=1; if($a==0||$a==1) { print $a ,quot;! = quot;, $hasil; } else { for($i=0;$i<$a;$i++) { $hasil*=($a-$i); } print $a ,quot;! = quot;, $hasil; } } Logical Value Nilai logika atau bisa juga disebut boolean dinyatakan true atau false. Bila sebuah ekspresi memberi nilai kebenaran (ya), maka bernilai true, sebaliknya jika sebuah ekspresi memberi nilai kesalahan (tidak), maka bernilai false. Tidak seperti pada Bahasa C/C++, BASIC, JavaScript atau yang lain, script PERL dalam menyatakan Logical Value (Boolean) bisa merepresentasikan dengan nilai true dan false, justru tidak dapat merepresentasikannya dalam nilai 0 atau 1. ttanya.pl print quot;Masukkan nilai >= 7: quot;; $tanya = <>; if($tanya<7) { print quot;Maaf, nilai harus >= 7.quot;; } else { print quot;Nilai yang Anda isikan benar.quot;; } Ekspresi quot;Maaf, nilai harus >= 7.quot;, akan bernilai true jika variabel tanya diisikan >= 7, sebaliknya jika variabel tanya diisikan <7, maka ekspresi bernilai false dan menampilkan quot;Nilai yang Anda isikan benar.quot;. Lebih jelasnya dapat terlihat pada contoh berikut: kas30.pl print quot;Operand-1 harus lebih besar dari Operand-2nquot;; print quot;Operand-1?: quot;; $op1=<>; print quot;Operand-2?: quot;; $op2=<>; if($op1>$op2) { print quot;Nilai : true.quot;; } else { print quot;Nilai : false.quot;; } 27
  28. 28. www.geocities.com/raja_pangalengge/PEd Operasi Larik (Array) Larik (array) adalah sejumlah data yang bertipe sama, dimana masing-masing elemen diurutkan mulai indeks ke-0. Dalam script PERL, nama variabel sebuah larik dituliskan dengan prefix:’@’. Misalkan: @string=(’b’,’e’,’r’,’t’,’e’,’p’,’u’,’k’); Adalah sebuah larik dengan nama string dengan tipe data char (karakter), berjumlah 8 elemen (umumnya disebut dengan, panjang larik=8), diuraikan sebagai berikut: $string[0]=’b’; $string[1]=’e’; $string[2]=’r’; $string[3]=’t’; $string[4]=’e’; $string[5]=’p’; $string[6]=’u’; $string[7]=’k’; larik01.pl @string=('b','e','r','t','e','p','u','k'); for($i=0;$i<8;$i++) { print quot;string[quot;, $i ,quot;]: quot;, $string[$i]; print quot;nquot;; } larik02.pl $string[0]='b'; $string[1]='e'; $string[2]='r'; $string[3]='t'; $string[4]='e'; $string[5]='p'; $string[6]='u'; $string[7]='k'; for($i=0;$i<8;$i++) { print quot;string[quot;, $i ,quot;]: quot;, $string[$i]; print quot;nquot;; } Elemen larik dapat terdiri dari tipe data karakter/string, dan bilangan (numerik). Misalkan: Tipe Data Karakter: 1kara.pl @huruf=('7','a','c','s','H','A',']'); print quot;Isi elemen-elemen larik huruf = quot;, @huruf ,quot;nquot;; print quot;Elemen dimulai dari indeks ke-0 = quot;, $huruf[0]; Tipe Data String: 1kata.pl @kata=(quot;7aquot;,quot;satoequot;,quot;[-5c]quot;,quot;Sabrinaquot;,quot;Hquot;,quot;Aaquot;); print quot;Isi elemen-elemen larik kata = quot;, @kata ,quot;nquot;; print quot;Elemen dimulai dari indeks ke-0, isi elemen ke-3 = quot;, $kata[2]; 28
  29. 29. www.geocities.com/raja_pangalengge/PEd Tipe Data Numerik: 1bilangan.pl @bil=(7,56,-5,-11.2,90,0.6); print quot;Isi elemen-elemen larik bil = quot;, @bil ,quot;nquot;; print quot;Elemen dimulai dari indeks ke-0, isi elemen ke-4 = quot;, $bil[3]; Algoritma Marbulang P7 Diuraikan sebagai berikut: char[i+7] ; i=0 jika char[0] ← char[7], maka selanjutnya char[i+1] jika diimplementasikan pada kata berikut ini: Nahumdimana menghasilkan kata baru berikut ini: manaNahumdi Berikut diimplementasikan dengan script PERL: marbulangp7.pl @Kara=('N','a','h','u','m','d','i','m','a','n','a'); $N=@Kara; $j=7; print quot;Kata yang akan dimanipulasi: quot;; for($i=0;$i<$N;$i++) { print $Kara[$i] , quot; quot;; } print quot;nquot;; print quot;Dimanipulasi dengan Algoritma Marbulang P7:quot;; print quot;nquot;; print $Kara[$j]; for($i=0;$i<$N;$i++) { $j=$j+1; if($j>=$N && $j<($N+7)) { print $Kara[$j-$N]; } else { print $Kara[$j]; } } Kasus: Menampilkan setiap karakter yang telah dimasukkan oleh user, namun dengan syarat panjang karakter dibatasi dengan terlebih dahulu ditetapkan oleh user. Misalkan, kata yang dimasukkan: ‘hai’. inputlarik.pl print quot;Panjang kata yang diinginkan?: quot;; $N=<>; @kata; for($i<0;$i<$N;$i++) { print quot;Karakter ke-quot;, $i+1 ,quot;: quot;; $kata[$i]=<>; } print quot;nquot;; print quot;Kata yang Anda ketikkan: nquot;; for($i=0;$i<$N;$i++) { print $kata[$i]; 29
  30. 30. www.geocities.com/raja_pangalengge/PEd } print quot;Selesai...quot;; MATRIKS Penggunaan larik banyak dimanfaatkan untuk operasi matriks. Yang dimaksud dengan matriks adalah sejumlah data ber-tipe numerik yang menempati posisi baris dan kolom yang disebut elemen dengan formulasi Amxn; dimana m=baris dan n=kolom. Indeks dimulai dengan 1. Misalkan: sebuah matriks A dengan ukuran 2x3 berisi elemen masing-masing: A[1][1] = -2 A[1][2] = 2 A[1][3] = 1 A[2][1] = 3 A[2][2] = -1 A[2][3] = 5 Selengkapnya matriks A dituliskan sebagai berikut:  − 2 2 1 A2 x 3 =    3 − 1 5 Dalam script PERL dituliskan sebagai berikut: matriks.pl $A[0][0]=-2; $A[0][1]=2; $A[0][2]=1; $A[1][0]=3; $A[1][1]=-1; $A[1][2]=5; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;A[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $A[$i][$j]; print quot;nquot;; } } Tampilan jalannya script matriks.pl: 30
  31. 31. www.geocities.com/raja_pangalengge/PEd  − 2 2 1 − 10 10 5  Jika : A2 x 3 =  x 5 =   15 − 5 25  3 − 1 5   − 10 10 5  Maka hasil matriks yang baru: A2 x 3 =    15 − 5 25 Script-nya dituliskan sebagai berikut: matrik.pl $A[0][0]=-2; $A[0][1]=2; $A[0][2]=1; $A[1][0]=3; $A[1][1]=-1; $A[1][2]=5; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;A[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $A[$i][$j]; print quot;nquot;; } } print quot;nquot;; print quot;[[A] x 5, hasilnya = nquot;; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;C[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $A[$i][$j]*5; print quot;nquot;; } } print quot;Dituliskan secara lengkap:nquot;; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;[quot;, $A[$i][$j]*5 ,quot;]quot;; } print quot;nquot;; } Tampilan jalannya script matrik.pl: 31
  32. 32. www.geocities.com/raja_pangalengge/PEd Script matrik.pl bisa juga dituliskan kembali sebagai berikut, dimana hasil perkalian matriks A dengan konstanta 5 disimpankan ke matriks C: matrik1a.pl $A[0][0]=-2; $A[0][1]=2; $A[0][2]=1; $A[1][0]=3; $A[1][1]=-1; $A[1][2]=5; @C; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;A[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $A[$i][$j]; print quot;nquot;; } } print quot;nquot;; print quot;[C]=[A] x 5, hasilnya = nquot;; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { $C=$A[$i][$j]*5; print quot;C[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $C; print quot;nquot;; } } Kelemahan interpreter dibandingkan dengan compiler adalah terletak pada eksekusi dan storing data serta hasil eksekusi sekaligus dilakukan di RAM (Random Access Memory), sehingga saat program telah selesai dilaksanakan, maka saat itu juga seluruh data hasil eksekusi langsung dihapus dari RAM. Inilah yang menyebabkan pada script matrik1.pl, isi matriks C (perhatikan bagian yang ditunjuk anak panah) bernilai 25, karena hanya merekam nilai hasil eksekusi yang terakhir (A[2][3] x 5). matrik1.pl $A[0][0]=-2; $A[0][1]=2; $A[0][2]=1; $A[1][0]=3; $A[1][1]=-1; $A[1][2]=5; @C; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;A[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $A[$i][$j]; print quot;nquot;; } } print quot;nquot;; print quot;[C]=[A] x 5, hasilnya = nquot;; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { $C=$A[$i][$j]*5; print quot;C[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $C; print quot;nquot;; } 32
  33. 33. www.geocities.com/raja_pangalengge/PEd } print quot;Dituliskan secara lengkap:nquot;; for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;[quot;, $C ,quot;]quot;; } print quot;nquot;; } Misalkan: A2x3 - B3X2, hasilnya disimpankan ke matriks baru, C, dengan ukuran baru 2x2; disebut matriks kembar.  − 2 2 1 A2 x 3 =    3 − 1 5 1 0 − 2 B2 x 3 =   3 − 3 1  (−2 − 1) (2 − 0) (1 − (−2)) − 3 2 3 C 2 x3 =  = (5 − 1)   0 2 4  (3 − 3) (−1 − (−3))   Dituliskan dalam script PERL sebagai berikut: matrikab.pl $A[0][0]=-2; $A[0][1]=2; $A[0][2]=1; $A[1][0]=3; $A[1][1]=-1; $A[1][2]=5; $B[0][0]=1; $B[0][1]=0; $B[0][2]=-2; $B[1][0]=3; $B[1][1]=-3; $B[1][2]=1; print quot;Matriks A:nquot;; 33
  34. 34. www.geocities.com/raja_pangalengge/PEd for($i=0;$i<2;$i++) { for($j=0;$j<3;$j++) { print quot;A[quot;, $i+1 ,quot;][quot;, $j+1 ,quot;]=quot;, $A[$i][$j]; print quot;nquot;; } } print quot;nMatriks B:nquot;; for($j=0;$j<2;$j++) { for($k=0;$k<3;$k++) { print quot;B[quot;, $j+1 ,quot;][quot;, $k+1 ,quot;]=quot;, $B[$j][$k]; print quot;nquot;; } } print quot;nquot;; print quot;[A] - [B], hasilnya: nquot;; for($i=0;$i<2;$i++) { for($k=0;$k<3;$k++) { print quot;C[quot;, $i+1 ,quot;][quot;, $k+1 ,quot;]=quot;, $A[$i][$k]-$B[$i][$k]; print quot;nquot;; } } Tampilan jalannya script matrikab.pl: Mengurutkan elemen larik: Mini-Maks (dari kecil ke besar) Misalkan sebuah larik data dengan isi elemennya sebagai berikut: data = (98,5,12,-4,0,-22,3,-7); Maka diurutkan dari kecil ke besar sebagai berikut: data = (-22,-7,-4,0,3,5,12,98); Script-nya sebagai berikut: min2mkas.pl @data = (98,5,12,-4,0,-22,3,-7); print quot;Larik data awal:nquot;; for($i=0;$i<8;$i++) { print $data[$i] ,quot; quot;; } for($i=0;$i<8;$i++) { 34
  35. 35. www.geocities.com/raja_pangalengge/PEd for($j=0;$j<8-$i-1;$j++) { if($data[$j]>$data[$j+1]) { $temp=$data[$j]; $data[$j]=$data[$j+1]; $data[$j+1]=$temp; } } } print quot;nSetelah diurutkan dari kecil ke besar:nquot;; for($i=0;$i<8;$i++) { print $data[$i] ,quot; quot;; } Tampilan jalannya script min2maks.pl: Contoh lain: min2max.pl @urut=(900,76,-5,45,-666,3); print quot;Diurutkan dari terkecil ke terbesar: quot;; for($i=0;$i<6;$i++) { for($j=0;$j<6-$i-1;$j++) { if($urut[$j]>$urut[$j+1]) { $temp=$urut[$j]; $urut[$j]=$urut[$j+1]; $urut[$j+1]=$temp; } } } for($i=0;$i<6;$i++) { print $urut[$i] ,quot; quot;; } Contoh: Sejumlah data dengan panjang 7, ber-tipe numerik, dimasukkan oleh user secara acak; selanjutnya akan diurutkan dari terbesar sampai dengan terkecil. Misalkan: 35
  36. 36. www.geocities.com/raja_pangalengge/PEd Numerik=(-11,22,-3,94,25,36,17); Diurutkan menjadi: Numerik=( 94,36,25,22,17,-3,-11); maks2min.pl @Numerik; print quot;Masukkan data maks. 7, sbb:nquot;; for($i=0;$i<7;$i++) { print quot;Data ke-quot;, $i+1 ,quot;: quot;; chomp($Numerik[$i]=<>); } print quot;nquot;; print quot;Data yang Anda masukkan: quot;; for($i=0;$i<7;$i++) { print $Numerik[$i] ,quot; quot;; } print quot;nquot;; print quot;Diurutkan menjadi: quot;; for($i=0;$i<7;$i++) { for($j=0;$j<7-$i-1;$j++) { if($Numerik[$j]<$Numerik[$j+1]) { $temp=$Numerik[$j]; $Numerik[$j]=$Numerik[$j+1]; $Numerik[$j+1]=$temp; } } } for($i=0;$i<7;$i++) { print $Numerik[$i] ,quot; quot;; } Blok pada script maks2min.pl ini: ... for($i=0;$i<7;$i++) { print $Numerik[$i] ,quot; quot;; } dapat digantikan seperti pada script berikut ini: max2min1.pl @urut; print quot;Pemasukan data sebanyak 7 kalinquot;; for($i=0;$i<7;$i++) { print quot;Data ke-quot;, $i+1 ,quot;: quot;; chomp($urut[$i]=<>); } print quot;nquot;; print quot;Diurutkan dari terbesar ke terkecil: quot;; for($i=0;$i<7;$i++) { for($j=0;$j<7-$i-1;$j++) { if($urut[$j]<$urut[$j+1]) { $temp=$urut[$j]; $urut[$j]=$urut[$j+1]; $urut[$j+1]=$temp; } } } print quot;@urutquot;; 36
  37. 37. www.geocities.com/raja_pangalengge/PEd Tampilan jalannya script max2min1.pl: Manipulasi String terhadap Larik Mengurutkan karakter pada sebuah string Misalkan ada sebuah string:”Sebentar lagi kedatangan Raja Mangabing akan disambut di kota Chicago” dimana disimpankan ke larik bernama larik. Selanjutnya akan diurutkan setiap kata berdasar urutan kode ASCII 8bit- nya terhadap karakter pertama kata tersebut. Hasilnya setelah diurutkan: Chicago Mangabing Raja Sebentar akan di disambut kedatangan kota lagi sortstr.pl @larik=qw(Sebentar kedatangan Raja Mangabing akan disambut di kota Chicago); @larik = sort(@larik); print quot;@larikquot;; Dari hasil jalannya script sortstr.pl, dapat disimpulkan bahwa level huruf besar di bawah dari level huruf kecil (berdasar kode desimal ASCII-nya). Analogi dengan kasus sortstr.pl, namun setiap kata terlebih dahulu diubah ke huruf kecil lalu diurutkan; seperti berikut ini: akan chicago di disambut kedatangan kota mangabing raja sebentar sortstr1.pl @larik=qw(Sebentar kedatangan Raja Mangabing akan disambut di kota Chicago); foreach $ini (@larik) { push(@coba,quot;L$iniquot;); } @coba = sort(@coba); print quot;@cobaquot;; Mengubah bentuk string ke larik Contoh: 37
  38. 38. www.geocities.com/raja_pangalengge/PEd kalimat=quot;Segera-saksikan-siaran langsung basket di stasiun Sagoeman TV.quot;; str2larik1.pl $kalimat=quot;Segera-saksikan-siaran langsung basket di stasiun Sagoeman TV.quot;; @larik = split('-',$kalimat); print quot;@larikquot;; Pada string yang diisikan ke variabel kalimat, yang dihilangkan antar kata agar diubah ke bentuk larik adalah karakter: ‘–’. Contoh: nama=quot;Tessi,Sentot Kho,Jaka Haryatno,Buchori,Zebulon,Renee,Indriquot;; str2larik.pl $nama=quot;Tessi,Sentot Kho,Jaka Haryatno,Buchori,Zebulon,Renee,Indriquot;; @larik = split(',',$nama); print quot;@larikquot;; Pada string yang diisikan ke variabel nama, yang dihilangkan antar kata agar diubah ke bentuk larik adalah karakter: ‘,’. Mengubah bentuk larik ke string Contoh: larik=(quot;Segeraquot;,quot;saksikanquot;,quot;siaranquot;,quot;langsungquot;,quot;basketquot;,quot;diquot;,quot;stasiunquot;,quot;Sagoemanquot;,quot; TVquot;,quot;.quot;); larik2str.pl @larik=(quot;Segeraquot;,quot;saksikanquot;,quot;siaranquot;,quot;langsungquot;,quot;basketquot;,quot;diquot;,quot;stasiunquot;,quot;Sagoemanquot; ,quot;TVquot;,quot;.quot;); $kata = join(',',@larik); print quot;$kataquot;; Teknik PUSH dan POP pada elemen larik Misalkan: sejumlah nama siswa/i dimasukkan ke dalam larik Data, sebagai berikut: Data = (”Mulyani”,”Boedyotto”,”Rahma”,”Tina”); Untuk mendapatkan jumlah elemen larik Data digunakan fungsi: scalar(@Data); Seperti ditunjukkan script berikut: pjglarik.pl @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); $N=scalar(@Data); print quot;Larik Data: quot;; for($i=0;$i<$N;$i++) { print $Data[$i] ,quot; quot;; } print quot;nPanjang larik Data = quot;, $N; Jika ingin dimasukkan elemen baru ke larik Data bernilai ‘Nahason’, maka akan ditambahkan ke setelah elemen terakhir; yakni setelah elemen ke-3, elemen baru menempati posisi indeks ke-4 (larik dimulai indeks ke-0). Hasilnya sebagai berikut: Data = (‘”Mulyani”,”Boedyotto”,”Rahma”,”Tina”,”Nahason”); 38
  39. 39. www.geocities.com/raja_pangalengge/PEd push1.pl @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); $N=scalar(@Data); print quot;Larik Data: quot;; for($i=0;$i<$N;$i++) { print $Data[$i] ,quot; quot;; } push(@Data, quot;Nahasonquot;); print quot;nLarik Data yang baru: quot;, quot;@Dataquot;; Baris kode ini: print quot;nLarik Data yang baru: quot;, quot;@Dataquot;; dapat juga dituliskan begini: print quot;nLarik Data yang baru: @Dataquot;; Menambah sekaligus dua elemen baru: push2.pl @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); $N=scalar(@Data); print quot;Larik Data: quot;; for($i=0;$i<$N;$i++) { print $Data[$i] ,quot; quot;; } push(@Data, quot;Nahasonquot;,quot;Moniqequot;); print quot;nLarik Data yang baru: quot;, quot;@Dataquot;; Menambah elemen baru di awal elemen larik: shift1.pl @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); $N=scalar(@Data); print quot;Larik Data: quot;; for($i=0;$i<$N;$i++) { print $Data[$i] ,quot; quot;; } unshift(@Data, quot;Sentotquot;); print quot;nLarik Data yang baru: quot;, quot;@Dataquot;; Menambah sekaligus dua elemen baru di awal elemen larik: shift2.pl @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); $N=scalar(@Data); print quot;Larik Data: quot;; for($i=0;$i<$N;$i++) { print $Data[$i] ,quot; quot;; } unshift(@Data, quot;Sentotquot;,quot;Latiefquot;); print quot;nLarik Data yang baru: quot;, quot;@Dataquot;; Menampilkan isi larik Data dapat juga digunakan script berikut: @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); $A=quot;@Dataquot;; print quot;nquot;, $A; Mengetahui panjang larik Data dapat juga digunakan script berikut: @Data=(quot;Mulyaniquot;,quot;Boedyottoquot;,quot;Rahmaquot;,quot;Tinaquot;); 39
  40. 40. www.geocities.com/raja_pangalengge/PEd $aa=@Data; print quot;nquot;, $aa; Contoh: larik siswa berisi elemen-elemen sebagai berikut: siswa = (”Moniqe”,”Lue”,”Rose”,”Tina”,”Nahason”,”Mulyani”); Jika elemen ‘Mulyani’ ingin dihapus, maka digunakan script berikut: pop1.pl @siswa=(quot;Moniqequot;,quot;Luequot;,quot;Rosequot;,quot;Tinaquot;,quot;Nahasonquot;,quot;Mulyaniquot;); $N=scalar(@siswa); print quot;Larik siswa: quot;; for($i=0;$i<$N;$i++) { print $siswa[$i] ,quot; quot;; } pop(@siswa); print quot;nLarik siswa yang baru: quot;, quot;@siswaquot;; Menghapus sekaligus dua elemen di akhir larik: pop2.pl @siswa=(quot;Moniqequot;,quot;Luequot;,quot;Rosequot;,quot;Tinaquot;,quot;Nahasonquot;,quot;Mulyaniquot;); $N=scalar(@siswa); print quot;Larik siswa: quot;; for($i=0;$i<$N;$i++) { print $siswa[$i] ,quot; quot;; } pop(@siswa); print quot;nLarik siswa yang baru: quot;, quot;@siswaquot;; pop(@siswa); print quot;nLarik siswa yang baru lagi: quot;, quot;@siswaquot;; Menghapus elemen di awal larik: shift1.pl @siswa=(quot;Moniqequot;,quot;Luequot;,quot;Rosequot;,quot;Tinaquot;,quot;Nahasonquot;,quot;Mulyaniquot;); $N=scalar(@siswa); print quot;Larik siswa: quot;; for($i=0;$i<$N;$i++) { print $siswa[$i] ,quot; quot;; } shift(@siswa); print quot;nLarik siswa yang baru: quot;, quot;@siswaquot;; Menghapus sekaligus dua elemen di awal larik: shift2.pl @siswa=(quot;Moniqequot;,quot;Luequot;,quot;Rosequot;,quot;Tinaquot;,quot;Nahasonquot;,quot;Mulyaniquot;); $N=scalar(@siswa); print quot;Larik siswa: quot;; for($i=0;$i<$N;$i++) { print $siswa[$i] ,quot; quot;; } shift(@siswa); print quot;nLarik siswa yang baru: quot;, quot;@siswaquot;; shift(@siswa); print quot;nLarik siswa yang baru lagi: quot;, quot;@siswaquot;; 40
  41. 41. www.geocities.com/raja_pangalengge/PEd Tabel Fungsi Larik: Function Definisi push(@array, element) menambahkan ke akhir @array pop(@array) menghapus elemen terakhir dari @array unshift(@array, element) menambahkan ke awal @array shift(@array) menghapus elemen pertama dari @array delete $array[index] menghapus elemen berdasar indeks Contoh: Mencari mean dan modus dari 7 kali pemasukan bilangan oleh user: meanmodus.pl @bil; print quot;Pemasukan bilangan sebanyak 7 kalinquot;; for($i=0;$i<7;$i++) { print quot;Data[quot;, $i+1 ,quot;]: quot;; chomp($bil[$i]=<>); } $tot=0; for($i=0;$i<7;$i++) { $tot+=$bil[$i]; } $mean=$tot/7; print quot;Rata-rata = quot;, $mean; print quot;nquot;; print quot;Data diurutkan dari kecil ke besar: quot;; for($i=0;$i<7;$i++) { for($j=0;$j<7-$i-1;$j++) { if($bil[$j]>$bil[$j+1]) { $temp=$bil[$j]; $bil[$j]=$bil[$j+1]; $bil[$j+1]=$temp; } } } print quot;@bilquot;; $hasil=0; for($j=0;$j<7;$j++) { if($bil[$j]==$bil[$j+1]) { $hasil+=1; } } print quot;nModus sebanyak quot;, $hasil+1; Terlihat pada blok script meanmodus.pl, pencarian banyaknya modus bilangan dilakukan setelah bilangan-bilangan tersebut diurutkan terlebih dahulu; dengan demikian pencarian banyak modus dapat dilakukan dengan mudah. Selain modus, juga dicari nilai rata-tara bilangan tersebut (mean), dengan cara setiap bilangan ditambahkan ke sebuah variabel penampung, $hasil, yang di- reset=0. sehingga tanpa bilangan-bilangan itu pun diurutkan terlebih dahulu, nilai mean dapat dicari karena tujuannya hanyalah pencacahan. Pencacahan adalah penjumlahan secara berulang-ulang sebanyak sekian kali untuk mendapatkan total akhir jumlah bilangan (disebut juga dengan counter). 41
  42. 42. www.geocities.com/raja_pangalengge/PEd Tampilan jalannya script meanmodus.pl: Kelemahan script meanmodus.pl ini adalah belum dapat menentukan nilai modus - nya, hanya banyaknya modus yang muncul; untuk itu alternatif lain, dapat dituliskan sebagai berikut: meanmodus1.pl @bil; print quot;Pemasukan bilangan sebanyak 7 kalinquot;; for($i=0;$i<7;$i++) { print quot;Data[quot;, $i+1 ,quot;]: quot;; chomp($bil[$i]=<>); } $tot=0; for($i=0;$i<7;$i++) { $tot+=$bil[$i]; } $mean=$tot/7; print quot;Rata-rata = quot;, $mean; print quot;nquot;; print quot;Data diurutkan dari kecil ke besar: quot;; for($i=0;$i<7;$i++) { for($j=0;$j<7-$i-1;$j++) { if($bil[$j]>$bil[$j+1]) { $temp=$bil[$j]; $bil[$j]=$bil[$j+1]; $bil[$j+1]=$temp; } } } print quot;@bilquot;; $hasil=0; for($i=0;$i<7;$i++) { $ref=$bil[$i]; if($bil[$i]==$bil[$i+1]) { $hasil+=1; } for($j=0;$j<7-$i-1;$j++) { if($bil[$j]==$ref) { $x=$ref; } 42
  43. 43. www.geocities.com/raja_pangalengge/PEd } } print quot;nModus=quot;, $x ,quot; sebanyak quot;, $hasil+1; Terlihat pada script meanmodus1.pl, untuk mendapatkan nilai modus digunakan variabel ref sebagai penampung sementara terhadap nilai pada blok looping pertama ($i) ke blok looping ke-2 ($j) jika ditemukan bilangan yang sama. Tampilan jalannya script meanmodus1.pl: • Menampilkan Tabel Perkalian 1 s.d 10 Untuk mendapatkan tabel ini cukup digunakan statement logika perulangan for..i, sebagai berikut: kali110.pl print quot;Tabel Perkalian dari 1 s.d 10:nquot;; for($i=1;$i<=10;$i++) { for($j=1;$j<=10;$j++) { print $i ,quot;*quot;, $j ,quot;=quot;, $i*$j; print quot;tquot;; } print quot;nquot;; } Tampilan jalannya script kali110.pl: 43
  44. 44. www.geocities.com/raja_pangalengge/PEd Penggunaan Fungsi (Function) Function (fungsi) dalam sebuah bahasa pemrograman dapat didefinisikan sebagai suatu blok program yang berisi suatu kode untuk mengerjakan suatu bagian lain dalam program itu sendiri. Seperti halnya dengan sebuah fungsi matematika yang dikenal dalam aljabar matematika dasar yang dimaksudkan untuk merepresentasikan sebuah pengerjaan terhadap serangkaian operasi matematika. Misalkan: Dalam matematika dasar diketahui sejumlah rangkaian pengerjaan sebagai berikut: (2).3 + 5 = 11 (0.5).3 + 5 = 6.5 (-2).3 + 5 = -1 (10).3 + 5 = 35 maka, dapat dibangun sebuah fungsi matematika untuk mengerjakan instruksi tersebut yakni sebuah fungsi regresi linier: 3x + 5 ; dimana x = {Bilangan Real}, atau dapat ditulikan kebali fungsi ini menjadi: y = f(x) = 3x + 5 Kasus ini dapat dituliskan dalam script PERL sebagai berikut: fungsi1.pl $x=2; print quot;x = quot;, $x , quot;nquot;; $hasil=itung($x); sub itung { $y=3*$x+5; print quot;Hasil = quot;, $y; exit; } Fungsi juga dapat digunakan untuk menampilkan pesan ke layar, seperti berikut ini: fpesan.pl $jawab=1; if($jawab==1) { tampilkan1(); } else { tampilkan2(); } sub tampilkan2() { print quot;Oke, semoga sukses...quot;; exit; } sub tampilkan1() { print quot;Selamat Datang di kota Bandung.quot;; exit; } Contoh: Menampilkan nilai f(x)=3x+5 untuk rentang x=1 s.d x=7. fungsi2.pl print quot;xt3x+5nquot;; 44
  45. 45. www.geocities.com/raja_pangalengge/PEd print quot;=============nquot;; for($x=1;$x<=7;$x++) { print $x ,quot;tquot;, itung($x), quot;nquot;; } sub itung { $y=3*$x+5; } Analog pada script fungsi2.pl, namun menggunakan metode user-input: 1fungsi12.pl print quot;Batas Bawah: quot;; chomp($bawah=<>); print quot;Batas Atas: quot;; chomp($atas=<>); print quot;xt3x+5nquot;; print quot;=============nquot;; for($x=$bawah;$x<=$atas;$x++) { print $x ,quot;tquot;, itung($x), quot;nquot;; } sub itung { $y=3*$x+5; } Contoh: Selesai kasus ini, f(x,y) = 3x+5y; dimana x=y, untuk x=-2 s.d x=3. Solusi: 1fungsi3.pl print quot;Batas Bawah: quot;; chomp($bawah=<>); print quot;Batas Atas: quot;; chomp($atas=<>); print quot;xtyt3x+5ynquot;; print quot;=========================nquot;; for($x=$bawah;$x<=$atas;$x++) { $y=$x; print $x ,quot;tquot;, $y ,quot;tquot;, itung($x,$y), quot;nquot;; } sub itung { $z=3*$x+5*$y; } Contoh: 45
  46. 46. www.geocities.com/raja_pangalengge/PEd Kdkk Kdkd Kdkd Kdkd Dkdkd Kdkd Kdkd Kdkdk Kdkdk kdkdk 46
  47. 47. www.geocities.com/raja_pangalengge/PEd 47

×