Pemrograman Web Perl
Dianjurkan untuk mempergunakan PERL PERL Practical Extraction & Report Language Tipe data : Array Array assosiatif Skalar string,bilangan (numerik) Penamaan variabel Case-sensitive Diawali oleh ($) dan karakter huruf (A-Z,a-z) Dianjurkan untuk mempergunakan Modul strict atau warnings Strict Akan menghentikan program jika ditemukan kemungkinan masalah Warnings Akan memberikan warnings (peringatan) jika ditemukan kemungkinan masalah
Operator : PERL Operator Aritmatika Unary Operator + dan - Operator Operasi + perkalian - Pengurangan * Perkalian ** Pangkat / Pembagian % Modulus ++ Penaikan -- Penurunan
Operasi Keluaran dan Masukan Sintaks : Print argumen_1,argumen_2,…; Print; // melakukan print variabel global $_ Print (argumen) Printf([penanganan_berkas) format,argumen_1 dan argumen_2) Format : No Format 1 %s Str 6 %x Hexa 2 %b Biner 7 %X 3 %u Unsigned 8 %f Float 4 %d atau %i Desimal Integer 9 %e atau %E Scientific 5 %o oktal 10 %g general
Pemasukan data <STDIN> Input data Pemasukan data <STDIN> Contoh : Print “input =” ; $data=<STDIN>; print “output = ”.$data;
Tipe data Operand (numerik) Tipe data Operand (String) Operator Operator Penugasan Operator koma : Sintaks : Ekspresi_1, ekspresi_2, …, ekspresi_1 Contoh : (komaoperator.pl) $a=2; $b=5;$d = (++$a,++$b,$a+$b) print (“d = “.$d); Hasil : d= 9 Operator relasional No Operator 1. = 2. += 3. -= 4. *= 5. /= 6. %= 7. **= 8. .= No Tipe data Operand (numerik) Tipe data Operand (String) 1. == eq 2. != ne 3. > gt 4. < lt 5. >= ge 6. <= le
Operator Operator Relasional Tambahan Operator Bitwise <=> Tipe data Operand = Numerik Output : (-1,0,1) Contoh : a <=>b Hasil : 1 jika a > b 0 jika a = b -1 jika a < b cmp Tipe data Operand = string a cmp b Operator Bitwise No Operasi Operator (String) 1. And & 2. Or | 3. Not ~ 4. Xor ^ 5. Bitwise Geser kiri << 6. Bitwise Geser kanan >>
Penyeleksian kondisi if statement if-else statement if (kondisi) { statement; } if-else statement if (kondisi){ statement ;}# dilaksanakan jika kondisi = true else{ statement;} # dilaksanakan jika kondisi = false if-elsif-else statement if (kondisi_1){ statement;} # dilaksanakan jika kondisi 1 = true elsif (kondisi_2){ … elsif (kondisi_n){ statement;} # dilaksanakan jika kondisi n = true else { statement; # dilaksanakan jika seluruh kondisi = false
Switch dan unless Switch Unless Sintaks (perl 5.10) use Switch; switch ($val) { case 1 { statement ;} case 2 { statement ;} else { statement; } } Contoh : (switch.pl) $val=10; case 1 { print "number 1" } else { print "tidak ada case yang tepat" } Unless unless(kondisi) { statement;} # dilaksanakan bila kondisi = false
Perulangan do-while do-until while (kondisi){ until (kondisi){ statement; # dilaksanakan selama kondisi = true dan minimal dilaksanakan 1 kali }while (kondisi) do-until statement; # dilaksanakan selama kondisi = false dan minimal dilaksanakan 1 kali } until (kondisi) while (kondisi){ statement; # dilaksanakan selama kondisi = true dan minimal dilaksanakan 0 kali } until (kondisi){ statement; #dilaksanakan selama kondisi = false dan minimal dilaksanakan 0 kali
Array dan list List Array Membuat array (Contoh : array.pl) Sederetan nilai skalar yang diletakkan dalam tanda kurung Array Variabel berindeks Membuat array (Contoh : array.pl) @var_array =(); @var_array=(1,2,3); @var_array=(1..10); @var_array2=@var_array1 var_array2 dan var_array1 adalah 2 variabel yang berbeda tetapi var_array 2 akan diinisialisasi dengan nilai elemen pada var_array 1 Mengetahui jumlah elemen array $var_skalar = @var_array Mengetahui indeks terakhir dari array Menggunakan operator $# Contoh : @data = (1..10); print “indeks terakhir =“.$#data; Perulangan foreach : Sintaks : Foreach $elemen_array(@var_array){ statement; }
Memindahkan isi variabel array ke variabel skalar : Array dan list Memindahkan isi variabel array ke variabel skalar : ($skalar1,$skalar2,..,$skalar_n)=@data; Contoh : (arraykeskalar.pl) @data = {1..10} ($elemendata_0,$elemendata_1)=@data; print “$elemendata_0\n $elemendata_1\n”; Hasil printout : 1 2
Potongan array (array slice) Array dan list Potongan array (array slice) Memungkinkan sebagian elemen dari variabel array 1 dipindahkan ke variabel array 2 Contoh : (arrayslice.pl) @data=(1..10); @data_slice=@data[0,1]; #memindahkan elemen array data dengan indeks ke 0 dan 1 ke variabel array #data_slice foreach $elemendata(@data_slice){ print $elemendata.”\n”; } Hasil : 1 2
Array dan list Fungsi-fungsi yang berhubungan dengan pemrosesan array dan list : Join Menghasilkan string yang merupakan gabungan elemen-elemen list Contoh : (join.pl) @data=(1..7); $hasiljoin=join (",",@data); print $hasiljoin."\n"; Hasil : 1,2,3,4,5,6,7 push dan pop menambah atau mengambil elemen pada array Contoh : (pushpop.pl) @data=(1..10); $elemen =11; push(@data,$elemen); print "Isi variabel array data\n"; foreach $elemendata(@data){ print $elemendata."-"; } print "\n"; $elemenawal=pop(@data); print "Hasil pop=".$elemenawal."\n"; print "Isi dari array setelah pop="."\n"; Hasil : Isi variabel array data 1-2-3-4-5-6-7-8-9-10-11- Hasil pop=11 Isi dari array setelah pop= 1-2-3-4-5-6-7-8-9-10-
Array dan list Fungsi-fungsi yang berhubungan dengan pemrosesan array dan list: Reverse Memperoleh list dengan urutan urutan elemen dalam list dalam keadaan terbalik Contoh : (reverse.pl) @data=(1..11); @data=reverse(@data); foreach $elemendata(@data){ print "*".$elemendata;} Hasil : *11*10*9*8*7*6*5*4*3*2*1 shift dan unshift Shift Menggeser isi variabel array sehingga elemen awal terhapus dari variabel array Unshift Menambah elemen variabel array pada bagian awal array dan menggeser isi awal sehingga total elemen bertambah 1. Contoh : (shifunshift.pl) shift(@data); print "*".$elemendata; } print "\n"; unshift(@data,(0,1)); Hasil *2*3*4*5*6*7*8*9*10*11 *0*1*2*3*4*5*6*7*8*9*10*11
Array dan list Fungsi-fungsi yang berhubungan dengan pemrosesan array dan list: Sort Melakukan sorting elemen list Sort karakter Sort menaik @data = sort @data; @data = sort {$a cmp $b} @data; # tanpa memperhatikan huruf besar/kecil @data = sort {uc($a) cmp uc($b)} @data; @data = sort {lc($a) cmp lc($b)} @data; Sort menurun @data = sort {$b cmp $a} @data;
Array dan list Fungsi-fungsi yang berhubungan dengan pemrosesan array dan list: Sort Melakukan sorting elemen list Sort numerik Sort menaik @data = sort @data; @data = sort {$a <=> $b} @data; Sort menurun @data = sort {$b <=> $a} @data;
Array dan List #sort numerik (sort.pl) #Sort karakter (sort.pl) @data=(1..7); @data=sort@data; foreach $elemendata(@data){ print "*".$elemendata; } print "\n"; @data=sort{$a<=>$b}@data; @data=sort{$b<=>$a}@data; #Sort karakter (sort.pl) @data= ("a".."e","A".."E"); @data=sort @data; foreach $elemendata(@data){ print "*".$elemendata; } print "\n"; @data=sort{$b cmp $a}@data; @data=sort{uc($a) cmp uc($b)}@data; @data=sort{lc($b) cmp lc($a)}@data; print "\n“; Hasil : *A*B*C*D*E*a*b*c*d*e *e*d*c*b*a*E*D*C*B*A *a*A*b*B*c*C*d*D*e*E *e*E*d*D*c*C*b*B*a*A *1*2*3*4*5*6*7 *7*6*5*4*3*2*1
Array dan List Splice Dapat digunakan untuk menghapus atau mengganti elemen array splice (array,ofset) Menghapus elemen array mulai dari indeks ofset splice (array,ofset,n) Menghapus n elemen array mulai dari indeks ofset splice (array,ofset,n,list) Menghapus n elemen array mulai dari indeks ofset dan menyisipkan isi list ke dalam array Mengembalikan elemen array yang dipotong.
Array dan List Splice (splice.pl) @data=("a".."e"); print "Array awal :\n"; foreach $elemendata(@data){ print "*".$elemendata; } print "\n Hasil yang dipotong dari array awal pada ofset=3 :\n"; @datapotong=splice(@data,3); foreach $elemendata(@datapotong){ print "\n Hasil tersisa pada array awal :\n"; Hasil : Array awal : *a*b*c*d*e Hasil yang dipotong dari array awal pada offset=3 : *d*e Hasil tersisa pada array awal : *a*b*c
Array dan List Splice (splicesisip.pl) @data=("a".."e"); print "Array awal :\n"; foreach $elemendata(@data){ print "*".$elemendata; } print "\n Hasil yang dipotong dari array awal pada offset=3 sebanyak 1 data :\n"; @datapotong=splice(@data,3,1,"f"); foreach $elemendata(@datapotong){ print "\n Hasil tersisa pada array awal dan hasil penyisipan 'f' pada offset 3 :\n"; Hasil : Array awal : *a*b*c*d*e Hasil yang dipotong dari array awal pada offset=3 sebanyak 1 data : *d Hasil tersisa pada array awal dan hasil penyisipan 'f' pada offset 3 : *a*b*c*f*e
Array dan list grep Mengembalikan nilai : Contoh : (grep.pl) list yang sesuai dengan pola yang digunakan, jika variabel yang menampung nilai yang dikembalikan adalah variabel array Jumlah elemen yang sesuai dengan pola jika variabel yang menampung nilai yang dikembalikan adalah variabel skalar. Contoh : (grep.pl) @data="a".."e"; $numerik=grep(!/a/,@data); @hasil=grep(!/a/,@data); print "Hasil variabel skalar =".$numerik."\n"; print "Hasil variabel array ="; foreach $elemendata(@hasil){ print "*".$elemendata; } Hasil : Hasil variabel skalar =4 Hasil variabel array =*b*c*d*e
Array asosiatif (Hash) Array yang memungkinkan indeks (subskrip) bukan numerik Terdiri dari Key (kunci) Value (nilai) Penciptaan %array_assosiatif=( ‘key1’,nilai1; ‘key2’,nilai2;); Pengacuan pada nilai array assosiatif $array_assosiatif{key}; values(array_assosiatif) atau values array_assosiatif Pengacuan pada kunci array assosiatif keys (array_assosiatif); keys array_assosiatif
Array asosiatif Pemakaian fungsi keys Penambahan elemen Keys (%arrayasosiatif) Keys %arrayasosiatif Contoh : (keyassosiatif.pl) %arrayasosiatif = ("a",1,"b",1,"c",1); #atau ("a"=>1,"b"=>1,"c"=>1) foreach $data (keys %arrayasosiatif){ print $data."=".$arrayasosiatif{$data}."\n"; } Penambahan elemen $arrayasosiatif{$kunci}=value; Penghapusan elemen Delete($arrayasosiatif{$kunci}) Fungsi exists Berguna untuk memeriksa keberadaan suatu kunci pada array asosiatif Nilai yang dikembalikan adalah true atau false Sintaks : exists($arrayasosiatif{$kunci})
Fungsi Menyatakan fungsi : Fungsi tanpa return sub namafungsi{ statement; return(nilai); } Fungsi tanpa return Ekspresi terakhir yang dilakukan akan menjadi nilai yang dikembalikan oleh fungsi Memperoleh jumlah argumen yang disertakan pada saat fungsi dipanggil $variabelskalar=@_ Contoh fungsi : (fungsiawal.pl) sub maksimum_list{ $maks = $_[0]; $jum_arg=@_; for ($i=0;$i<$jum_arg;$i++){ $maks=$_[$i]; return($maks); $maksimum=maksimum_list(1..7); print "Nilai Maksimum dari (1..7)\n"; print "Hasil = ".$maksimum;
Variabel global dan lokal Variabel lokal dapat dinyatakan dengan : my local Perbedaan antara my dan local adalah : my hanya bersifat lokal terhadap blok tempat variabel dinyatakan Local bersifat lokal terhadap blok tempat variabel dinyatakan tetapi juga dikenal oleh seluruh fungsi yang dipanggil dari blok tempat variabel local tersebut dinyatakan. Parameter passing pada fungsi by value Contoh Fungsi maksimum list pada contoh sebelumnya by reference Contoh : sub fungsi { my $variabel = $_[0]; $_[0]=$_[1] $_[1]=$variabel; } fungsi($a,$b); #fungsi ini akan menukarkan nilai a dan b
Fungsi Fungsi privat Fungsi yang hanya dikenal dalam blok pernyataan tempat fungsi tersebut didefinisikan. Dinyatakan sebagai fungsi anonim Pendefinisian fungsi anonim : $variabel = sub{ statement; } Pemanggilan fungsi privat : Dilakukan dari tempat fungsi tersebut dinyatakan dan dilakukan dengan mempergunakan : &$variabel(argumen_list) Contoh : (privatfungsi.pl) sub fungsi { my ($arg_1,$arg_2)=@_; my $kuadrat = sub{ return ($_[0]**2; }; return (&$kuadrat ($arg_1)+&$kuadrat ($arg_2)) $a=5;$b=10; $c=fungsi ($a,$b); #statement ini akan menghasilkan c=a**2 + b**2 print “Hasil :”.$c;
Tipe Referensi Tipe Referensi Penugasan referensi Pendereferensian Pada bahasa pemrograman yang lain dikenal sebagai variabel pointer Penugasan referensi $ref_skalar=\$varskalar $ref_array=\@vararray $ref_arrasosiatif =\%vararrasosiatif $ref_glob = \*glob $ref_fungsi=\&fungsi $ref_ref=\$ref Pendereferensian ${$ref_skalar} atau $$ref_skalar @{$ref_array} atau @$ref_array %{$ref_arrasosiatif} atau %$ref_arrasosiatif *{$ref_array} atau *$ref_array &{$fungsi} atau &$fungsi ${${$ref_ref}} atau $$$ref_ref Contoh : (referensi.pl)
Contoh : (referensi.pl) Tipe Referensi Contoh : (referensi.pl) $a=5; $ref_skalar = \$a; print "Hasil referensi \$varskalar=5 ke \$ref_skalar= ".$ref_skalar; print "\nHasil dereferensi \$\$ref_skalar= ".$$ref_skalar."\n"; @var_array=(1..7); $ref_array=\@var_array; print 'Hasil referensi \@var_array(1..7) ke $refarray = '.$ref_array; print "\nHasil dereferensi \@\$ref_skalar = "; foreach (@$ref_array){ print "*".$_; }