TUTORIAL PERL.

Slides:



Advertisements
Presentasi serupa
Pengenalan Perl dan CGI
Advertisements

Pengantar Common Gateway Interface (CGI) dan Perl
Pemrograman Web Perl.
PHP dalam HTML Statement Variabel
Isnardi,M.Kom Ikhsan, S.Kom, M.Kom Novinaldi, S.Kom
Penggunaan Angka, String, Operator, dan Statement Pembanding
PHP: Hypertext Preprocessor
HTML.
PHP.
STACK.
STRING Pemrograman Object Oriented dengan JAVA Teknik Informatika-UMM.
Pemrograman Berbasis Obyek Oleh Tita Karlita
Konsep Dasar Pemrograman COBOL
Struktur Dasar Java Percabangan & Perulangan
Pemrograman Berbasis WEB
Pengantar Common Gateway Interface (CGI) dan Perl
Identifier, Tipe Data dan Variabel Yusuf Nurrachman.
JAVASCRIPT.
Pemrograman Berbasis WEB
Dasar-Dasar PHP.
Tutorial Matlab Ref : Analisa Numerik Tutorial Matlab Ref :
Pemrograman Web/TI/ AK /2 sks
Dasar Pemrograman Operasi String.
Praktikum Java Script.
PHP? PHP adalah server-side web programming
Dasar-dasar Pemrograman PHP
PHP.
Apakah Stack itu ?. Apakah Stack itu ? Pengertian STACK Secara sederhana diartikan dengan : sebagai tumpukan dari benda sekumpulan data yang seolah-olah.
Pemrogaman Web PHP.
Struktur pemrog. python
ALGORITMA & PEMROGRAMAN 1B
Tipe Data By Serdiwansyah N. A..
Nilai dan Tipe Data Nilai dan Tipe data
BAB 2 Elemen Dasar.
PERTEMUAN 3 KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Pengantar Common Gateway Interface (CGI) dan Perl
Pertemuan 4 PROGRAMMING LANGUAGE.
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Pengenalan dan Struktur Java (Statement Output)
KOMPUTER APLIKASI IT II
Bahasa C – Intro Yenni Astuti, S.T., M.Eng..
MENGGUNAKAN SINGLE ROW FUNCTION UNTUK MENG-CUSTOMIZE OUTPUT
Pemrograman Berbasis WEB
Praktikum 7 Sistem Operasi
Tipe Data, Variabel, & Konstanta
PEMROGRAMAN PASCAL ELEMEN PEMROGRAMAN PASCAL.
Konsep Dasar Pemrograman COBOL
Minggu 5 Imam Fahrur Rozi
Daasar Komputer dan Pemrograman 2A
Pemrograman Berbasis WEB
As’ad Djamalilleil Sintaks Dasar As’ad Djamalilleil
SISTEM BERKAS (File System)
PHP PEMROGRAMAN INTERNET.
Pemrograman Basis Data Berbasis Web
Pemrograman Web/TI/ AK /2 sks
PEMROGRAMAN BERORIENTASI OBYEK PENDAHULUAN
KONSEP TIPE DATA, OPERATOR DAN IDENTIFIER
Pemrograman Web/TI/ AK /2 sks
PHP.
Pengantar Common Gateway Interface (CGI) dan Perl
Pengantar Common Gateway Interface (CGI) dan Perl
Ekspresi Reguler Pengenalan (bagian 2).
TIPE-TIPE DATA PHP Bandung 2009, by hery dwi y.
Pemrograman Web/TI/ AK /2 sks
DATA dan VARIABEL.
Pemrograman dengan Python syntax, datatype
Algoritma dan struktur data
Pengantar Common Gateway Interface (CGI) dan Perl
Fathiah, S.T.,M.Eng Universitas Ubudiyah Indonesia
Teknik Pemrograman Terstruktur 1
Transcript presentasi:

TUTORIAL PERL

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

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.

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)

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

JENIS DATA Nama variabel  case sensitive ($data ≠ $DATA)

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

OPERATOR

OPERATOR

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)

Contoh Array @namabulan = (“Januari”, “Februari”, “Maret”); @john = (47, "brown", 186); @x = (1,2, 3) @y = @x  copy nilai x ke y @y = (@x, 4, 5)  nilai @y = (1, 2, 3, 4, 5) $z = @y  panjang dari @y = 5

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] # @siswa berisi “dani’ dan “irma” $i = 2 $x = $nama[$i] # $x= “gugun” $x = $nama[$i- 1] # $x= “irma”

Akses ke array 2 @nilai = (1, 2, 3) $x = $nilai[1];  $x = 2 $nilai[2]++;  nilai 3 jadi 4 @nilai[0, 1, 2] = @nilai[1, 1, 1];  @nilai = (2, 2, 2) @nama = (“dani”, “irma”, “jojon”, “lili”); reverse(@nama) @nama = (“lili”, “jojon”, “irma”, “dani”); @siswa = sort(@nama) @nama = (“dani, “irma”, “jojon”, “lili”);

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”; }

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”; }

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”; }

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"; }

ARRAY Penggunaan foreach foreach $elemen (@nama) { $elemen =~ tr/a-z/A-Z/; print "$elemen\n"; # tulis semua elemen dengan huruf besar }

ARRAY @array = (“sinta",“tina",“dani","dino"); $length = @array;  # $length nilainya 4 print $#array; # hasilnya 3 print $array[$#array] # hasilnya "dino print scalar(@array) # hasilnya 4

ARRAY ($a, $b) = (“satu",“dua"); ($satu, @banyak) = (1,2,3,4,5,6) ($array[0],$array[1]) = $array[1],$array[0]); # tukar nilainya

Mengubah Isi Array Push Menambahkan list pada bagian akhir dari array. @array-1 = ("ani","berti","cici","dino"); @array-2 = ("eri","fany"); push @array-1, @array-2; # @array-1 berisi ("ani","berti","cici","dino","eri","fany") push @array-2, "gusti"; # @array-2 berisi ("eri","fany","gusti")

Mengubah Isi Array Pop Membuang elemen terakhir dari list @array = ("ani","berti","cici","dino"); $nama = pop @array; # $nama = "dino" @array = ( "ani","berti","cici")

JOIN FUNCTION Join @array = ("ani","berti","cici","dino"); $string = join ":", @array; # $string sekarang mempunyai nilai "ani:berti:cici:dino“ $string = join "+", "", @array; # $string sekarang mempunyai nilai “+ani+berti+cici+dino"

PENGURUTAN Pengurutan yang sesuai alfabet: sort { $a cmp $b } @list; Pengurutan sesuai numerik: sort { $a <=> $b } @list; Pengurutan yang terbalik: sort { $b <=> $a } @list; Pengurutan associative array sort { $tabel{$b} <=> $tabel{$a} } ( keys %tabel)

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”)

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)

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);

INPUT/OUTPUT #!/usr/local/bin/perl # menghitung umur print “Tuliskan tahun kelahiran Anda"; $tahun-lahir = <>; chomp($tahun-lahir); $umur = 2013 - $tahun-lahir; print “Umur Anda adalah ", $umur".\n";

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”;

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

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").

Regular expressions / (ab)*(de)+ / abde abbde bde abadde ababde

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

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

Mencari Pola dari String Menggunakan / / while ($kata =~ /ba/) { print “$baris\n”; } Maka semua kata yang mengandung ‘ba’ akan ditemukan: baik, kabar, tiba …

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

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 …

contoh $kalimat : “Saya suka coklat!” $kalimat =~ tr/a-z/A-Z/; $kalimat =~ s/a/A/g; $kalimat : “SAyA sukA coklAt”

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", "" )

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”)

SPLIT FUNCTION $kalimat = “kelas information retrieval” ($kata, $sisa-kalimat) = split(/ /, $kalimat); $kata = “kelas”; $sisa- kalimat = “information retrieval”;

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] + +; }

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 array @array-kata = split /\s+/, $baris; }

Lanjutan.. # proses tiap kata ... while($kata = pop@array-kata) { # Jika tidak ada maka jadikan indeks baru if(!ada($indeks{$kata})) $indeks{$kata} = $jumlah-kata++; } # selalu tambahkan frekuensinya $frekuensi{$kata}++;

Lanjutan... # sekarang tulis semua kata yang sudah terurut foreach $kata (sort keys %indeks) { print "$kata mempunyai frekuensi $frekuensi{$kata} dan indeks $indeks{$kata}\n"; }

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 http://www.perl.com/