Upload presentasi
Presentasi sedang didownload. Silahkan tunggu
1
TUTORIAL PERL
2
PERL Practical Extraction and Report Language
Dikembangkan oleh Larry Wall pada tahun 1987 Perl adalah bahasa interpreter sekaligus kompiler (mirip dengan java). Artinya perl akan mendeteksi setiap baris untuk mencari syntax error sebelum program dijalankan. Bersifat open source Berguna untuk memanipulasi teks
3
Karakteristik PERL Sistem operasi yang didukung
Perl berawal dari Unix systems sebagai perangkat system administration. Perl bekerja pada mesin Macintosh - lihat The MacPerl Pages dan Perl juga bekerja di mesin berbasis Microsoft - lihat ActiveState Tools Corp.
4
Fitur dasar PERL Perl mengambil fitur-fitur terbaik dari bahasa pemrograman lain, seperti C, awk, sed, sh, dan BASIC. Perl juga berjalan dengan database third-party seperti Oracle, Sybase, Postgres, dan yang lainnya melalui antar muka database abstrak yang disebut DBI. Perl dapat bekerja dengan HTML, XML, dan mark-up languages lainnya. Perl mendukung procedural maupun object-oriented programming. Perl dapat berantarmuka dengan library-library C/C++ eksternal melalui XS atau SWIG. Akan mendukung development Java-Perl Lingo (JPL)
5
Contoh program PERL #!/usr/local/bin/perl
#Program menulis kata ‘Apa kabar’ print “Apa kabar?\n”; Program di atas untuk menulis “Apa kabar?” Tulis pada suatu file bernama ‘contoh.p’ Untuk me-run pada Unix/Linux: > perl contoh.p
6
JENIS DATA Nama variabel case sensitive ($data ≠ $DATA)
7
JENIS DATA SCALAR Angka Strings Interpolasi variabel
digits, desimal, eksponensial dll. $jumlah = 550; $jumlah= 5.50 Strings Berada dalam tanda petik single / double; Interpolasi dengan backslash \n (newline) ; \t (tab) ; \U (Uppercase) ; \L (Lower case) print “\Uhalo\n”; HALO print “\ha\Ulo\n”; haLO Interpolasi variabel $harga = ‘Rp 500’ print “Harga pensil adalah $harga\n”; Hasil : Harga pensil adalah Rp 500
8
OPERATOR
9
OPERATOR
10
Array & Data List Suatu list adalah data scalar yang berturutan
Suatu array adalah suatu variabel yang berisi list Suatu array bisa berisi sejumlah elemen (tidak perlu ditentukan panjangnya)
11
Contoh Array @namabulan = (“Januari”, “Februari”, “Maret”);
@john = (47, "brown", 186); @x = (1,2, 3) @y copy nilai x ke y @y = 4, 5) = (1, 2, 3, 4, 5) $z panjang = 5
12
Akses ke array Indeks pada array dimulai dari 0
@nama = (“dani”, “irma”, “jojon”, “lili”); $x = $nama[0] # $x = dani $nama[2] = “gugun” # mengganti “jojon” menjadi “gugun” @siswa = $nama[0,1] berisi “dani’ dan “irma” $i = 2 $x = $nama[$i] # $x= “gugun” $x = $nama[$i- 1] # $x= “irma”
13
Akses ke array 2 @nilai = (1, 2, 3) $x = $nilai[1]; $x = 2
$nilai[2]++; nilai 3 jadi 4 @nilai[0, 1, 2] 1, 1]; = (2, 2, 2) @nama = (“dani”, “irma”, “jojon”, “lili”); @nama = (“lili”, “jojon”, “irma”, “dani”); @siswa = @nama = (“dani, “irma”, “jojon”, “lili”);
14
Control Structures Penggunaan IF / UNLESS if ($nilai > 60)
{ print “Lulus dengan ujian\n”; } else { print “ Tidak lulus ujian\n”; } unless ($nilai > 60) { print “Tidak lulus ujian\n”; }
15
Control Structures if ($nilai >= 80) { print “Lulus ujian dengan nilai baik\n”; } elsif ($nilai >= 60) { print “Lulus ujian dengan nilai cukup\n”; } else { print “Tidak lulus ujian\n”; }
16
Control Structures Penggunaan WHILE / UNTIL $i = 10; while ($i > 5)
{ $x = $i**; print “Kuadrat dari $i adalah $x\n”; } until ($i < 5) { print “ Kuadrat dari $i adalah $i**\n”; }
17
Control Structures Penggunaan for for ($i = 1; $i <= 10; $i++)
{ print “$i \n”; } for ($i=0 ; $i<=$#nama; $i++) { $siswa = $nama[$i]; $siswa =~ tr/a-z/A-Z/; print "$siswa"; }
18
ARRAY Penggunaan foreach foreach $elemen (@nama) {
$elemen =~ tr/a-z/A-Z/; print "$elemen\n"; # tulis semua elemen dengan huruf besar }
19
ARRAY @array = (“sinta",“tina",“dani","dino");
$length # $length nilainya 4 print $#array; # hasilnya 3 print $array[$#array] # hasilnya "dino print # hasilnya 4
20
ARRAY ($a, $b) = (“satu",“dua"); ($satu, @banyak) = (1,2,3,4,5,6)
($array[0],$array[1]) = $array[1],$array[0]); # tukar nilainya
21
Mengubah Isi Array Push Menambahkan list pada bagian akhir dari array.
@array-1 = ("ani","berti","cici","dino"); @array-2 = ("eri","fany"); push berisi ("ani","berti","cici","dino","eri","fany") "gusti"; berisi ("eri","fany","gusti")
22
Mengubah Isi Array Pop Membuang elemen terakhir dari list
@array = ("ani","berti","cici","dino"); $nama = # $nama = "dino" @array = ( "ani","berti","cici")
23
JOIN FUNCTION Join @array = ("ani","berti","cici","dino");
$string = join # $string sekarang mempunyai nilai "ani:berti:cici:dino“ $string = join "+", # $string sekarang mempunyai nilai “+ani+berti+cici+dino"
24
PENGURUTAN Pengurutan yang sesuai alfabet: sort { $a cmp $b } @list;
Pengurutan sesuai numerik: sort { $a <=> $b Pengurutan yang terbalik: sort { $b <=> $a Pengurutan associative array sort { $tabel{$b} <=> $tabel{$a} } ( keys %tabel)
25
Associative Arrays Array normal mengasosiasikan nilai dengan posisi
Associative array diindeks dengan string %nama = (); $nama{“fred”} = “flintstone”; $nama{“bart”} = “simpson”; @list = keys(%nama) @list = (“fred”, “bart”) @keluarga = values(%nama) @keluarga = (“flintstone”, “simpson”)
26
Associative Arrays foreach $i (keys %nama) { print “$nama{$i} \n”; }
while { ($first, $last) = each (%nama) { print “Nama belakang dari $first adalah $last\n”; } foreach $i (sort keys %nama)
27
INPUT/OUTPUT Membuka dan menutup file open(IN, “berita.txt”);
open(OUT, “>hasil.txt”); # tulis ke file hasil.txt open(OUT, “>>hasil.txt”); # append hasil ke file hasil.txt close(OUT) Contoh program #!/usr/local/bin/perl open(OUT, “>hasil.txt”); while ($line = <IN>) { chop($line); # buang carriage return print OUT “$line\n”; # tulis ke output file } close(IN); close(OUT);
28
INPUT/OUTPUT #!/usr/local/bin/perl # menghitung umur print “Tuliskan tahun kelahiran Anda"; $tahun-lahir = <>; chomp($tahun-lahir); $umur = $tahun-lahir; print “Umur Anda adalah ", $umur".\n";
29
INPUT/OUTPUT #!/usr/local/bin/perl # menghitung jumlah baris pada dokumen open INPUTFILE, “<$myfile”; || die “Tidak bisa membuka $myfile\n”; $baris = 0; while($baris = <INPUTFILE>) { $hitung++; } print “$hitung baris terdapat pada berkas $myfile\n”;
30
Regular expressions \b: batas kata \d: digit = [0-9] \n: newline
\r: carriage return \s: karakter white space \t: tab \w: karakter alfanumerik = [A-Za-z0-9] ^: awal dari string $: akhir dari string
31
Regular expressions . : karakter apapun
[bdkp] : karakter b, d, k dan p [a- f] : karakter a sampai f [^a- f] : semua karakter kecuali a sampai f abc|def : string abc atau string def * : nol atau beberapa kali + : sekali atau beberapa kali ? : nol atau satu kali qw() : ("quote word") function qw(ani budi cici) penyingkatan dari (“ani",“budi",“cici").
32
Regular expressions / (ab)*(de)+ / abde abbde bde abadde ababde
33
Regular expressions { 2, 10} : paling sedikit 2 dan paling banyak 10
{2} : tepat 2 / a{5}b{1,4}c{2} / aaaaabcc aaaaabcccc aaaaabc aaaabcc
34
Regular expressions /c[ad]r/ /c[ad]*r/ /[a-g][t-z][0-9]*/ car, cdr
cadr, caddddr /c[ad]*r/ car, cdr, caaaadr, caaadaaar /[a-g][t-z][0-9]*/ au125
35
Mencari Pola dari String
Menggunakan / / while ($kata =~ /ba/) { print “$baris\n”; } Maka semua kata yang mengandung ‘ba’ akan ditemukan: baik, kabar, tiba …
36
Penggantian dan Pencocokan string
s/// : mengubah bagian string // pertama berisi pola yang dicari // kedua berisi pola pengganti $kalimat = “ daerah jawa barat”; if ($kalimat =~ /barat/) { $kalimat = s/barat/timur/; } print “$kalimat\n”; # tertulis “daerah jawa timur” tr/// : mengubah karakter g = ubah semua kemunculan i = tidak membedakan upper-case dan lower-case
37
contoh # ubah kata “kelas” yang muncul pertama
$teks =~ s/kelas/ruang/; # ubah semua kata “kelas” yang muncul $teks =~ s/kelas/ruang/g; # ubah karakter ke huruf kecil $teks =~ tr/[A-Z]/[a-z]/; $teks =~ s/rektorat ui/Rektorat UI/gi; Rektorat ui, rekTOrat ui, REKtorAT UI …
38
contoh $kalimat : “Saya suka coklat!” $kalimat =~ tr/a-z/A-Z/;
$kalimat =~ s/a/A/g; $kalimat : “SAyA sukA coklAt”
39
SPLIT FUNCTION Melakukan tokenisasi pada teks dengan pemisahnya tanda baca (,.;!?()) $string = “Adi Peter Mari Dian"; @list = split(/\s+/, $string); # hasilnya ( “Adi","Peter","Mari","Dian" ) $string = " Adi Peter Mari Dian "; # hasilnya ( "", “Adi","Peter","Mari","Dian", "" )
40
SPLIT FUNCTION $string = “Adi:Peter;Mari---Dian";
# gunakan regular expression @list = split (/[:;]|---/, $string/); # hasilnya (“Adi","Peter","Mari","Dian") $string = “Adi Peter"; # gunakan regular expression kosong untuk memecah huruf @letters= split (//, $string); # hasilnya ( “A",“d",“i"," ","P",“e",“t",“e“, “r”)
41
SPLIT FUNCTION $kalimat = “kelas information retrieval”
($kata, $sisa-kalimat) = split(/ /, $kalimat); $kata = “kelas”; $sisa- kalimat = “information retrieval”;
42
SUBROUTINES Nama subroutines dimulai dengan & Contoh :
Didefinisikan dengan kata sub Contoh : &hitung- frekuensi; sub hitung- frekuensi { if ($daftar[$kata] eq “”) { $daftar[$kata] = 1; } else { $daftar[$kata] = $daftar[$kata] + +; }
43
Contoh program #!/usr/local/bin/perl # menghitung jumlah baris pada dokumen $jumlah-kata = 0; while($baris = <IN>)) { # buang whitespace $baris =~ s/^\s*//; $baris =~ s/\s*$//; # masukkan kata pada suatu = split /\s+/, $baris; }
44
Lanjutan.. # proses tiap kata ... while($kata = { # Jika tidak ada maka jadikan indeks baru if(!ada($indeks{$kata})) $indeks{$kata} = $jumlah-kata++; } # selalu tambahkan frekuensinya $frekuensi{$kata}++;
45
Lanjutan... # sekarang tulis semua kata yang sudah terurut
foreach $kata (sort keys %indeks) { print "$kata mempunyai frekuensi $frekuensi{$kata} dan indeks $indeks{$kata}\n"; }
46
TUGAS Buat program dalam Perl untuk memroses koleksi dokumen tsb.
Hitung frekuensi kata yang ada pada seluruh dokumen Dokumen dimulai dengan <DOC> dan diakhiri dengan </DOC> Bagian dokumen yang dihitung kalimatnya adalah yang dalam <TEXT> ... </TEXT> dan <TITLE> ... </TITLE> Kata merupakan urutan karakter alfabet saja. Hilangkan semua tanda baca yang terdapat pada kata. Satu kata adalah yang dibatasi oleh 'whitespace', jadi kata majemuk ataupun pengulangan tetap dianggap 1 kata. Jawablah pertanyaan di bawah ini: Tuliskan 10 kata yang frekuensinya paling tinggi pada koleksi (tulis kata dan frekuensinya) Apakah kata-kata pada koleksi dokumen ini mengikuti distribusi Zipf? (gambar grafiknya) Berapa jumlah seluruh kata pada koleksi? Berapa jumlah kata-kata yang unik pada seluruh dokumen? Berapa jumlah frase Bursa Efek Jakarta yang ada di koleksi?. Berapa jumlah kata unik yang berakhiran 'nya'? Selain jawaban pertanyaan di atas, program Perl (source code) juga perlu dikumpulkan Informasi lanjut mengenai Perl dapat diperoleh di
Presentasi serupa
© 2024 SlidePlayer.info Inc.
All rights reserved.