loading...
berbagi-itu-indah-dan-menyenangkan

24 Agustus, 2009

PERL

By Gearboxxx





This is perl, v5.10.0 built for i486-linux-gnu-thread-multi
Copyright 1987-2007, Larry Wall
Perl may be copied only under the terms of either the Artistic License or the
GNU General Public License, which may be found in the Perl 5 source kit.
Complete documentation for Perl, including FAQ lists, should be found on
this system using "man perl" or "perldoc perl". If you have access to the
Internet, point your browser at http://www.perl.org/, the Perl Home Page.


Perl adalah bahasa pemrograman untuk segala keperluan, dikembangkan pertama kali oleh Larry Wall di mesin Unix. Perl dirilis pertama kali pada tanggal 18 Desember 1987 ditandai dengan keluarnya Perl 1. Pada versi-versi selanjutnya, Perl tersedia pula untuk berbagai sistem operasi varian Unix (SunOS, Linux, BSD, HP-UX), juga tersedia untuk sistem operasi seperti DOS, Windows, PowerPC, BeOS, VMS, EBCDIC, dan PocketPC. Dukungan terhadap pemrograman berbasis obyek (object oriented programming/OOP) ditambahkan pada Perl 5, yang pertama kali dirilis pada tanggal 31 Juli 1993. Proyek pengembangan Perl 6 dimulai pada tahun 2000, dan masih berlangsung hingga kini tanpa tanggal yang jelas kapan mau dirilis. Ini dikatakan sendiri oleh Larry Wall[1] dalam satu pidatonya yang dikenal dengan seri The State of the Onion.

Dua di antara karakteristik utama Perl adalah penanganan teks dan berbagai jalan pintas untuk menyelesaiakn persoalan-persoalan umum. Tidak heran jika Perl sangat populer digunakan dalam program-program CGI (Common Gateway Interface) dan berbagai protokol Internet lainnya. Seperti diketahui, TCP/IP sebagai basis bagi semua protokol Internet yang dikenal sekarang ini menggunakan format teks dalam komunikasi data. Seperti juga bahasa populer lainnya, Perl menerima banyak kritikan. Meski banyak di antaranya hanya berupa mitos, atau berlebih-lebihan, tapi terdapat juga sejumlah kritikan yang valid. Salah satunya adalah, sintaksnya susah dibaca, karena banyak menggunakan simbol-simbol yang bukan huruf dan angka.
Nama dan singkatan
Larry Wall menegaskan bahwa bahasa pemrograman yang diciptakannya diberi nama Perl (dengan P besar), sedangkan perl (dengan p kecil) adalah nama untuk program interpreter yang menjalankan kode sumber yang ditulis dengan bahasa Perl. Korelasi kedua nama ini ditegaskan oleh Tom Christiansen dalam ungkapan only perl can parse Perl, atau Nothing but perl can parse Perl. Nama perl sebagai sebuah program, mengikuti konsensus penamaan program di sistem Unix, yaitu pendek dan semua ditulis huruf kecil (kalau di Windows nama program ini adalah perl.exe). Baik Perl maupun perl bukanlah sebuah singkatan atau akronim. Jadi, penulisan PERL (semua huruf besar) dianggap salah, tidak berdasar, dan sama sekali tidak akurat jika dihubungkan dengan Perl sebagai bahasa pemrograman[2].
Baru belakangan Larry Wall memberikan kepanjangan Practical Extraction and Reporting Language. Mungkin karena terkesan serius dan sangat relevan, kepanjangan ini secara salah sering dirujuk sebagai kepanjangan resmi dari Perl. Barangkali untuk mencegah kesalahpahaman, atau karena Larry Wall memang suka bercanda, dia mengumumkan kepanjangan lain, yaitu Pathologically Eclectic Rubbish Lister. Dan, yang terbaru adalah People Excel at Relational Labor, untuk menggambarkan bahwa perkembangan Perl tidak terlepas dari keterlibatan dan komimen komunitas[3].
Di luar itu, berkembang kreasi-kreasi lain untuk membuat kepanjangan Perl, baik yang bermaksud serius maupun bercanda, bahkan ada juga yang sifatnya merendahkan atau melecehkan.
Pemrograman Perl
Lihat Pemrograman Perl untuk pembahasan yang lebih komprehensif dan bersifat teknis.
Kode sumber Perl tidak perlu dikompilasi, melainkan bisa langsung dijalankan oleh sebuah program interpreter bernama perl. Misalnya,
#!/usr/bin/perl
print "Hello, world!\n";
Jika program di atas ditulis dalam sebuah berkas bernama hello.pl, lalu dijalankan dengan perintah (contoh di Linux):
$ perl hello.pl
Maka di layar akan tercetak:
Hello, World!
$
Bahkan, sebuah program yang mengerjakan proses rumit bisa ditulis dengan jumlah karakter yang lebih pendek daripada jumlah kolom layar standar, misalnya:
perl -lane '$h{$_}++ for @F; END { print "$_: $h{$_} " for keys %h}'
Program ini membaca sebuah berkas teks dan mencetak setiap kata unik dan jumlahnya di dalam berkas. Contoh hasil cetakan dengan sebuah berkas berisi kode SQL:
password: 2
category: 2
DROP: 20
TABLE: 40
varchar(12): 9
dst.
Tentu saja, yang dimaksud dengan "kata" di sini adalah rentetan karakter tanpa spasi. Jika dituangkan dalam sebuah berkas, program di atas bisa menjadi lima hingga sepuluh baris, tergantung gaya pemrograman. Program semacam ini disebut juga oneliner, dan sering digunakan untuk keperluan sederhana dan cepat. Contoh lain penggunaan oneliner adalah mengubah nama berkas di suati direktori menjadi huruf kecil semua, seperti:
perl -e 'rename $_, lc for <*>'
Beberapa programer Perl tertantang untuk membuat solusi oneliner untuk problem yang sama dengan jumlah karakter yang lebih pendek dan berkembanglah sebuah kompetisi yang disebut Perl Golf (lihat juga Komunitas dan Budaya). Hal seperti ini bisa membuat sebagian orang kagum, namun bagi sebagian orang, semakin membuktikan bahwa Perl hanyalah bahasa untuk main-main, atau kalaupun untuk serius, tidak mudah diphami oleh orang lain, bahkan oleh programernya sendiri setelah beberapa waktu kemudian. Lelucon yang diberikan kepada Perl tentang ini adalah write only, artinya program hanya bisa ditulis, tapi tidak bisa dibaca.
Sebenarnya tidak demikian. Perl menyediakan berbagai fasilitas bagi penggunannya untuk menulis program dalam berbagai gaya dan bentuk sesuai dengan keperluannya. Dalam hal ini Perl memperkenalkan motto TMTOWDI, dalam bahasa Inggris ini adalah singkatan dari There's More Than One Way To Do It, atau terjemahan bebasnya, terdapat lebih dari satu cara untuk menyelesaikan suatu persoalan. Tanpa bisa dihindari, motto ini juga menjadi sumber kritikan. Artinya, Perl tidak memiliki standar penyelesaian masalah. Padahal tidak demikian. Hanya karena terdapat lima atau selusin cara untuk menyelesaikan masalah bukan berarti semua cara tersebut setara dalam berbagai aspek kualitas. Dan, dokumentasi Perl penuh dengan berbagai contoh penggunaan yang direkomendasikan, dan juga contoh penggunaan yang tidak direkomendasikan dengan berbagai alasan.
Seperti juga bahasa lainnya, Perl menyediakan fasilitas pemrograman standar seperti penggunaan variabel, fungsi (built-in function), kontrol logika (if-else), dan iterasi (while, for, foreach). Kontrol switch baru akan disediakan di Perl 6, namun di Perl 5 dapat diemulasikan dengan mudah. Perl membolehkan programer untuk membuat fungsi sendiri (subroutine), mengenalkan pembatasan cakupan variabel secara hirarkis, penggunaan komentar, serta pembuatan dokumentasi terstruktur bersandingan dengan kode program. Sejak Perl 5 dikeluarkan, Perl mendukung pemrograman berbasis obyek (OOP), disusul kemudian dengan thread programming, serta memperbaharui penggunaan namespace. Fasilitas yang paling digemari pengguna Perl, regular expression (atau regex), telah ada sejak Perl 2. Dari versi ke versi regex makin dikembangkan sehingga diakui sebagai implementasi regex paling lengkap. Tidak heran kemudian muncul implementasi regex yang dikenal sebagai PCRE, atau Perl-compatible regular expression.
Perl menyediakan sejumlah fasilitas untuk memastikan bahwa programer dapat membuat program yang aman dari serangan cracker. Jika programer menginginkan, Perl menyediakan linkungan pemrogaman yang lebih ketat yang akan menangkap kesalahan atau potensi kesalahan sekecil apapun sebelum program bisa dijalankan. Fasilitas pemrograman berorientasi jaringan sudah terintegrasi, juga penanganan dan pemrosesan berkas (file handling) dan setara berkas (seperti diketahui, di sistem Unix dan variannya, segala sesuatu dianggap berkas dan bisa diperlakukan sebagai berkas). Sebelumn threading diperkenalkan, Perl sudah menyediakan fasilitas untuk menjalankan lebih dari satu proses secara paralel. Sebagai bahasa yang diciptakan dalam tradisi Unix, Perl sedari awal mendukung pembuatan program yang bisa berinteraksi dengan program lain yang ada di sistem, sehingga bisa dijalankan seperti diilustrasikan di bawah ini:
cat | sort | program_perl | perl -p -e 's/ganti ini/dengan ini/g' | vim - | tar cf - .
Tentu saja, sebuah program Perl dapat dibuat sedemikian rupa sehingga bisa mencakup semua perintah di atas. Untuk pembahasan teknis lebih lanjut serta contoh pemrograman yang lebih konkrit, silahkan lihat Pemrograman Perl.
1.1 Apa Itu Perl?
Menurut Larry Wall (http://www.wall.org/) -penciptanya- Perl adalah akronim dari Practical Extraction and Report Language, atau Pathologically Eclectic Rubbish Lister. Perl diciptakan dengan menggabungkan unsur-unsur dari bahasa C, awk, Bourne shell script, dan program-program seperti sed, grep.
Tidak seperti shell script, Perl tidak bergantung pada program-program eksternal, sehingga lebih cepat. Perl adalah setengah kompiler dan setengah interpreter. Jika kita menjalankan sebuah skrip Perl, maka skrip tersebut sebenarnya dikompilasi terlebih dahulu ke dalam bentuk menengah (pohon syntax) yang kemudian diinterpretasikan oleh sistem run-time Perl. Dengan demikian, eksekusi skrip Perl lebih cepat daripada skrip bahasa-bahasa yang murni terinterpretasi (interpreted language) seperti Tcl. Lebih lanjut lagi juga muncul teknik-teknik untuk lebih mempercepat lagi waktu eksekusi skrip Perl.
Tidak seperti produk-produk proprietary seperti Java yang tidak pernah lepas dari isu-isu ``politik bisnis'', pengguna Perl bisa dengan tenang dan nyaman menggunakan Perl pada platform favoritnya. Seperti Linux, Perl dapat diperoleh secara bebas, karena berlisensi publik GNU.
Oleh para pakar bahasa pemrograman, Perl digolongkan ke dalam VHLL (Very High Level Language). Satu perintah dalam Perl ekivalen dengan banyak perintah dalam bahasa tingkat tinggi, sehingga program-program yang ditulis dalam Perl sangat efisien dan ringkas.
Perl merupakan pilihan utama untuk tugas-tugas pengolahan teks, terutama dengan fasilitas regular expression-nya yang sangat canggih. Dengan mewabahnya internet, dengan sejumlah protokolnya yang berbasis teks (NVT ASCII), Perl menjadi pilihan utama untuk pemrograman internet, terutama CGI (Common Gateway Interface).
Semula Perl hanya dipakai untuk menulis skrip-skrip pendek, namun dalam perkembangannya, Larry menambahkan dukungan bagi pemrograman berorientasi objek, dan dimulailah era baru pemrograman Perl untuk aplikasi-aplikasi besar dan rumit.


Memulai Perl

Untuk memulai perl anda bisa gunakan editor apa saja tergantung pada anda mana yang anda merasa nyaman. Kalau saya gedit. Oke sekarang kita buka gedit lalu kita buat program yang sederhana seperti ini :


#!/usr/bin/perl
# Test.pl

print "Hello saya belajar perl\n";


setelah itu "save as" dengan Test.pl. Buka terminal lalu ketikkan seperti ini :


root@gearboxxx-desktop:/# perl Test.pl
Hello saya belajar perl


Bingung? dulu saya juga. Oke sekarang saya coba jelaskan. "#!/usr/bin/perl" ==> adalah sebagai letak dimana program itu berada (path)yaitu di directory usr -> directory bin -> perl. "#" -> sebagai komentar, jadi tidak akan dieksekusi. Sedangkan program dimulai di "print "Hello saya belajar perl\n";" berarti perl akan mencetak tulisan "Hello saya belajar perl". "\n" -> sebagai baris awal dan berikutnya. Sekarang kita coba edit dan tambahkan tulisan seperti ini :


#!/usr/bin/perl
# Test.pl

print "Hello saya belajar perl\n";
print "Saya belajar di linux\n";


Kemudian save, lalu coba jalankan kembali :


root@gearboxxx-desktop:/# perl Test.pl
Hello saya belajar perl
Saya belajar di linux




Nah sudah jelaskan bahwa "\n" menandakan baris awal dan berikutnya. Kalau anda lihat sekilas bahasa mirip sekali dengan bahasa program C, yups anda benar karena perl juga termasuk bahasa program yang cukup tua dan hingga kini masih digunakan.


Referensi :
- Learning Perl by oreilly
- Die Programmiersprache Perl by Eike Grote
- Echo.or.id
- Sumber lainnya

Bersambung PERL II

0 komentar :

Posting Komentar