Dari IgosCenter
Perl berarti Practical Extraction and Report Language. Bahasa ini dikembangkan oleh Larry Wall pada mesin *NIX. Versi pertama Perl, Perl 1, dirilis pada tanggal 18 Desember 1987. Versi-versi setelahnya tersedia pula bagi berbagai system operasi varian Unix, termasuk Linux.
Perbedaan antara “Perl” dan “perl”
Larry menegaskan, bahwa bahasa pemograman yang diciptakannya bernama Perl (dengan P besar). Sedangkan perl (dengan p kecil) adalah nama program interpreter yang menjalankan kode sumbernya.
Daftar isi |
Membuat Program
Script
Sama halnya dengan Bash, baris komentar ditandai dengan tanda #, kecuali header dari pemograman Perl itu sendiri. Selain itu, setiap akhir suatu statement ditandai dengan titik-koma (;), percis seperti C/C++.
Membuat Script
Untuk membuat script Perl kita hanya memerlukan terminal dan sebuah editor teks, semisal gedit, Vi atau nano.
root@nan:~/perl/ nano hello.pl
Contoh Script
Ini script pamungkas; script pertama semua bahasa pemograman: Hello World
#!/usr/bin/perl/ #ini program Perl pertama gue nih print “Hello, World\n” print “This is Perl… ;) \n”
Menjalankan Script
Setelah disimpan, file harus diubah modenya menjadi executable sebelum dijalankan.
$ chmod +x hello.pl
baru dijalankan
$ ./hello.pl
Pemograman Dasar
Output
Lihat sekilas program hello diatas, Anda pasti sudah langsung tahu kalau perintah untuk menampilkan sesuatu di layar dalam Perl adalah 'print'. Sebagai tambahan, perintah print di Perl lain dengan echo pada Bash. Jika Anda lupa menyertakan tanda \n, perintah print yang akan dijalankan berikutnya tetap di baris yang itu-itu juga.
Tipe Data
Perl hanya memiliki 2 tipe data: Scalar dan Array.
Scalar
Tipe data Scalar meliputi string dan angka. Untuk variabel bertipe scalar, harus ditandai dengan tanda $ di depannya. Dan untuk penulisannya, variabel harus diawali dan diikuti setidaknya oleh satu huruf, tidak boleh berisi tanda minus, dan tidak bisa diawali dengan tanda underscore. Coba script ini:
#!/usr/bin/perl $nama = "Perl"; $peringkat = 1; print "Halo, nama saya $nama dan saya ada di peringkat ke $peringkat\n";
Array
Array merupakan kumpulan atau himpunan dari scalar-scalar. Karena tipe data scalar termasuk angka dan string, tidak seperti C atau kebanyakan bahasa lain dimana array harus berisi variabel yang sama jenisnya, array dalam Perl dapat memiliki angka maupun string. Array dalam Perl harus ditandai dengan tanda '@'. Ini syntaxnya:
@nama_array = (index1, index2, ….... indexN)
Ini contohnya:
@Kemungkinan = (0, “Benar”, 12, 1, “Salah”)
Input
Untuk menerima dan memproses masukan dari pengguna, perintahnya STDIN.
#!/usr/bin/perl print “Masukkan nama Anda: ”; $nama = <STDIN>; print “Halo $nama.... salam kenal, saya Perl”
Ada baris kosong? Yap, kelanjutan kalimat setelah variabel di-new line-kan. Untuk mengatasinya, pakai 'chop'.
chop ($nama = <STDIN>)
Operator
String
Coba script ini:
#definisikan variabel-variabelnya $warna1 = "Merah"; $warna2 = "Jingga"; $warna3 = "Kuning"; $warna4 = "Hijau"; $warna5 = "Biru"; $warna6 = "Nila"; $warna7 = "Ungu"; # gabungkan variabel string diatas. Dengan satu atau dua tanda petik? $pelangi1 = '$warna1 $warna2 $warna3 $warna4 $warna5 $warna6 $warna7'; $pelangi2 = "$warna1 $warna2 $warna3 $warna4 $warna5 $warna6 $warna7"; print $pelangi1, "\n"; print $pelangi2, "\n";
Aritmatik
Ini operator untuk tipe data scalar. Tanda untuk yang numerik standar.
#!/usr/bin/perl $x = 2; $y = 3; print "x = 2, y = 3 \n"; #ini cara tulis-langsung-saja print "x + y = ", $x + $y, "\n"; print "x - y = ", $x - $y, "\n"; #ini dengan memakai variabel yang didefinisikan dulu nilainya $a = $x * $y; $b = $x ** $y; print "x * y = ", $a, "\n"; print "x^y = $b\n";
Perl juga mengenal apa yang disebut dalam bahasa C plus plus sebagai “assingment operator”, juga increment dan decrement.
NilaiModulus = NilaiModulus + 2 bisa disingkat penulisannya dengan NilaiModulus += 2
j = j + 1 → j += 1 n = n * 5 → n *= 5 y = y / 2 → y /= 2
Increment (++), menambah nilai suatu variabel dengan 1. Decrement (--), mengurangi nilai suatu variabel dengan 1.
Logika
Standar juga. Hanya saja, cara penulisan operator logika numerik berbeda dengan yang string.
Pencabangan
Pencabangan, atau branch, digunakan untuk menentukan nilai benar-salahnya suatu kondisi dan menentukan perintah-perintah apa yang harus dilakukan. Jika kondisi ini benar, apa yang harus dilakukan? Dan bagaimana kalau salah?
If
The single-alternative statement. Perintah dibawahnya (maksudnya dalam kurung kurawal dan akhir) akan dikerjakan jika kondisinya benar.
#!/usr/bin/perl print "Enter a non-zero number: "; chop($number = <STDIN>); if ($number != 0) { print "The reciprocal of $number is ", 1/$number, "\n"; }
Simpel, bukan? …
...tapi dengan begini, kita tidak bisa membuat perintah tersendiri jika kondisinya salah. Sebagai solusi, else
If-else
Nah, yang ini disebut dual-alternative statement ← sok ngInggris.
Langsung contohnya sajalah...
#!/usr/bin/perl print "Enter password: "; chop($psswd = <STDIN>); if ($psswd eq "Ubuntu") { print "Password correct!\n"; } else { print "Password mismatch.\n"; }
perhatikan bahwa operator logika 'sama dengan' untuk string adalah “eq”.
if-elsif-else
dan untuk yang multi-alternative, if-elsif-else, general syntax-nya seperti ini..
if (condition1) { statement; } elsif (condition2) { statement; } ..elsif (conditionN){ statement; } else statement;
unless-else
Ini adalah negasi alias kebalikan dari if-else. Perlu waktu juga untuk terbiasa dengan yang ini. Perintah-perintahnya akan dijalankan jika bernilai salah.
Sebagai contoh, pakai cerita saja ya. Ada sebuah program untuk memberitahukan apakah cuaca cukup cerah untuk pergi memancing. Katakanlah, program sederhana ini nanti diterapkan pada sebuah robot yang akan menerima berita langsung dari stasiun pemantauan cahaya. Setiap saat, dia akan mengatakan kalau cuaca baik untuk pergi memancing, kecuali kalau hujan.
#!/usr/bin/perl $cuaca = "Cerah"; unless ($cuaca eq "Hujan"){ print "Cuaca cukup baik untuk memancing =D\n"; } else { print "Cuaca tidak cukup baik untuk pergi memancing\n"; }
Looping
While
Pengulangan dengan perintah while akan menyebabkan statement-statement yang ada dikerjakan terus-menerus sampai kondisinya salah.
Ada tiga cara penulisannya, mencakup while, do-while, dan inline-while.
Ini syntax dari 'while':
while (kondisi) { statement; }
Dan ini skrip untuk mencari faktorial dari sebuah angka dengan menggunakan while
#!/usr/bin/perl print "Masukkan sebuah angka: "; chop ($angka = <STDIN>); $multiplier = $angka; $hasil = 1; while ($multiplier >= 1) { $hasil *= $multiplier; $multiplier -= 1; } print "Faktorial dari $angka adalah $hasil\n";
Perhatikan. Variabel $multiplier diberi nilai yang sama dengan angka yang diinputkan terlebih dahulu. Variabel $hasil yang menampung nilai faktorial angka terus-menerus dikalikan dengan variabel $multiplier dalam looping, dengan variabel $multiplier dikurangi satu nilainya setiap loop. Perulangannya berhenti ketika variabel multiplier bernilai 0.
do-while
Ini syntax untuk do-while:
do
{
statement;
}
while (kondisi)
Dan ini contoh programnya:
#!/usr/bin/perl do { print "Masukkan nama Anda: "; chop ($nama = <STDIN>); print "Hello, $nama ... Perl is here ;) \n\n"; print "Mau coba lagi? [y/n]: "; chop ($char = <STDIN>); } while ($char eq "y")
inline-while
Syntax-nya:
statement while kondisi
Sangat singkat. Habis, cuma satu baris. Pemakaiannya tak seluas yang lain karena keterbatasan statement yang bisa dimasukkan.
Until
Loop jenis ini juga mempunyai 3 cara penulisan. Dalam bahasa indonesia, until bisa diartikan dengan “sampai”. Nah, statement-statement yang ada akan terus dikerjakan sampai kondisinya bernilai benar.
Syntax untuk until:
until (kondisi)
{
statement;
}
Dan coba dulu script ini:
#!/usr/bin/perl $x == 0; until ($ulang == 5) { $ulang ++; $x += 2; print "Perulangan ke $ulang.\n"; print "Nilai x sekarang $x.\n\n"; }
Pada setiap perulangan, nilai x ditambah dua lalu ditampilkan. Yang menunjukkan perulangan sudah sampai perulangan ke berapa adalah variabel $ulang yang ditambah satu nilainya tiap loop.
do-until
Syntax untuk do-until:
do
{
statement;
} until (kondisi)
Ini dia contoh programnya, sedikit panjang, untuk main tebak-tebakan.
#!/usr/bin/perl $hiddenWord = "Linus"; $kesempatan = 10; print "Guess the hidden word!\n"; print “Hint: “Orang keren”\n”; print "Anda punya 10 kesempatan.\n"; do { print "Masukkan tebakkan anda: "; chop ($guess = <STDIN>); if ($guess eq $hiddenWord){ print "Selamat! Jawaban Anda benar!\n"; exit; } else { $kesempatan -= 1; print "Jawaban anda salah.\n"; } print "Anda punya $kesempatan kesempatan lagi.\n\n"; } until ($kesempatan == 0)
inline-until
Ini bentuk penulisan until ketiga, dan seperti ini syntax-nya:
Statement while kondisi
For
Sistem perulangan for berbeda dengan while atau until. Dan for untuk Perl persis benar dengan C/C++, terutama penulisan parameternya.
for ($variabel = nilai_awal;kondisi; increment/decrement)
{
statement;
}
Kalimat-kalimat yang berada di dalam kurung itu adalah parameter, jumlahnya tiga dengan tanda semicolon membatasi tiap parameternya.
Parameter pertama adalah pendeklarasian awal nilai varabel. Parameter kedua menunjukkan kondisi perulangan, sedangkan yang ketiga adalah increment, dan bisa juga digunakan decrement.
Coba skrip ini dan perhatikan cara kerjanya:
#!/usr/bin/perl for ($x = 1; $x <= 10; $x ++) { print "Ini loop ke $x \n"; }
Foreach
Foreach adalah perintah perulangan dengan jumlah elemen dalam suatu array. Perulangan dilakukan sebanyak jumlah elemen dalam array.
foreach $variabel(array)
Cara kerjanya malah sedikit mirip dengan for dalam Bash.
#!/usr/bin/perl @nama = ("Linus", "Larry", "Richard"); foreach $ulang (@nama) { print "$ulang\n"; }
Subrutine
Kontributor: Nan






